openapi: 3.0.1 info: title: SCIM API description: | Janssen SCIM 2.0 server API. Developers can think of SCIM as a REST API with endpoints exposing CRUD functionality (create, update, retrieve and delete) for identity management resources such as users, groups, and fido devices. contact: name: Contact url: https://github.com/JanssenProject/jans/discussions license: name: License url: https://github.com/JanssenProject/jans/blob/main/LICENSE version: "OAS Version" servers: - url: https://jans.local.io/jans-scim/restv1/v2 tags: - name: user description: Endpoints for management of User resources - name: group description: Endpoints for management of Group resources - name: fido2 devices description: Endpoints for management of Fido2 devices - name: global search description: Search from service root - name: discovery description: Endpoints to facilitate discovery of SCIM service provider features paths: /Groups: get: tags: - group operationId: get-groups description: Query Group resources (see section 3.4.2 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/groups.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: filter in: query description: An expression specifying the search criteria. See section 3.4.2.2 of RFC 7644 schema: type: string example: displayName co "Audit" - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer - name: count in: query description: Specifies the desired maximum number of query results per page schema: type: integer - name: sortBy in: query description: The attribute whose value will be used to order the returned responses schema: type: string - name: sortOrder in: query description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending" schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupListResponse' application/json: schema: $ref: '#/components/schemas/GroupListResponse' 400: description: Parameter count exceeds the maximum allowed value or the filter supplied was unparsable content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: tags: - group operationId: create-group description: Allows creating a Group resource via POST (see section 3.3 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/groups.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string requestBody: description: Payload that represents the Group to create content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/group_minimal_create.json' application/json: schema: $ref: '#/components/schemas/GroupResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/group_minimal_create.json' required: true responses: 201: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' application/json: schema: $ref: '#/components/schemas/GroupResource' 400: description: An invalid value was passed in the payload content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 409: description: There is a conflict with an already existing group. Uniqueness is assumed over displayName content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: group /Groups/{id}: get: tags: - group operationId: get-group-by-id description: Retrieves a Group resource by Id (see section 3.4.1 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/groups.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' application/json: schema: $ref: '#/components/schemas/GroupResource' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' put: tags: - group operationId: update-group-by-id description: "Updates a Group resource (see section 3.5.1 of RFC 7644). Update\ \ works in a replacement fashion: every\nattribute value found in the\ \ payload sent will replace the one in the existing resource representation.\ \ Attributes \nnot passed in the payload will be left intact.\n" security: - scim_oauth: [https://jans.io/scim/groups.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string requestBody: description: Payload with the data to replace in the existing group identified by the id param content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/group_minimal_update.json' application/json: schema: $ref: '#/components/schemas/GroupResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/group_minimal_update.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' application/json: schema: $ref: '#/components/schemas/GroupResource' 400: description: | An invalid value was passed in the payload or there was an attempt to update an immutable attribute content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 409: description: There is a conflict with an already existing group. Uniqueness is assumed over displayName content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: group delete: tags: - group operationId: delete-group-by-id description: Deletes a group resource (see section 3.6 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/groups.write] parameters: - name: id in: path description: Identifier of the resource to delete required: true schema: type: string responses: 204: description: Successful operation. Empty response content: {} 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: tags: - group operationId: patch-group-by-id description: "Updates one or more attributes of a Group resource using a sequence\ \ of additions, removals, and replacements operations. See section 3.5.2\ \ of RFC 7644\n" security: - scim_oauth: [https://jans.io/scim/groups.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string requestBody: description: Payload describing the patch operations to apply upon the resource identified by param id content: application/scim+json: schema: $ref: '#/components/schemas/PatchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/group_patch.json' application/json: schema: $ref: '#/components/schemas/PatchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/group_patch.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupResource' application/json: schema: $ref: '#/components/schemas/GroupResource' 400: description: | One or more operations supplied in the request are specified incorrectly, there were attempts to modify immutable attributes, or the resulting resource cannot pass intrinsic validations content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: request /Groups/.search: post: tags: - group operationId: search-group description: Query Group resources (see section 3.4.2 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/groups.read] requestBody: description: Payload that represents the search criteria content: application/scim+json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' application/json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GroupListResponse' application/json: schema: $ref: '#/components/schemas/GroupListResponse' 400: description: | Parameter count exceeds the maximum allowed value, the filter supplied was unparsable, or invalid schema in search request content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: searchRequest /Fido2Devices: get: tags: - fido2 devices operationId: get-fido2-devices description: Query Fido 2 resources security: - scim_oauth: [https://jans.io/scim/fido2.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: userId in: query description: Used to restrict the search to fido 2 resources owned by a specific user schema: type: string - name: filter in: query description: An expression specifying the search criteria. See section 3.4.2.2 of RFC 7644 example: userId sw "123-abcde-qwerty" schema: type: string - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer - name: count in: query description: Specifies the desired maximum number of query results per page schema: type: integer - name: sortBy in: query description: The attribute whose value will be used to order the returned responses schema: type: string - name: sortOrder in: query description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending" schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/Fido2ListResponse' application/json: schema: $ref: '#/components/schemas/Fido2ListResponse' 400: description: Parameter count exceeds the maximum allowed value or the filter supplied was unparsable content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404: description: If userId param was supplied and the user is not known content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' /Fido2Devices/{id}: get: tags: - fido2 devices operationId: get-fido2-device-by-id description: Retrieves a Fido 2 device by Id security: - scim_oauth: [https://jans.io/scim/fido2.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: userId in: query description: Identifier (inum) of the device owner. This param is not required when underlying database is LDAP schema: type: string - name: id in: path required: true schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/Fido2DeviceResource' application/json: schema: $ref: '#/components/schemas/Fido2DeviceResource' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' put: tags: - fido2 devices operationId: update-fido2-device-by-id description: "Updates a Fido 2 resource. Update works in a replacement fashion:\ \ every attribute value found in the payload sent will replace the one in\ \ the existing resource representation. Attributes not passed in the payload\ \ will be left intact.\n" security: - scim_oauth: [https://jans.io/scim/fido2.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string requestBody: description: Payload with the data to replace in the existing device identified by the id param content: application/scim+json: schema: $ref: '#/components/schemas/Fido2DeviceResource' application/json: schema: $ref: '#/components/schemas/Fido2DeviceResource' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/Fido2DeviceResource' application/json: schema: $ref: '#/components/schemas/Fido2DeviceResource' 400: description: | An invalid value was passed in the payload or there was an attempt to update an immutable attribute content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: fido2DeviceResource delete: tags: - fido2 devices operationId: delete-fido2-device-by-id description: Deletes a Fido 2 resource security: - scim_oauth: [https://jans.io/scim/fido2.write] parameters: - name: id in: path description: Identifier of the resource to delete required: true schema: type: string responses: 204: description: Successful operation. Empty response content: {} 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' /Fido2Devices/.search: post: tags: - fido2 devices operationId: search-fido2-device description: Query Fido 2 resources security: - scim_oauth: [https://jans.io/scim/fido2.read] parameters: - name: userId in: query description: Used to restrict the search to fido 2 resources owned by a specific user schema: type: string requestBody: description: Payload that represents the search criteria content: application/scim+json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_2.json' application/json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_2.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/Fido2ListResponse' 400: description: | Parameter count exceeds the maximum allowed value, the filter supplied was unparsable, or invalid schema in search request content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404: description: If userId param was supplied and the user is not known content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: searchRequest /Users: get: tags: - user operationId: get-users description: Query User resources (see section 3.4.2 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/users.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: filter in: query description: An expression specifying the search criteria. See section 3.4.2.2 of RFC 7644 example: userName eq "jhon" and meta.lastModified gt "2011-05-13T04:42:34Z" schema: type: string - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer - name: count in: query description: Specifies the desired maximum number of query results per page schema: type: integer - name: sortBy in: query description: The attribute whose value will be used to order the returned responses schema: type: string - name: sortOrder in: query description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending" schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserListResponse' application/json: schema: $ref: '#/components/schemas/UserListResponse' 400: description: Parameter count exceeds the maximum allowed value or the filter supplied was unparsable content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: tags: - user operationId: create-user description: Allows creating a User resource via POST (see section 3.3 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/users.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string requestBody: description: Payload that represents the User to create content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/user_average_create.json' application/json: schema: $ref: '#/components/schemas/UserResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/user_average_create.json' required: true responses: 201: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' application/json: schema: $ref: '#/components/schemas/UserResource' 400: description: An invalid value was passed in the payload content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 409: description: There is a conflict with an already existing user. Uniqueness is assumed over userName content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: user /Users/{id}: get: tags: - user operationId: get-user-by-id description: Retrieves a User resource by Id (see section 3.4.1 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/users.read] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' application/json: schema: $ref: '#/components/schemas/UserResource' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' put: tags: - user operationId: update-user-by-id description: "Updates a User resource (see section 3.5.1 of RFC 7644). Update\ \ works in a replacement fashion: every attribute value found in the\ \ payload sent will replace the one in the existing resource representation.\ \ Attributes not passed in the payload will be left intact.\n" security: - scim_oauth: [https://jans.io/scim/users.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string requestBody: description: Payload with the data to replace in the existing user identified by the id param content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/user_average_update.json' application/json: schema: $ref: '#/components/schemas/UserResource' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/user_average_update.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' application/json: schema: $ref: '#/components/schemas/UserResource' 400: description: | An invalid value was passed in the payload or there was an attempt to update an immutable attribute content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 409: description: There is a conflict with an already existing group. Uniqueness is assumed over displayName content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: user delete: tags: - user operationId: delete-user-by-id description: Deletes a user resource security: - scim_oauth: [https://jans.io/scim/users.write] parameters: - name: id in: path description: Identifier of the resource to delete required: true schema: type: string responses: 204: description: Successful operation. Empty response content: {} 404: description: Id passed unknown content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' patch: tags: - user operationId: patch-user-by-id description: "Updates one or more attributes of a User resource using a sequence\ \ of additions, removals, and replacements operations. See section 3.5.2\ \ of RFC 7644\n" security: - scim_oauth: [https://jans.io/scim/users.write] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path required: true schema: type: string requestBody: description: Payload describing the patch operations to apply upon the resource identified by param id content: application/scim+json: schema: $ref: '#/components/schemas/PatchRequest' examples: payloadWithFilters: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/user_patch_valuefilter.json' payloadUserExtension: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/user_patch_ext.json' application/json: schema: $ref: '#/components/schemas/PatchRequest' examples: payloadWithFilters: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/user_patch_valuefilter.json' payloadUserExtension: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/single/patch/user_patch_ext.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserResource' application/json: schema: $ref: '#/components/schemas/UserResource' 400: description: | One or more operations supplied in the request are specified incorrectly, there were attempts to modify immutable attributes, or the resulting resource cannot pass intrinsic validations content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: request /Users/.search: post: tags: - user operationId: search-user description: Query User resources (see section 3.4.2 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/users.read] requestBody: description: Payload that represents the search criteria content: application/scim+json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' application/json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserListResponse' application/json: schema: $ref: '#/components/schemas/UserListResponse' 400: description: | Parameter count exceeds the maximum allowed value, the filter supplied was unparsable, or invalid schema in search request content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: searchRequest /UserTokens: get: tags: - user operationId: user-tokens description: Retrieves token metadata associated to a given user security: - scim_oauth: [https://jans.io/scim/tokens] parameters: - name: attributes in: query description: A comma-separated list of attribute names to return in the response schema: type: string - name: excludedAttributes in: query description: When specified, the response will contain a default set of attributes minus those listed here (as a comma-separated list) schema: type: string - name: id in: path description: The "id" attribute of the user in question required: true schema: type: string responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UserTokensResponse' application/json: schema: $ref: '#/components/schemas/UserTokensResponse' 404: description: No user exists with the given id content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' delete: tags: - user operationId: revoke-tokens description: | Revokes one or more tokens associated to a given user. All tokens associated to the token that matches the hash passed as input are removed (as long as they are tied to the user identified by the value passed) security: - scim_oauth: [https://jans.io/scim/groups.write] parameters: - name: id in: path description: User identifier required: true schema: type: string - name: tokenHash in: query description: Hash of the token to revoke required: true schema: type: string responses: 204: description: Successful operation. Empty response content: {} 404: description: User identifier unknown, token hash not associated to user, or unknown token hash content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' /UpdatedUsers: get: tags: - user description: This endpoint searches local user entries updated or created after the specified time operationId: updated-users security: - scim_oauth: [https://jans.io/scim/tokens] parameters: - name: timeStamp in: query description: A time stamp using ISO date format. For example `2019-12-24T12:00:03-05:00`, `2019-10-14T01:02:03Z` (denotes UTC) required: true schema: type: string - name: start in: query description: Numeric offset to start the search from. If ommited, zero is assumed (ie. no record skipping) required: false schema: type: integer - name: pagesize in: query description: Maximum number of results to retrieve. In practice, no more than 200 items will be returned required: true schema: type: integer responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/UpdatedUsersResponse' application/json: schema: $ref: '#/components/schemas/UpdatedUsersResponse' 400: description: A parameter is missing or not properly formatted content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was a failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' /.search: post: description: | Search (from system root) for one or more resource (see section 3.4.3 of RFC 7644) tags: - global search operationId: search-resources security: - scim_oauth: [https://jans.io/scim/all-resources.search] requestBody: description: Payload that represents the search criteria content: application/scim+json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' application/json: schema: $ref: '#/components/schemas/SearchRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/search_post_1.json' required: true responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/GenericListResponse' application/json: schema: $ref: '#/components/schemas/GenericListResponse' 400: description: | Parameter count exceeds the maximum allowed value, the filter supplied was unparsable, or invalid schema in search request content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: searchRequest /Bulk: post: description: Send several resource operations in a single request (see section 3.7 of RFC 7644) security: - scim_oauth: [https://jans.io/scim/bulk] requestBody: description: Payload describing the operations to perform content: application/scim+json: schema: $ref: '#/components/schemas/BulkRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/users_bulk_1.json' application/json: schema: $ref: '#/components/schemas/BulkRequest' examples: samplePayload: externalValue: 'https://raw.githubusercontent.com/JanssenProject/jans/main/jans-scim/client/src/test/resources/multiple/users_bulk_1.json' required: true responses: 200: description: | Successful operation. Every individual operation will report its own output status. Reponses are only included for failed operations. content: application/scim+json: schema: $ref: '#/components/schemas/BulkData' application/json: schema: $ref: '#/components/schemas/BulkData' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-codegen-request-body-name: request /ServiceProviderConfig: get: tags: - discovery operationId: get-service-provider-config description: Describes the SCIM specification features available (see section 5 of RFC 7644) responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/ServiceProviderConfigResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' /ResourceTypes: get: tags: - discovery operationId: get-resource-types description: | This endpoint is used to discover the types of resources available (see section 4 of RFC 7644) responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/ResourceTypeListResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' /ResourceTypes/{resource}: get: tags: - discovery operationId: get-resource-type-by-id description: "Describes the endpoint, schemas and extensions supported by a\ \ specific kind of resource.\nIt returns a specific portion of the ouput of\ \ the more general /Resources endpoint \n" parameters: - name: resource in: path required: true schema: type: string enum: - User - Group - Fido2Device responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/ResourceType' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' /Schemas: get: tags: - discovery operationId: get-schemas description: "Endpoint used to retrieve information about schemas supported\ \ (see section \n4 of RFC 7644)\n" responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/SchemaListResponse' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' /Schemas/{uri}: get: tags: - discovery operationId: get-schema-by-uri description: Retrieves information about a specific resource parameters: - name: uri in: path description: Schema URI of a particular resource type required: true schema: type: string enum: - urn:ietf:params:scim:schemas:core:2.0:User - urn:ietf:params:scim:schemas:extension:gluu:2.0:User - urn:ietf:params:scim:schemas:core:2.0:Group - urn:ietf:params:scim:schemas:core:2.0:Fido2Device responses: 200: description: Successful operation content: application/scim+json: schema: $ref: '#/components/schemas/SchemaResource' 500: description: There was an unexpected failure executing the operation content: application/scim+json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: AnyValue: description: Can be any value - string, number, boolean, array or object SearchRequest: type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:api:messages:2.0:SearchRequest attributes: type: array description: A list of attribute names to return in the response items: type: string excludedAttributes: type: array description: When specified, the response will contain a default set of attributes minus those listed here items: type: string filter: type: string description: An expression specifying the search criteria. See section 3.4.2.2 of RFC 7644 example: userName eq "jhon" and meta.lastModified gt "2011-05-13T04:42:34Z" sortBy: type: string description: The attribute whose value will be used to order the returned responses sortOrder: type: string description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending" startIndex: type: integer description: The 1-based index of the first query result count: type: integer description: Specifies the desired maximum number of query results per page description: See section 3.4.3 of RFC 7644 ErrorResponse: required: - status type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:api:messages:2.0:Error status: type: string description: HTTP status code as string scimType: type: string description: A detail error keyword. See table 9 of RFC 7644 detail: type: string description: A detailed human-readable message of the error description: See section 3.12 of RFC 7644 AuthenticationScheme: required: - type - name - description type: object properties: type: type: string example: oauth2 name: type: string description: type: string specUri: type: string documentationUri: type: string primary: type: boolean description: See section 5 of RFC 7643 ServiceProviderConfigResponse: type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig meta: type: object properties: resourceType: type: string location: type: string documentationUri: type: string patch: type: object properties: supported: type: boolean bulk: type: object properties: supported: type: boolean maxOperations: type: integer maxPayloadSize: type: integer filter: type: object properties: supported: type: boolean maxResults: type: integer changePassword: type: object properties: supported: type: boolean sort: type: object properties: supported: type: boolean etag: type: object properties: supported: type: boolean authenticationSchemes: type: array items: $ref: '#/components/schemas/AuthenticationScheme' description: See section 5 of RFC 7643 ResourceType: type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:schemas:core:2.0:ResourceType id: type: string meta: type: object properties: resourceType: type: string location: type: string name: type: string description: type: string endpoint: type: string schema: type: string schemaExtensions: type: object properties: schema: type: string required: type: boolean description: See section 6 of RFC 7643 SchemaAttribute: type: object properties: name: type: string type: type: string subAttributes: type: array items: $ref: '#/components/schemas/SchemaAttribute' multiValued: type: boolean description: type: string required: type: string canonicalValues: type: array items: type: string caseExact: type: boolean mutability: type: string returned: type: string uniqueness: type: string referenceTypes: type: array items: type: string description: A recursive definition. Note how property subAttributes reuses SchemaAttribute for its definition SchemaResource: type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:schemas:core:2.0:Schema id: type: string meta: type: object properties: resourceType: type: string location: type: string name: type: string description: type: string attributes: type: array items: $ref: '#/components/schemas/SchemaAttribute' TokenMetadata: type: object properties: hash: type: string description: An opaque token identifier type: type: string enum: - access_token - refresh_token - id_token issuedAt: type: integer description: A timestamp (unix epoch based) of token issuance date expiresAt: type: integer description: A timestamp (unix epoch based) of token expiration date appName: type: string description: A display name of the app (client) this token is associated to clientId: type: string description: Identifier of the OAuth client this token is associated to scopes: type: array description: List of scopes associated to this token items: type: string UpdatedUsersResponse: type: object properties: total: type: integer description: Total number of entries included in the result set. latestUpdateAt: type: string description: An ISO date time representing the latest update time seen in the entries of the result set results: type: array items: type: object description: An array of objects. Every object is a dictionary whose keys are attribute names (as in local Jans database - no scim naming). Associated to every key is an array of values (for the mentioned attribute). A sample object can be { "displayName" -> ["Jhonny"], "inum" -> ["abcd-1234"], "mail" -> ["jhon@office.com", "jhon@home.com"], "gluuSLAManager" -> [true], "updatedAt" -> ["2019-10-14T01:27:29.934Z"], "uid" -> ["JhonHoney"] } BasicListResponse: type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:api:messages:2.0:ListResponse totalResults: type: integer description: Total number of results returned by the search. The value may be larger than the number of resources returned due to pagination startIndex: type: integer description: The 1-based index of the first result in the current set of search results itemsPerPage: type: integer description: The number of resources returned in a results page GroupListResponse: description: Results for groups search. See section 3.4.2.4 of RFC 7644 allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/GroupResource' Fido2ListResponse: description: Results for fido 2 devices search allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/Fido2DeviceResource' UserListResponse: description: Results for users search. See section 3.4.2.4 of RFC 7644 allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/UserResource' UserTokensResponse: description: Metadata of tokens associated to a user allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/TokenMetadata' ResourceTypeListResponse: allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/ResourceType' SchemaListResponse: allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/SchemaResource' PatchOperation: required: - op type: object properties: op: type: string description: The kind of operation to perform enum: - add - remove - replace path: type: string description: Required when op is remove, optional otherwise value: $ref: '#/components/schemas/AnyValue' description: Only required when op is add or replace description: See section 3.5.2 of RFC 7644 PatchRequest: description: Stores one or more patch operations required: - Operations type: object properties: schemas: type: array items: type: string example: urn:ietf:params:scim:api:messages:2.0:PatchOp Operations: type: array items: $ref: '#/components/schemas/PatchOperation' BulkOperation: type: object properties: method: type: string example: PUT bulkId: type: string description: | Used to bind the id generated for a created resource (via POST) to a named variable for later reuse path: type: string description: Path of the endpoint the operation uses relative to the server root, eg. /Users data: type: object properties: {} description: Payload associated to this operation location: type: string description: Used in responses of POST operations response: type: object properties: {} status: type: string description: See section 3.7 of RFC 7644 BulkData: type: object description: Used to encapsulate one or more succesive SCIM operations in a single request properties: schemas: type: array items: type: string Operations: type: array items: $ref: '#/components/schemas/BulkOperation' BulkRequest: allOf: - $ref: '#/components/schemas/BulkData' - type: object properties: failOnErrors: type: integer description: The number of errors that can be accepted before the Bulk request is terminated and a response is returned Meta: type: object properties: resourceType: type: string created: type: string lastModified: type: string location: type: string description: Descriptive information about a resource. See section 3.1 of RFC 7643 Member: type: object description: Represents a member of a Group resource properties: $ref: type: string description: URI of the SCIM resource type: type: string description: The type of member. Only "User" is allowed display: type: string description: A human readable name, primarily used for display purposes value: type: string description: Identifier (ID) of the resource Name: type: object properties: familyName: type: string givenName: type: string middleName: type: string honorificPrefix: type: string description: A "title" like "Ms.", "Mrs." honorificSuffix: type: string description: Name suffix, like "Junior", "The great", "III" formatted: type: string description: Full name, including all middle names, titles, and suffixes as appropriate description: See section 4.1.1 of RFC 7643 Email: type: object properties: value: type: string example: gossow@nsfw.com display: type: string type: type: string example: work primary: type: boolean description: Denotes if this is the preferred e-mail among others, if any description: See section 4.1.2 of RFC 7643 PhoneNumber: type: object properties: value: type: string example: +1-555-555-8377 display: type: string type: type: string example: fax primary: type: boolean description: Denotes if this is the preferred phone number among others, if any description: See section 4.1.2 of RFC 7643 InstantMessagingAddress: type: object properties: value: type: string display: type: string type: type: string example: gtalk primary: type: boolean description: Denotes if this is the preferred messaging addressed among others, if any description: See section 4.1.2 of RFC 7643 Photo: type: object properties: value: type: string example: https://pics.nsfw.com/gossow.png display: type: string type: type: string example: thumbnail primary: type: boolean description: Denotes if this is the preferred photo among others, if any description: Points to a resource location representing the user's image. See section 4.1.2 of RFC 7643 Address: type: object properties: formatted: type: string description: Full mailing address, formatted for display or use with a mailing label streetAddress: type: string example: 56 Acacia Avenue locality: type: string description: City or locality of the address region: type: string description: State or region of the address postalCode: type: string description: Zip code country: type: string description: Country expressed in ISO 3166-1 "alpha-2" code format example: UK type: type: string example: home primary: type: boolean description: Denotes if this is the preferred address among others, if any description: Physical mailing address for this user. See section 4.1.2 of RFC 7643 Group: type: object properties: value: type: string description: Group identifier example: 180ee84f0671b1 $ref: type: string description: URI associated to the group example: https://nsfw.com/scim/restv1/v2/Groups/180ee84f0671b1 display: type: string example: Cult managers type: type: string description: Describes how the group membership was derived example: direct description: See section 4.1.2 of RFC 7643 Entitlement: type: object properties: value: type: string example: Stakeholder display: type: string type: type: string primary: type: boolean description: Denotes if this is the preferred entitlement among others, if any description: Entitlements represent things a user has, like rights. See section 4.1.2 of RFC 7643 Role: type: object properties: value: type: string example: Project manager display: type: string type: type: string primary: type: boolean description: Denotes if this is the preferred role among others, if any description: See section 4.1.2 of RFC 7643 X509Certificate: type: object properties: value: type: string description: DER-encoded X.509 certificate display: type: string type: type: string primary: type: boolean description: Denotes if this is the preferred certificate among others, if any description: A certificate associated with the user. See section 4.1.2 of RFC 7643 BaseResource: type: object properties: schemas: type: array description: URIs that are used to indicate the namespaces of the SCIM schemas that define the attributes present in the current structure items: type: string id: type: string description: A unique identifier for a SCIM resource. See section 3.1 of RFC 7643 meta: $ref: '#/components/schemas/Meta' GroupResource: description: Represents a group resource. See section 4.2 of RFC 7643 allOf: - $ref: '#/components/schemas/BaseResource' - type: object properties: displayName: type: string description: Group name suitable for display to end-users members: type: array items: $ref: '#/components/schemas/Member' Fido2DeviceResource: description: Represents a Fido 2 device enrollment allOf: - $ref: '#/components/schemas/BaseResource' - type: object properties: userId: type: string description: Identifies the owner of the enrollment creationDate: type: string description: Date of enrollment in ISO format format: date-time counter: type: integer description: Value used in the Fido 2 endpoints status: type: string enum: - registered - pending - compromised - canceled displayName: type: string description: Device name suitable for display to end-users UserResource: description: Represents a user resource. See section 4.1 of RFC 7643 allOf: - $ref: '#/components/schemas/BaseResource' - type: object properties: externalId: type: string description: Identifier of the resource useful from the perspective of the provisioning client. See section 3.1 of RFC 7643 userName: type: string description: Identifier for the user, typically used by the user to directly authenticate (id and externalId are opaque identifiers generally not known by users) name: $ref: '#/components/schemas/Name' displayName: type: string description: Name of the user suitable for display to end-users nickName: type: string description: Casual way to address the user in real life profileUrl: type: string description: URI pointing to a location representing the User's online profile title: type: string example: Vice President userType: type: string description: Used to identify the relationship between the organization and the user example: Contractor preferredLanguage: type: string description: Preferred language as used in the Accept-Language HTTP header example: en locale: type: string description: Used for purposes of localizing items such as currency and dates example: en-US timezone: type: string example: America/Los_Angeles active: type: boolean password: type: string emails: type: array items: $ref: '#/components/schemas/Email' phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumber' ims: type: array items: $ref: '#/components/schemas/InstantMessagingAddress' photos: type: array items: $ref: '#/components/schemas/Photo' addresses: type: array items: $ref: '#/components/schemas/Address' groups: type: array items: $ref: '#/components/schemas/Group' entitlements: type: array items: $ref: '#/components/schemas/Entitlement' roles: type: array items: $ref: '#/components/schemas/Role' x509Certificates: type: array items: $ref: '#/components/schemas/X509Certificate' urn:ietf:params:scim:schemas:extension:gluu:2.0:User: type: object properties: {} description: Extended attributes GenericResource: oneOf: - $ref: '#/components/schemas/GroupResource' - $ref: '#/components/schemas/UserResource' - $ref: '#/components/schemas/Fido2DeviceResource' GenericListResponse: allOf: - $ref: '#/components/schemas/BasicListResponse' - type: object properties: Resources: type: array items: $ref: '#/components/schemas/GenericResource' securitySchemes: scim_oauth: type: oauth2 description: Endpoints protected by a bearer token passed in the Authorization header. flows: clientCredentials: tokenUrl: 'https://localhost/jans-auth/restv1/token' scopes: https://jans.io/scim/users.read: Query user resources https://jans.io/scim/users.write: Modify user resources https://jans.io/scim/groups.read: Query group resources https://jans.io/scim/groups.write: Modify group resources https://jans.io/scim/fido.read: Query fido resources https://jans.io/scim/fido.write: Modify fido resources https://jans.io/scim/fido2.read: Query fido 2 resources https://jans.io/scim/fido2.write: Modify fido 2 resources https://jans.io/scim/all-resources.search: Access the root .search endpoint https://jans.io/scim/bulk: Send requests to the bulk endpoint https://jans.io/scim/tokens: List and revoke user tokens