openapi: 3.2.0
info:
title: Fenergo Nebula Identity Scim Bulk API
description: '## What is SCIM?'
version: v1
servers:
- url: /scim
security:
- Bearer: []
tags:
- name: Bulk
paths:
/Bulk:
post:
tags:
- Bulk
summary: Performs multiple operations at once and returns the status of each operation
operationId: Bulk
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkRequestDto'
examples:
bulk-create-users:
summary: Bulk - Create multiple users
description: Create multiple users at once. The 'bulkId' attribute is REQUIRED because operations are POST
value:
schemas:
- urn:ietf:params:scim:api:messages:2.0:BulkRequest
operations:
- method: POST
path: /Users
bulkId: bulkid1
data:
externalId: '1234'
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
userName: johndoe@company.com
emails:
- type: work
value: johndoe@company.com
primary: true
name:
familyName: Doe
givenName: John
- method: POST
path: /Users
bulkId: bulkid2
data:
externalId: '5678'
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
userName: johnsmith@company.com
emails:
- type: work
value: johnsmith@company.com
primary: true
name:
familyName: Smith
givenName: John
bulk-update-users:
summary: Bulk - Update multiple users
description: Update multiple users at once. The 'userName' is mandatory and it can't be changed because operations are PUT
value:
schemas:
- urn:ietf:params:scim:api:messages:2.0:BulkRequest
operations:
- method: PUT
path: /Users/efca51d8-938d-4855-b461-3166d1e6fe8e
bulkId: '1234'
data:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
userName: johndoe@company.com
name:
familyName: New family name
givenName: New given name
emails:
- primary: true
type: work
value: johndoe@company.com
- type: home
value: johndoe@gmail.com
- method: PUT
path: /Users/7cd066bc-b706-468f-938a-f955930b693f
bulkId: '5678'
data:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
userName: johnsmith@company.com
nickName: New nickname
bulk-patch-users:
summary: Bulk - Patch multiple users
description: Patch multiple users at once
value:
schemas:
- urn:ietf:params:scim:api:messages:2.0:BulkRequest
operations:
- method: PATCH
path: /Users/efca51d8-938d-4855-b461-3166d1e6fe8e
data:
operations:
- op: replace
path: name
value:
givenName: New Given Name
familyName: New Family Name
- op: add
path: title
value: New title
- op: remove
path: nickName
schemas:
- urn:ietf:params:scim:api:messages:2.0:PatchOp
- method: PATCH
path: /Users/7cd066bc-b706-468f-938a-f955930b693f
data:
operations:
- op: add
path: nickName
value: My nickname
schemas:
- urn:ietf:params:scim:api:messages:2.0:PatchOp
bulk-delete-users:
summary: Bulk - Delete multiple users
description: Delete multiple users at once
value:
schemas:
- urn:ietf:params:scim:api:messages:2.0:BulkRequest
operations:
- method: DELETE
path: /Users/efca51d8-938d-4855-b461-3166d1e6fe8e
- method: DELETE
path: /Users/7cd066bc-b706-468f-938a-f955930b693f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BulkResponseDto'
example:
schemas:
- urn:ietf:params:scim:api:messages:2.0:BulkResponse
Operations:
- method: '{HTTP_METHOD}'
bulkId: bulkId1
status:
code: 200
version: '1'
location: https://company.com/scim/Users/{userId}
- method: '{HTTP_METHOD}'
bulkId: bulkId2
status:
code: 404
response: {}
- method: '{HTTP_METHOD}'
bulkId: bulkId3
status:
code: 400
response: {}
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseDto'
'413':
description: Client Error
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponseDto'
components:
schemas:
BulkResponseStatusDto:
type: object
properties:
code:
type: integer
description: The HTTP response status code for the requested operation.
format: int32
example: 200
response:
description: The HTTP response body for the specified request operation. It may be omitted if the status code is 2XX.
additionalProperties: false
description: The HTTP response status code and response for the requested operation.
BulkRequestOperationDto:
type: object
properties:
method:
type:
- string
- 'null'
description: The HTTP method of the current operation. Possible values are "POST", "PUT", "PATCH", or "DELETE". REQUIRED.
example: POST
bulkId:
type:
- string
- 'null'
description: The transient identifier of a newly created resource, unique within a bulk request and created by the client. REQUIRED when "method" is "POST".
example: bulkid1
version:
type:
- string
- 'null'
description: The current resource version.
example: '1'
path:
type:
- string
- 'null'
description: 'The resource''s relative path to the SCIM service provider''s root.
If "method" is "POST", the value must specify a resource type endpoint, e.g., /Users
For all other "method" values, it must specify the path to a specific resource, e.g., /Users/2819c223-7f76-453a-919d-413861904646.
REQUIRED in a request.'
example: /Users
data:
description: 'The resource data as it would appear for a single SCIM POST, PUT, or PATCH operation.
REQUIRED in a request when "method" is "POST", "PUT", or "PATCH".'
additionalProperties: false
description: Defines an operation within a bulk job
BulkResponseOperationDto:
type: object
properties:
method:
type:
- string
- 'null'
description: The HTTP method of the current operation. Possible values are "POST", "PUT", "PATCH", or "DELETE". REQUIRED.
example: POST
bulkId:
type:
- string
- 'null'
description: The transient identifier of a newly created resource, unique within a bulk request and created by the client. REQUIRED when "method" is "POST".
example: bulkid1
version:
type:
- string
- 'null'
description: The current resource version.
example: '1'
status:
$ref: '#/components/schemas/BulkResponseStatusDto'
location:
type:
- string
- 'null'
description: The resource endpoint URL.
example: bulkid1
additionalProperties: false
description: Defines an operation within a bulk job
BulkResponseDto:
type: object
properties:
Operations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BulkResponseOperationDto'
description: Defines operations within a bulk job.
schemas:
type:
- array
- 'null'
items:
type: string
description: 'List of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.
Examples: [ "urn:ietf:params:scim:api:messages:2.0:BulkResponse" ]'
additionalProperties: false
BulkRequestDto:
type: object
properties:
operations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BulkRequestOperationDto'
description: Defines operations within a bulk or patch job.
schemas:
type:
- array
- 'null'
items:
type: string
description: 'List of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.
Examples: [ "urn:ietf:params:scim:api:messages:2.0:BulkRequest" ], [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ]'
additionalProperties: false
ErrorResponseDto:
type: object
properties:
schemas:
type:
- array
- 'null'
items:
type: string
description: 'List of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.
Example: [ "urn:ietf:params:scim:api:messages:2.0:Error" ]'
status:
type:
- string
- 'null'
description: The HTTP status code of the error response
example: '400'
scimType:
type:
- string
- 'null'
description: The type of error
example: invalidSyntax
detail:
type:
- string
- 'null'
description: The summary of the error
example: The request is not well-formatted
additionalProperties: false
securitySchemes:
Bearer:
type: apiKey
description: Please insert JWT with Bearer into field
name: Authorization
in: header