OpenAPI Specification
openapi: 3.2.0
info:
title: Vyond API Documentation SCIM API
version: 1.1.0
description: 'SCIM 2.0 APIs
'
tags:
- name: SCIM
description: 'SCIM 2.0 APIs
'
paths:
/scim/v2/Users:
get:
operationId: ScimController.getUsers
parameters:
- in: query
name: startIndex
schema:
minimum: 1
type: integer
description: Index of the first items in the list to return (1 indexed).
- in: query
name: count
schema:
minimum: 0
type: integer
description: Number of items to return.
- in: query
name: filter
schema:
type: string
description: Filter to narrow down the list of items.
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUserList'
description: Pagination information and users
'400':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Bad Request - invalid filter or pagination parameters. reason contains the invalid
filter message
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden - you do not have permission to access this resource
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while retrieving users
summary: Get users
tags:
- SCIM
security:
- bearer: []
description: Get users in the account with optional filter and pagination
post:
operationId: ScimController.createUser
requestBody:
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUser'
description: ScimUser
required: false
responses:
'201':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUserWithMeta'
description: User information
'400':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Bad Request - userName must equal email address. reason contains the validation
message
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Forbidden - SSO not enabled, unsupported country, or insufficient team seats. reason
contains the specific reason
'409':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Conflict - email or username already registered. scimType is uniqueness, reason
contains the conflict message
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while creating user
summary: Create user
tags:
- SCIM
security:
- bearer: []
description: Create a new user in the account
/scim/v2/Users/{userId}:
get:
operationId: ScimController.getUser
parameters:
- in: path
name: userId
required: true
schema:
pattern: '[^\/#\?]+?'
type: string
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUserWithMeta'
description: User information
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden - you do not have permission to access this resource
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'404':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Not Found - user does not exist in the account. reason contains the error message
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while retrieving user
summary: Get user
tags:
- SCIM
security:
- bearer: []
description: Get information of user in the account by user ID
put:
operationId: ScimController.updateUser
parameters:
- in: path
name: userId
required: true
schema:
pattern: '[^\/#\?]+?'
type: string
requestBody:
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUser'
description: ScimUser
required: false
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUserWithMeta'
description: User information
'400':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Bad Request - userName must equal email address. reason contains the validation
message
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Forbidden - user does not exist, unsupported country, or insufficient team seats.
reason contains the specific reason
'409':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Conflict - email or username already registered. scimType is uniqueness, reason
contains the conflict message
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while updating user
summary: Update user
tags:
- SCIM
security:
- bearer: []
description: Update information of user in the account by user ID
patch:
operationId: ScimController.patchUser
parameters:
- in: path
name: userId
required: true
schema:
pattern: '[^\/#\?]+?'
type: string
requestBody:
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimPatchOp'
description: ScimPatchOp
required: false
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimUserWithMeta'
description: User information
'400':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Bad Request - invalid patch operation or attribute value. May include reason, or
details array when validation fails
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Forbidden - user does not exist, unsupported country, or insufficient team seats.
reason contains the specific reason
'409':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Conflict - email or username already registered. scimType is uniqueness, reason
contains the conflict message
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while patching user
summary: Patch user
tags:
- SCIM
security:
- bearer: []
description: "Update individual attributes of user in the account by user ID. The operation follows\
\ the [syntax defined in the SCIM specification](https://datatracker.ietf.org/doc/html/rfc7644#section-3.5.2).<br><br>Here\
\ are some examples:<br><br>**Update userName**<br>The `userName` must be equal to the email address,\
\ except for special circumstances. Therefore, update both fields together.<br>\n```json\n{\n\
\ \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:PatchOp\"\n ],\n \"\
Operations\": [\n {\n \"op\": \"replace\",\n \"path\": \"userName\"\
,\n \"value\": \"john.doe@example.com\"\n },\n {\n \"op\"\
: \"replace\",\n \"path\": \"emails[primary eq true].value\",\n \"value\"\
: \"john.doe@example.com\"\n }\n ]\n}\n```\n<br>**Deactivate user**<br>To deactivate\
\ a user, set `active` to `false`.<br>\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:PatchOp\"\
\n ],\n \"Operations\": [\n {\n \"op\": \"replace\",\n \"path\"\
: \"active\",\n \"value\": false\n }\n ]\n}\n```\n<br>**Update extended attribute**<br>To\
\ update an extended attribute, its fully qualified name must be provided.<br>\n```json\n{\n \
\ \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:PatchOp\"\n ],\n \"\
Operations\": [\n {\n \"op\": \"replace\",\n \"path\": \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:organization\"\
,\n \"value\": \"Organization Name\"\n }\n ]\n}\n```\n"
/scim/v2/Schemas:
get:
operationId: ScimController.getSchemas
parameters:
- in: query
name: startIndex
schema:
minimum: 1
type: integer
description: Index of the first items in the list to return (1 indexed).
- in: query
name: count
schema:
minimum: 0
type: integer
description: Number of items to return.
- in: query
name: filter
schema:
type: string
description: Filter to narrow down the list of items.
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimSchemaList'
description: Pagination information and schemas
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden - you do not have permission to access this resource
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while retrieving schemas
summary: Get schemas
tags:
- SCIM
security:
- bearer: []
description: Get SCIM schemas
/scim/v2/Schemas/{id}:
get:
operationId: ScimController.getSchema
parameters:
- in: path
name: id
required: true
schema:
pattern: '[^\/#\?]+?'
type: string
responses:
'200':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ScimSchemaWithMeta'
description: Schema information
'401':
description: Unauthorized - missing or invalid credentials
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'403':
description: Forbidden - you do not have permission to access this resource
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'404':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Not Found - schema ID does not exist
'429':
description: Too Many Requests - rate limit exceeded
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
'500':
content:
application/scim+json:
schema:
$ref: '#/components/schemas/ApiErrorResponse'
description: Internal Server Error - unexpected error while retrieving schema
summary: Get schema
tags:
- SCIM
security:
- bearer: []
description: Get SCIM schema by ID
components:
schemas:
ScimPatchOperationObject:
properties:
op:
enum:
- add
- remove
- replace
type: string
description: The operation to perform.
path:
type: string
description: The path to target attribute.
value:
description: The value to be added/replaced.
type: object
required:
- op
- value
ScimPatchOp:
properties:
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:api:messages:2.0:PatchOp
Operations:
items:
$ref: '#/components/schemas/ScimPatchOperationObject'
type: array
description: Patch operations
example:
- op: replace
path: userName
value: john.doe@example.com
- op: replace
path: emails[primary eq true].value
value: john.doe@example.com
type: object
required:
- schemas
- Operations
ScimSchemaList:
properties:
Resources:
items:
$ref: '#/components/schemas/ScimSchemaWithMeta'
type: array
description: List of items
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:api:messages:2.0:ListResponse
totalResults:
minimum: 0
type: integer
description: Total number of items matching the query.
example: 1
startIndex:
minimum: 1
type: integer
description: Index of the first items in the list (1 indexed).
example: 1
itemsPerPage:
minimum: 0
type: integer
description: The maximum number of items returned in a query response page.
example: 100
type: object
required:
- Resources
- schemas
- totalResults
- startIndex
- itemsPerPage
ApiErrorResponse:
properties:
err:
type: string
description: Error code identifying the specific error
reason:
type: string
description: Additional reason describing why the error occurred
message:
type: string
description: Error message, used as an alternative to reason for non-enumerated error messages
scimType:
type: string
description: SCIM error type, present on SCIM 409 Conflict responses (e.g. uniqueness)
details:
items:
$ref: '#/components/schemas/ValidationDetail'
type: array
description: Validation error details, present when err is REQUEST_VALIDATION_FAILED
type: object
required:
- err
ValidationDetail:
properties:
property:
type: string
description: The property that failed validation
message:
items:
type: string
type: array
description: Validation error messages for the property
type: object
required:
- property
- message
ScimUserWithMeta:
properties:
meta:
$ref: '#/components/schemas/ScimUserMetaObject'
type: object
description: Metadata object.
id:
type: string
description: Vyond user ID.
example: '{vyondUserId}'
emails:
items:
$ref: '#/components/schemas/ScimEmailObject'
type: array
maxItems: 1
minItems: 1
description: The components of email. Only one email address is supported for each user. The
email address must be the same as userName, except for special circumstances.
addresses:
items:
$ref: '#/components/schemas/ScimAddressObject'
type: array
maxItems: 1
minItems: 1
description: The components of address. Only one address is supported for each user.
urn:ietf:params:scim:schemas:extension:vyond:1.0:User:
$ref: '#/components/schemas/ScimVyondUser'
type: object
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:schemas:core:2.0:User
- urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
- urn:ietf:params:scim:schemas:extension:vyond:1.0:User
externalId:
type: string
description: An identifier for the resource as defined by the provisioning client.
example: '{idpProvidedExternalId}'
userName:
minLength: 1
type: string
description: The user's username. It must be an email address, except for special circumstances.
example: john.doe@example.com
name:
$ref: '#/components/schemas/ScimNameObject'
type: object
description: The components of the user's name.
active:
type: boolean
description: User's administrative status. Setting it to false deactivates the user.
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:
$ref: '#/components/schemas/ScimEnterpriseUser'
type: object
type: object
required:
- meta
- id
- emails
- addresses
- urn:ietf:params:scim:schemas:extension:vyond:1.0:User
- schemas
- userName
- name
- active
- urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
ScimUserList:
properties:
Resources:
items:
$ref: '#/components/schemas/ScimUserWithMeta'
type: array
description: List of items
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:api:messages:2.0:ListResponse
totalResults:
minimum: 0
type: integer
description: Total number of items matching the query.
example: 1
startIndex:
minimum: 1
type: integer
description: Index of the first items in the list (1 indexed).
example: 1
itemsPerPage:
minimum: 0
type: integer
description: The maximum number of items returned in a query response page.
example: 100
type: object
required:
- Resources
- schemas
- totalResults
- startIndex
- itemsPerPage
ScimVyondUser:
properties:
subscription:
$ref: '#/components/schemas/ScimSubscriptionObject'
type: object
description: The components of subscription.
type: object
required:
- subscription
ScimSchemaWithMeta:
properties:
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:schemas:core:2.0:Schema
meta:
$ref: '#/components/schemas/ScimSchemaMetaObject'
type: object
description: Metadata object.
id:
type: string
description: Schema ID.
name:
type: string
description: Name of the schema.
description:
type: string
description: Description of the schema.
attributes:
items:
$ref: '#/components/schemas/ScimSchemaAttribute'
type: array
description: Attributes of the schema.
type: object
required:
- schemas
- meta
- id
- name
- description
- attributes
ScimEmailObjectWithOptionalAttributes:
properties:
value:
format: email
type: string
description: The email address.
example: john.doe@example.com
type:
enum:
- work
type: string
description: A label indicating the function of the email address. Only "work" is supported.
primary:
type: boolean
description: Whether the email address is primary. Always true.
type: object
required:
- value
ScimSchemaAttribute:
properties:
name:
type: string
description: Name of the attribute.
type:
enum:
- string
- boolean
- decimal
- integer
- dateTime
- binary
- reference
- complex
type: string
description: Data type of the attribute.
multiValued:
type: boolean
description: Whether or not the attribute is multi-valued
description:
type: string
description: Description of the attribute.
required:
type: boolean
description: Whether or not the attribute is required.
caseExact:
type: boolean
description: Whether or not a string attribute is case sensitive.
mutability:
enum:
- readOnly
- readWrite
- immutable
- writeOnly
type: string
description: Keyword that the mutability of the attribute.
returned:
enum:
- always
- never
- default
- request
type: string
description: Keyword that indicates when an attribute is returned in response.
uniqueness:
enum:
- none
- server
- global
type: string
description: Keyword that indicates how the uniqueness of the attribute is enforced.
canonicalValues:
items:
type: string
type: array
description: A set of values that can be used.
subAttributes:
items:
$ref: '#/components/schemas/ScimSchemaAttribute'
type: array
description: A set of sub-attributes.
type: object
required:
- name
- type
- multiValued
- description
- required
- mutability
- returned
- subAttributes
ScimUser:
properties:
emails:
items:
$ref: '#/components/schemas/ScimEmailObjectWithOptionalAttributes'
type: array
maxItems: 1
minItems: 1
description: The components of email. Only one email address is supported for each user. The
email address must be the same as userName, except for special circumstances.
addresses:
items:
$ref: '#/components/schemas/ScimAddressObjectWithOptionalAttributes'
type: array
maxItems: 1
minItems: 1
description: The components of address. Only one address is supported for each user.
urn:ietf:params:scim:schemas:extension:vyond:1.0:User:
$ref: '#/components/schemas/ScimVyondUserWithOptionalAttributes'
type: object
schemas:
items:
type: string
type: array
description: The URIs of the SCIM schemas.
example:
- urn:ietf:params:scim:schemas:core:2.0:User
- urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
- urn:ietf:params:scim:schemas:extension:vyond:1.0:User
externalId:
type: string
description: An identifier for the resource as defined by the provisioning client.
example: '{idpProvidedExternalId}'
userName:
minLength: 1
type: string
description: The user's username. It must be an email address, except for special circumstances.
example: john.doe@example.com
name:
$ref: '#/components/schemas/ScimNameObject'
type: object
description: The components of the user's name.
active:
type: boolean
description: User's administrative status. Setting it to false deactivates the user.
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:
$ref: '#/components/schemas/ScimEnterpriseUser'
type: object
type: object
required:
- emails
- addresses
- schemas
- userName
- name
- active
- urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
ScimAddressObjectWithOptionalAttributes:
properties:
country:
type: string
description: The country code in ISO31661 Alpha2 format.
example: US
type:
enum:
- work
type: string
description: A label indicating the function of the address. Only "work" is supported.
primary:
type: boolean
description: Whether the address is primary. Always true.
type: object
required:
- country
ScimAddressObject:
properties:
country:
type: string
description: The country code in ISO31661 Alpha2 format.
example: US
type:
enum:
- work
type: string
description: A label indicating the function of the address. Only "work" is supported.
primary:
type: boolean
description: Whether the address is primary. Always true.
type: object
required:
- country
- type
- primary
ScimEmailObject:
properties:
value:
format: email
type: string
description: The email address.
example: john.doe@example.com
type:
enum:
- work
type: string
description: A label indicating the function of the email address. Only "work" is supported.
primary:
type: boolean
description: Whether the email address is primary. Always true.
type: object
required:
- value
- type
- primary
ScimSubscriptionObject:
properties:
value:
minLength: 1
type: string
description: Vyond subscription ID.
example: '{vyondSubscriptionId}'
type: object
required:
- value
ScimNameObject:
properties:
givenName:
minLength: 1
type: string
description: The user's first name.
example: John
familyName:
minLength: 1
type: string
description: The user's last name.
example: Doe
type: object
required:
- givenName
- familyName
ScimEnterpriseUser:
properties:
organization:
minLength: 1
type: string
description: Organization to which the user belongs.
example: Organization Name
type: object
required:
- organization
ScimUserMetaObject:
properties:
resourceType:
type: string
enum:
- User
description: Resource type
created:
pattern: \d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d.\d+Z?
type: string
description: Creation time
example: '2024-09-24T04:19:34.928Z'
type: object
required:
- resourceType
- created
ScimVyondUserWithOptionalAttributes:
properties:
subscription:
$ref: '#/components/schemas/ScimSubscriptionObject'
type: object
description: The components of subscription.
type: object
ScimSchemaMetaObject:
properties:
resourceType:
type: string
enum:
- Schema
description: Resource type
type: object
required:
- resourceType
securitySchemes:
bearer:
type: http
scheme: bearer