You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/04/06 11:03:00 UTC

[1/2] syncope git commit: Adjusting to latest validation requirements from Swagger UI

Repository: syncope
Updated Branches:
  refs/heads/2_0_X 241f17825 -> 9c8bc7bb1
  refs/heads/master 0418b4578 -> c66c373ae


Adjusting to latest validation requirements from Swagger UI


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/c66c373a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/c66c373a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/c66c373a

Branch: refs/heads/master
Commit: c66c373ae28e6d404f7a0156d493a27f5980b21a
Parents: 0418b45
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Apr 6 11:43:16 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Apr 6 13:00:47 2018 +0200

----------------------------------------------------------------------
 .../common/lib/patch/DeassociationPatch.java    |  1 +
 .../rest/api/service/AnyObjectService.java      |  4 ++++
 .../common/rest/api/service/AnyService.java     | 16 +++++++++++--
 .../rest/api/service/AnyTypeClassService.java   |  4 ++++
 .../common/rest/api/service/AnyTypeService.java |  4 ++++
 .../rest/api/service/ApplicationService.java    |  4 ++++
 .../rest/api/service/ConfigurationService.java  |  5 ++++
 .../rest/api/service/ConnectorService.java      |  6 +++++
 .../common/rest/api/service/DomainService.java  |  4 ++++
 .../rest/api/service/DynRealmService.java       |  4 ++++
 .../common/rest/api/service/GroupService.java   |  4 ++++
 .../rest/api/service/ImplementationService.java | 11 +++++++++
 .../common/rest/api/service/LoggerService.java  |  5 ++++
 .../rest/api/service/NotificationService.java   |  4 ++++
 .../common/rest/api/service/PolicyService.java  |  4 ++++
 .../common/rest/api/service/RealmService.java   |  2 ++
 .../api/service/RelationshipTypeService.java    |  4 ++++
 .../rest/api/service/RemediationService.java    | 24 ++++++++++++--------
 .../common/rest/api/service/ReportService.java  |  4 ++++
 .../rest/api/service/ResourceService.java       | 11 +++++++++
 .../common/rest/api/service/RoleService.java    |  4 ++++
 .../common/rest/api/service/SchemaService.java  |  4 ++++
 .../api/service/SecurityQuestionService.java    |  4 ++++
 .../common/rest/api/service/TaskService.java    |  4 ++++
 .../rest/api/service/UserSelfService.java       |  6 +++++
 .../common/rest/api/service/UserService.java    |  6 +++++
 .../cxf/service/RemediationServiceImpl.java     | 16 ++++++-------
 .../rest/api/service/CamelRouteService.java     |  5 ++++
 .../rest/api/service/SAML2IdPService.java       |  5 ++++
 29 files changed, 160 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
index 3c6cc60..74248c8 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
@@ -98,6 +98,7 @@ public class DeassociationPatch extends AbstractBaseBean {
         return action;
     }
 
+    @PathParam("action")
     public void setAction(final ResourceDeassociationAction action) {
         this.action = action;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
index 5f1d10a..e8169b1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
@@ -129,6 +129,8 @@ public interface AnyObjectService extends AnyService<AnyObjectTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Any Object's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Any object successfully updated enriched with propagation status information, as Entity",
@@ -170,6 +172,8 @@ public interface AnyObjectService extends AnyService<AnyObjectTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Any Object's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Any object successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
index 22e2ba9..73cd69f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
@@ -48,6 +48,8 @@ import org.apache.syncope.common.lib.to.BulkAction;
 import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.PagedResult;
 import org.apache.syncope.common.lib.to.ProvisioningResult;
+import org.apache.syncope.common.lib.types.ResourceAssociationAction;
+import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
 import org.apache.syncope.common.lib.types.SchemaType;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 import org.apache.syncope.common.rest.api.beans.AnyQuery;
@@ -117,6 +119,8 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
      * @param attrTO attribute
      * @return Response object featuring the updated any object attribute - as Entity
      */
+    @Parameter(name = "schema", description = "Attribute schema's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @PUT
     @Path("{key}/{schemaType}/{schema}")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
@@ -184,7 +188,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
     Response delete(@NotNull @PathParam("key") String key);
 
     /**
-     * Executes resource-related operations on given any object.
+     * Executes resource-related operations on given entity.
      *
      * @param patch external resources to be used for propagation-related operations
      * @return Response object featuring BulkActionResult as Entity
@@ -203,6 +207,10 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Entity's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
+    @Parameter(name = "action", description = "Deassociation action", in = ParameterIn.PATH, schema =
+            @Schema(implementation = ResourceDeassociationAction.class))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Bulk action result", content =
@@ -224,7 +232,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
     Response deassociate(@NotNull DeassociationPatch patch);
 
     /**
-     * Executes resource-related operations on given any object.
+     * Executes resource-related operations on given entity.
      *
      * @param patch external resources to be used for propagation-related operations
      * @return Response object featuring BulkActionResult as Entity
@@ -243,6 +251,10 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Entity's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
+    @Parameter(name = "action", description = "Association action", in = ParameterIn.PATH, schema =
+            @Schema(implementation = ResourceAssociationAction.class))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Bulk action result", content =

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
index e025f94..7752def 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -97,6 +99,8 @@ public interface AnyTypeClassService extends JAXRSService {
      *
      * @param anyTypeClassTO anyTypeClass to be stored
      */
+    @Parameter(name = "key", description = "AnyTypeClass's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
index 9541293..53b8b87 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -96,6 +98,8 @@ public interface AnyTypeService extends JAXRSService {
      *
      * @param anyTypeTO anyType to be stored
      */
+    @Parameter(name = "key", description = "AnyType's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ApplicationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ApplicationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ApplicationService.java
index b48e82b..cec7938 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ApplicationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ApplicationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -109,6 +111,8 @@ public interface ApplicationService extends JAXRSService {
      *
      * @param applicationTO application to be stored
      */
+    @Parameter(name = "key", description = "Application's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index f07928a..e2193aa 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -81,6 +84,8 @@ public interface ConfigurationService extends JAXRSService {
      *
      * @param value parameter value
      */
+    @Parameter(name = "schema", description = "Configuration schema", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
index 8c5f88f..cb98215 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -77,6 +79,8 @@ public interface ConnectorService extends JAXRSService {
      * @return supported object classes info for the connector bundle matching the given connector instance key, with
      * the provided configuration
      */
+    @Parameter(name = "key", description = "Connector instance's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @POST
     @Path("{key}/supportedObjectClasses")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
@@ -148,6 +152,8 @@ public interface ConnectorService extends JAXRSService {
      *
      * @param connInstanceTO connector instance to be stored
      */
+    @Parameter(name = "key", description = "Connector instance's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
index 2efcb11..d879e89 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -97,6 +99,8 @@ public interface DomainService extends JAXRSService {
      *
      * @param domainTO domain to be stored
      */
+    @Parameter(name = "key", description = "Domain's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
index 8174606..7ebe935 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -97,6 +99,8 @@ public interface DynRealmService extends JAXRSService {
      *
      * @param dynDynRealmTO dynamic realm to be stored
      */
+    @Parameter(name = "key", description = "DynRealm's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
index 6e5cfd1..197d5f3 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
@@ -133,6 +133,8 @@ public interface GroupService extends AnyService<GroupTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Group's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Group successfully updated enriched with propagation status information, as Entity",
@@ -174,6 +176,8 @@ public interface GroupService extends AnyService<GroupTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Group's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Group successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
index 3c87575..42bdd48 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ImplementationService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import io.swagger.v3.oas.annotations.security.SecurityRequirements;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -76,6 +79,10 @@ public interface ImplementationService extends JAXRSService {
      * @param implementationTO implementation.
      * @return Response object featuring Location header of created implementation
      */
+    @Parameter(name = "type", description = "Implementation's type", in = ParameterIn.PATH, schema =
+            @Schema(implementation = ImplementationType.class))
+    @Parameter(name = "key", description = "Implementation's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @POST
     @Path("{type}/{key}")
     @Consumes({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
@@ -88,6 +95,10 @@ public interface ImplementationService extends JAXRSService {
      * @param implementationTO implementation.
      * @return an empty response if operation was successful
      */
+    @Parameter(name = "type", description = "Implementation's type", in = ParameterIn.PATH, schema =
+            @Schema(implementation = ImplementationType.class))
+    @Parameter(name = "key", description = "Implementation's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @PUT
     @Path("{type}/{key}")
     @Consumes({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
index d1f02ac..e3fa626 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -110,6 +113,8 @@ public interface LoggerService extends JAXRSService {
      * @param type LoggerType to be selected
      * @param logger Logger to be created or updated
      */
+    @Parameter(name = "key", description = "Logger's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
index b20929b..d7d94f2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -100,6 +102,8 @@ public interface NotificationService extends JAXRSService {
      *
      * @param notificationTO notification to be stored
      */
+    @Parameter(name = "key", description = "Notification's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index 3fb707c..374c9fc 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -106,6 +108,8 @@ public interface PolicyService extends JAXRSService {
      * @param type policy type
      * @param policyTO Policy to replace existing policy
      */
+    @Parameter(name = "key", description = "Policy's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
index 42afcfe..ddc6242 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
@@ -131,6 +131,8 @@ public interface RealmService extends JAXRSService {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "fullPath", description = "Realm's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Realm successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
index 8ce456b..bc43a0b 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -97,6 +99,8 @@ public interface RelationshipTypeService extends JAXRSService {
      *
      * @param relationshipTypeTO relationshipType to be stored
      */
+    @Parameter(name = "key", description = "RelationshipType's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RemediationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RemediationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RemediationService.java
index 2d38556..0b4a704 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RemediationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RemediationService.java
@@ -92,7 +92,7 @@ public interface RemediationService extends JAXRSService {
     /**
      * Perform remediation by creating the provided user, group or any object.
      *
-     * @param key key for remediation to act on
+     * @param remediationKey key for remediation to act on
      * @param anyTO user, group or any object to create
      * @return Response object featuring Location header of created object as well as the object itself
      * enriched with propagation status information
@@ -106,6 +106,8 @@ public interface RemediationService extends JAXRSService {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Entity's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "201",
                     description = "Object successfully created enriched with propagation status information, as Entity,"
@@ -124,15 +126,15 @@ public interface RemediationService extends JAXRSService {
                         description = "Allows the server to inform the "
                         + "client about the fact that a specified preference was applied") }))
     @POST
-    @Path("{key}")
+    @Path("{remediationKey}")
     @Consumes({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    Response remedy(@NotNull @PathParam("key") String key, @NotNull AnyTO anyTO);
+    Response remedy(@NotNull @PathParam("remediationKey") String remediationKey, @NotNull AnyTO anyTO);
 
     /**
      * Perform remediation by updating the provided user, group or any object.
      *
-     * @param key key for remediation to act on
+     * @param remediationKey key for remediation to act on
      * @param anyPatch user, group or any object to update
      * @return Response object featuring the updated object enriched with propagation status information
      */
@@ -150,6 +152,8 @@ public interface RemediationService extends JAXRSService {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "Entity's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "Object successfully updated enriched with propagation status information, as Entity",
@@ -166,15 +170,15 @@ public interface RemediationService extends JAXRSService {
                 description = "The ETag value provided via the 'If-Match' header does not match the latest modification"
                 + " date of the entity") })
     @PATCH
-    @Path("{key}")
+    @Path("{remediationKey}")
     @Consumes({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    Response remedy(@NotNull @PathParam("key") String key, @NotNull AnyPatch anyPatch);
+    Response remedy(@NotNull @PathParam("remediationKey") String remediationKey, @NotNull AnyPatch anyPatch);
 
     /**
      * Perform remediation by deleting the provided user, group or any object.
      *
-     * @param key key for remediation to act on
+     * @param remediationKey key for remediation to act on
      * @param anyKey user's, group's or any object's key to delete
      * @return Response object featuring the deleted object enriched with propagation status information
      */
@@ -208,7 +212,9 @@ public interface RemediationService extends JAXRSService {
                 description = "The ETag value provided via the 'If-Match' header does not match the latest modification"
                 + " date of the entity") })
     @DELETE
-    @Path("{key}/{anyKey}")
+    @Path("{remediationKey}/{anyKey}")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
-    Response remedy(@NotNull @PathParam("key") String key, @NotNull String anyKey);
+    Response remedy(
+            @NotNull @PathParam("remediationKey") String remediationKey,
+            @NotNull @PathParam("anyKey") String anyKey);
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
index f405f8c..ae0b7fe 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -99,6 +101,8 @@ public interface ReportService extends ExecutableService {
      *
      * @param reportTO report to be stored
      */
+    @Parameter(name = "key", description = "Report's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index 57290f1..a72ba13 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -45,6 +47,7 @@ import org.apache.syncope.common.lib.to.BulkActionResult;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
 import org.apache.syncope.common.lib.to.PagedConnObjectTOResult;
 import org.apache.syncope.common.lib.to.ResourceTO;
+import org.apache.syncope.common.lib.types.ResourceDeassociationAction;
 import org.apache.syncope.common.rest.api.RESTHeaders;
 import org.apache.syncope.common.rest.api.beans.ConnObjectTOListQuery;
 
@@ -136,6 +139,8 @@ public interface ResourceService extends JAXRSService {
      *
      * @param resourceTO resource to be stored
      */
+    @Parameter(name = "key", description = "Resource's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT
@@ -207,6 +212,12 @@ public interface ResourceService extends JAXRSService {
      * @param patch any objects to be used for propagation-related operations
      * @return Bulk action result
      */
+    @Parameter(name = "key", description = "Resource's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
+    @Parameter(name = "anyTypeKey", description = "AnyType's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
+    @Parameter(name = "action", description = "Deassociation action", in = ParameterIn.PATH, schema =
+            @Schema(implementation = ResourceDeassociationAction.class))
     @POST
     @Path("{key}/bulkDeassociation/{anyTypeKey}/{action}")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
index 7e1deb4..1ce3101 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -98,6 +100,8 @@ public interface RoleService extends JAXRSService {
      *
      * @param roleTO role to be stored
      */
+    @Parameter(name = "key", description = "Role's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
index b726a80..14e28bf 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -110,6 +112,8 @@ public interface SchemaService extends JAXRSService {
      * @param type type for schemas to be updated
      * @param schemaTO updated schema to be stored
      */
+    @Parameter(name = "key", description = "Schema's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 0102e13..b9df752 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -97,6 +99,8 @@ public interface SecurityQuestionService extends JAXRSService {
      *
      * @param securityQuestionTO security question to be stored
      */
+    @Parameter(name = "key", description = "SecurityQuestion's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index 2228bca..b74ede1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
 import io.swagger.v3.oas.annotations.headers.Header;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -117,6 +119,8 @@ public interface TaskService extends ExecutableService {
      * @param type task type
      * @param taskTO updated task to be stored
      */
+    @Parameter(name = "key", description = "Task's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
index d7dd6af..656e912 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
@@ -128,6 +128,8 @@ public interface UserSelfService extends JAXRSService {
             description = "Allows client to specify a preference for the result to be returned from the server",
             allowEmptyValue = true, schema =
             @Schema(defaultValue = "return-content", allowableValues = { "return-content", "return-no-content" }))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",
@@ -159,6 +161,8 @@ public interface UserSelfService extends JAXRSService {
             description = "Allows client to specify a preference for the result to be returned from the server",
             allowEmptyValue = true, schema =
             @Schema(defaultValue = "return-content", allowableValues = { "return-content", "return-no-content" }))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",
@@ -190,6 +194,8 @@ public interface UserSelfService extends JAXRSService {
             description = "Allows client to specify a preference for the result to be returned from the server",
             allowEmptyValue = true, schema =
             @Schema(defaultValue = "return-content", allowableValues = { "return-content", "return-no-content" }))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
index 666780e..af33157 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
@@ -134,6 +134,8 @@ public interface UserService extends AnyService<UserTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",
@@ -176,6 +178,8 @@ public interface UserService extends AnyService<UserTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",
@@ -218,6 +222,8 @@ public interface UserService extends AnyService<UserTO> {
             + " with External Resources with no priority set",
             allowEmptyValue = true, schema =
             @Schema(type = "boolean", defaultValue = "false"))
+    @Parameter(name = "key", description = "User's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses({
         @ApiResponse(responseCode = "200",
                 description = "User successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RemediationServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RemediationServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RemediationServiceImpl.java
index 91340b1..d7f6b6e 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RemediationServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RemediationServiceImpl.java
@@ -67,8 +67,8 @@ public class RemediationServiceImpl extends AbstractServiceImpl implements Remed
     }
 
     @Override
-    public Response remedy(final String key, final AnyTO anyTO) {
-        ProvisioningResult<?> created = logic.remedy(key, anyTO, isNullPriorityAsync());
+    public Response remedy(final String remediationKey, final AnyTO anyTO) {
+        ProvisioningResult<?> created = logic.remedy(remediationKey, anyTO, isNullPriorityAsync());
         return createResponse(created);
     }
 
@@ -97,18 +97,18 @@ public class RemediationServiceImpl extends AbstractServiceImpl implements Remed
     }
 
     @Override
-    public Response remedy(final String key, final AnyPatch anyPatch) {
-        check(key, anyPatch.getKey());
+    public Response remedy(final String remediationKey, final AnyPatch anyPatch) {
+        check(remediationKey, anyPatch.getKey());
 
-        ProvisioningResult<?> updated = logic.remedy(key, anyPatch, isNullPriorityAsync());
+        ProvisioningResult<?> updated = logic.remedy(remediationKey, anyPatch, isNullPriorityAsync());
         return modificationResponse(updated);
     }
 
     @Override
-    public Response remedy(final String key, final String anyKey) {
-        check(key, anyKey);
+    public Response remedy(final String remediationKey, final String anyKey) {
+        check(remediationKey, anyKey);
 
-        ProvisioningResult<?> deleted = logic.remedy(key, anyKey, isNullPriorityAsync());
+        ProvisioningResult<?> deleted = logic.remedy(remediationKey, anyKey, isNullPriorityAsync());
         return modificationResponse(deleted);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
----------------------------------------------------------------------
diff --git a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
index 2a46118..0760567 100644
--- a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
+++ b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -79,6 +82,8 @@ public interface CamelRouteService extends JAXRSService {
      * @param anyTypeKind any type kind
      * @param route to be updated
      */
+    @Parameter(name = "key", description = "Camel route's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/c66c373a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
index 6e16b05..b04cc27 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
@@ -18,6 +18,9 @@
  */
 package org.apache.syncope.common.rest.api.service;
 
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -96,6 +99,8 @@ public interface SAML2IdPService extends JAXRSService {
      *
      * @param saml2IdpTO idp configuration to be stored
      */
+    @Parameter(name = "key", description = "IdP's key", in = ParameterIn.PATH, schema =
+            @Schema(type = "string"))
     @ApiResponses(
             @ApiResponse(responseCode = "204", description = "Operation was successful"))
     @PUT


[2/2] syncope git commit: Adjusting to latest validation requirements from Swagger UI

Posted by il...@apache.org.
Adjusting to latest validation requirements from Swagger UI


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/9c8bc7bb
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/9c8bc7bb
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/9c8bc7bb

Branch: refs/heads/2_0_X
Commit: 9c8bc7bb135239f4533f865b3c0c7cc99692e2ce
Parents: 241f178
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Apr 6 11:43:16 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Apr 6 13:02:51 2018 +0200

----------------------------------------------------------------------
 .../common/lib/patch/DeassociationPatch.java    |  1 +
 .../rest/api/service/AnyObjectService.java      |  8 +++--
 .../common/rest/api/service/AnyService.java     | 21 +++++++++---
 .../rest/api/service/AnyTypeClassService.java   |  5 +++
 .../common/rest/api/service/AnyTypeService.java |  5 +++
 .../rest/api/service/ConfigurationService.java  |  5 +++
 .../rest/api/service/ConnectorService.java      |  8 +++++
 .../common/rest/api/service/DomainService.java  |  5 +++
 .../rest/api/service/DynRealmService.java       |  5 +++
 .../common/rest/api/service/GroupService.java   |  8 +++--
 .../common/rest/api/service/LoggerService.java  |  5 +++
 .../rest/api/service/NotificationService.java   |  5 +++
 .../common/rest/api/service/PolicyService.java  |  5 +++
 .../common/rest/api/service/RealmService.java   |  4 ++-
 .../api/service/RelationshipTypeService.java    |  5 +++
 .../common/rest/api/service/ReportService.java  |  5 +++
 .../rest/api/service/ResourceService.java       | 13 +++++++
 .../common/rest/api/service/RoleService.java    |  5 +++
 .../common/rest/api/service/SchemaService.java  |  5 +++
 .../api/service/SecurityQuestionService.java    |  5 +++
 .../common/rest/api/service/TaskService.java    |  5 +++
 .../rest/api/service/UserSelfService.java       | 36 ++++++++++++--------
 .../common/rest/api/service/UserService.java    | 12 +++++--
 .../SwaggerToOpenApiConversionUtils.java        |  5 ++-
 .../rest/api/service/CamelRouteService.java     |  5 +++
 .../rest/api/service/SAML2IdPService.java       |  5 +++
 26 files changed, 166 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
index 3c6cc60..74248c8 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/patch/DeassociationPatch.java
@@ -98,6 +98,7 @@ public class DeassociationPatch extends AbstractBaseBean {
         return action;
     }
 
+    @PathParam("action")
     public void setAction(final ResourceDeassociationAction action) {
         this.action = action;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
index 617bd8e..4c40faf 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyObjectService.java
@@ -117,7 +117,9 @@ public interface AnyObjectService extends AnyService<AnyObjectTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Any Object's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "Any object successfully updated enriched with propagation status information, as Entity",
@@ -154,7 +156,9 @@ public interface AnyObjectService extends AnyService<AnyObjectTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Any Object's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "Any object successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
index 5acd64b..45fdfa1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyService.java
@@ -115,6 +115,9 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
      * @param attrTO attribute
      * @return Response object featuring the updated any object attribute - as Entity
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "schema", paramType = "path", dataType = "string",
+                value = "Attribute schema's key") })
     @PUT
     @Path("{key}/{schemaType}/{schema}")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
@@ -179,7 +182,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
     Response delete(@NotNull @PathParam("key") String key);
 
     /**
-     * Executes resource-related operations on given any object.
+     * Executes resource-related operations on given entity.
      *
      * @param patch external resources to be used for propagation-related operations
      * @return Response object featuring BulkActionResult as Entity
@@ -196,7 +199,12 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Entity's key"),
+        @ApiImplicitParam(name = "action", paramType = "path", dataType = "string",
+                allowableValues = "UNLINK,DEPROVISION,UNASSIGN",
+                value = "Deassociation action") })
     @ApiResponses({
         @ApiResponse(code = 200, message = "Bulk action result", response = BulkActionResult.class),
         @ApiResponse(code = 204,
@@ -214,7 +222,7 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
     Response deassociate(@NotNull DeassociationPatch patch);
 
     /**
-     * Executes resource-related operations on given any object.
+     * Executes resource-related operations on given entity.
      *
      * @param patch external resources to be used for propagation-related operations
      * @return Response object featuring BulkActionResult as Entity
@@ -231,7 +239,12 @@ public interface AnyService<TO extends AnyTO> extends JAXRSService {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Entity's key"),
+        @ApiImplicitParam(name = "action", paramType = "path", dataType = "string",
+                allowableValues = "LINK,PROVISION,ASSIGN",
+                value = "Association action") })
     @ApiResponses({
         @ApiResponse(code = 200, message = "Bulk action result", response = BulkActionResult.class),
         @ApiResponse(code = 204,

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
index 77d95ba..950aca2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeClassService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -92,6 +94,9 @@ public interface AnyTypeClassService extends JAXRSService {
      *
      * @param anyTypeClassTO anyTypeClass to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "AnyTypeClass' key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
index d1aba9d..acc03de 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/AnyTypeService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -91,6 +93,9 @@ public interface AnyTypeService extends JAXRSService {
      *
      * @param anyTypeTO anyType to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "AnyType's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
index 5996e0a..2ccf0b4 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConfigurationService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -79,6 +81,9 @@ public interface ConfigurationService extends JAXRSService {
      *
      * @param value parameter value
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "schema", paramType = "path", dataType = "string",
+                value = "Configuration schema") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
index c74c231..d516cb8 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ConnectorService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -74,6 +76,9 @@ public interface ConnectorService extends JAXRSService {
      * @return supported object classes info for the connector bundle matching the given connector instance key, with
      * the provided configuration
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Connector instance' key") })
     @POST
     @Path("{key}/supportedObjectClasses")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })
@@ -143,6 +148,9 @@ public interface ConnectorService extends JAXRSService {
      *
      * @param connInstanceTO connector instance to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Connector instance' key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
index c58604c..f2166ce 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DomainService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -92,6 +94,9 @@ public interface DomainService extends JAXRSService {
      *
      * @param domainTO domain to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Domain's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
index 471a57f..9f6b620 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/DynRealmService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -92,6 +94,9 @@ public interface DynRealmService extends JAXRSService {
      *
      * @param dynDynRealmTO dynamic realm to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "DynRealm's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
index b597974..5ac65a1 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/GroupService.java
@@ -122,7 +122,9 @@ public interface GroupService extends AnyService<GroupTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Group's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "Group successfully updated enriched with propagation status information, as Entity",
@@ -159,7 +161,9 @@ public interface GroupService extends AnyService<GroupTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Group's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "Group successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
index f9305de..1809975 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/LoggerService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -108,6 +110,9 @@ public interface LoggerService extends JAXRSService {
      * @param type LoggerType to be selected
      * @param logger Logger to be created or updated
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Logger's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
index 74e33cc..8c2009c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/NotificationService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -96,6 +98,9 @@ public interface NotificationService extends JAXRSService {
      *
      * @param notificationTO notification to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Notifications's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
index c2d604b..68e044f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/PolicyService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -101,6 +103,9 @@ public interface PolicyService extends JAXRSService {
      * @param type policy type
      * @param policyTO Policy to replace existing policy
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Policy's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
index 0aafcc2..4bd0c0f 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
@@ -121,7 +121,9 @@ public interface RealmService extends JAXRSService {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "fullPath", paramType = "path", dataType = "string",
+                value = "Realm's fullPath") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "Realm successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
index 2cadb77..0185454 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RelationshipTypeService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -92,6 +94,9 @@ public interface RelationshipTypeService extends JAXRSService {
      *
      * @param relationshipTypeTO relationshipType to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "RelationshipType's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
index 5bab18e..3c5d40d 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ReportService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -94,6 +96,9 @@ public interface ReportService extends ExecutableService {
      *
      * @param reportTO report to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Report's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
index 1f2da67..899e461 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/ResourceService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -131,6 +133,9 @@ public interface ResourceService extends JAXRSService {
      *
      * @param resourceTO resource to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Resource's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT
@@ -202,6 +207,14 @@ public interface ResourceService extends JAXRSService {
      * @param patch any objects to be used for propagation-related operations
      * @return Bulk action result
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Resource's key"),
+        @ApiImplicitParam(name = "anyTypeKey", paramType = "path", dataType = "string",
+                value = "Entity's key"),
+        @ApiImplicitParam(name = "action", paramType = "path", dataType = "string",
+                allowableValues = "UNLINK,DEPROVISION,UNASSIGN",
+                value = "Deassociation action") })
     @POST
     @Path("{key}/bulkDeassociation/{anyTypeKey}/{action}")
     @Produces({ MediaType.APPLICATION_JSON, SyncopeConstants.APPLICATION_YAML, MediaType.APPLICATION_XML })

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
index ec6439f..3191669 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RoleService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -93,6 +95,9 @@ public interface RoleService extends JAXRSService {
      *
      * @param roleTO role to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Role's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
index f1f8ae1..fae2d09 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SchemaService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -105,6 +107,9 @@ public interface SchemaService extends JAXRSService {
      * @param type type for schemas to be updated
      * @param schemaTO updated schema to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Schema's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
index 64f3980..e3429de 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SecurityQuestionService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -92,6 +94,9 @@ public interface SecurityQuestionService extends JAXRSService {
      *
      * @param securityQuestionTO security question to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "SecurityQuestion's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
index b883518..c6da1a2 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/TaskService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -112,6 +114,9 @@ public interface TaskService extends ExecutableService {
      * @param type task type
      * @param taskTO updated task to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Task's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
index c2f8e27..19b41eb 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserSelfService.java
@@ -114,11 +114,13 @@ public interface UserSelfService extends JAXRSService {
     @ApiOperation(value = "", authorizations = {
         @Authorization(value = "BasicAuthentication"),
         @Authorization(value = "Bearer") })
-    @ApiImplicitParams(
-            @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
-                    value = "Allows the client to specify a preference for the result to be returned from the server",
-                    defaultValue = "return-content", allowableValues = "return-content, return-no-content",
-                    allowEmptyValue = true))
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
+                value = "Allows the client to specify a preference for the result to be returned from the server",
+                defaultValue = "return-content", allowableValues = "return-content, return-no-content",
+                allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",
@@ -143,11 +145,13 @@ public interface UserSelfService extends JAXRSService {
     @ApiOperation(value = "", authorizations = {
         @Authorization(value = "BasicAuthentication"),
         @Authorization(value = "Bearer") })
-    @ApiImplicitParams(
-            @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
-                    value = "Allows the client to specify a preference for the result to be returned from the server",
-                    defaultValue = "return-content", allowableValues = "return-content, return-no-content",
-                    allowEmptyValue = true))
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
+                value = "Allows the client to specify a preference for the result to be returned from the server",
+                defaultValue = "return-content", allowableValues = "return-content, return-no-content",
+                allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",
@@ -172,11 +176,13 @@ public interface UserSelfService extends JAXRSService {
     @ApiOperation(value = "", authorizations = {
         @Authorization(value = "BasicAuthentication"),
         @Authorization(value = "Bearer") })
-    @ApiImplicitParams(
-            @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
-                    value = "Allows the client to specify a preference for the result to be returned from the server",
-                    defaultValue = "return-content", allowableValues = "return-content, return-no-content",
-                    allowEmptyValue = true))
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = RESTHeaders.PREFER, paramType = "header", dataType = "string",
+                value = "Allows the client to specify a preference for the result to be returned from the server",
+                defaultValue = "return-content", allowableValues = "return-content, return-no-content",
+                allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
----------------------------------------------------------------------
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
index 9ae3574..f811b74 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/UserService.java
@@ -123,7 +123,9 @@ public interface UserService extends AnyService<UserTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",
@@ -160,7 +162,9 @@ public interface UserService extends AnyService<UserTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",
@@ -197,7 +201,9 @@ public interface UserService extends AnyService<UserTO> {
         @ApiImplicitParam(name = RESTHeaders.NULL_PRIORITY_ASYNC, paramType = "header", dataType = "boolean",
                 value = "If 'true', instructs the propagation process not to wait for completion when communicating"
                 + " with External Resources with no priority set",
-                defaultValue = "false", allowEmptyValue = true) })
+                defaultValue = "false", allowEmptyValue = true),
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "User's key") })
     @ApiResponses({
         @ApiResponse(code = 200,
                 message = "User successfully updated enriched with propagation status information, as Entity",

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/openapi/SwaggerToOpenApiConversionUtils.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/openapi/SwaggerToOpenApiConversionUtils.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/openapi/SwaggerToOpenApiConversionUtils.java
index 87f127b..80cd745 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/openapi/SwaggerToOpenApiConversionUtils.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/openapi/SwaggerToOpenApiConversionUtils.java
@@ -85,7 +85,7 @@ public final class SwaggerToOpenApiConversionUtils {
             sw3.setProperty("externalDocs", externalDocsObject);
         }
 
-        return readerWriter.toJson(sw3);
+        return readerWriter.toJson(sw3).replace("#/definitions/", "#/components/schemas/");
     }
 
     private static void setComponentsProperty(
@@ -297,8 +297,7 @@ public final class SwaggerToOpenApiConversionUtils {
                     if (requestBodyName != null) {
                         requestBodies.put(requestBodyName, sw3RequestBody);
                         String ref = "#/components/requestBodies/" + requestBodyName;
-                        sw2PathVerbProps.setProperty("requestBody",
-                                Collections.singletonMap("$ref", ref));
+                        sw2PathVerbProps.setProperty("requestBody", Collections.singletonMap("$ref", ref));
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
----------------------------------------------------------------------
diff --git a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
index 8473c74..9f98a4c 100644
--- a/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
+++ b/ext/camel/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/CamelRouteService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -77,6 +79,9 @@ public interface CamelRouteService extends JAXRSService {
      * @param anyTypeKind any type kind
      * @param route to be updated
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "Camel route's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT

http://git-wip-us.apache.org/repos/asf/syncope/blob/9c8bc7bb/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
index 91197df..4bd44bb 100644
--- a/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
+++ b/ext/saml2sp/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/SAML2IdPService.java
@@ -19,6 +19,8 @@
 package org.apache.syncope.common.rest.api.service;
 
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import io.swagger.annotations.Authorization;
@@ -94,6 +96,9 @@ public interface SAML2IdPService extends JAXRSService {
      *
      * @param saml2IdpTO idp configuration to be stored
      */
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "key", paramType = "path", dataType = "string",
+                value = "IdP's key") })
     @ApiResponses(
             @ApiResponse(code = 204, message = "Operation was successful"))
     @PUT