openapi: 3.0.1 info: title: Beyond Identity Secure Access API version: 1.7.0 contact: email: support@beyondidentity.com description: | # Introduction **NOTE:** To determine if you are accessing the Secure Access Platform, check the URL of your Admin Console. If it looks like one of the following, you are using the Secure Access Platform: - `https://console.beyondidentity.com` (Localized to your region) - `https://console-us.beyondidentity.com` (US region) - `https://console-eu.beyondidentity.com` (EU region) - `https://console.us1.beyondidentity-gov.com` (US FedRAMP) If your Admin Console URL does not look like one of the above, you are using the Secure Workforce Platform. Please refer to the [Secure Workforce API documentation](https://docs.beyondidentity.com/api/v0).

The Beyond Identity Secure Access API defines methods for managing resources in the Beyond Identity Secure Access platform.

All of the functionality available in the Beyond Identity Admin Console is also available through the API.

This API is currently in the early-access stage and is under active development. Feedback and suggestions are encouraged and should be directed to the [Beyond Identity Developer Slack Channel](https://join.slack.com/t/byndid/shared_invite/zt-1anns8n83-NQX4JvW7coi9dksADxgeBQ). # Base API URLs The base API URLs is determined by the region your tenant is hosted in OR if you are a FedRAMP customer.

### US Region If you are a US region customer, your base API URLs will be: - `https://api-us.beyondidentity.com` - `https://auth-us.beyondidentity.com` ### EU Region If you are a EU region customer, your base API URLs will be: - `https://api-eu.beyondidentity.com` - `https://auth-eu.beyondidentity.com` ### US FedRAMP **NOTE**: The FedRAMP version of Secure Access is released approximately *two weeks* after the commercial version, so some API endpoints may not be available immediately.

If you are a FedRAMP customer in the US region, your base API URLs will be: - `https://api.us1.beyondidentity-gov.com` - `https://auth.us1.beyondidentity-gov.com` For all the examples in this document, we will use the US region API base URL. You can always replace `https://api-us.beyondidentity.com` and `https://auth-us.beyondidentity.com` in the examples to use the proper base URL for your tenant. # Authentication All Beyond Identity API endpoints require authentication using an access token. The access token is generated through OAuth 2.0 or OIDC, using the authorization code flow or the client credentials flow.

The simplest way to acquire an access token is through the Beyond Identity Admin Console. Under the "Applications" tab, select the "Beyond Identity Management API" application, navigate to the "API Tokens" tab, and then click on "Create token".

Alternatively, an access token may also be generated directly via the API by requesting a token for the "Beyond Identity Management API" Application.

``` curl https://auth-us.beyondidentity.com/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID/token \ -X POST \ -u "$CLIENT_ID:$CLIENT_SECRET" --basic \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&scope=$SCOPES" ``` This will work for any application that you have configured to provide access to the Beyond Identity Management API Resource Server. The "Beyond Identity Management API" application is provided by default as part of the tenant onboarding process. The access token must be provided in the `Authorization` header of the API request.

``` curl https://api-us.beyondidentity.com/v1/... \ -X $HTTP_METHOD -H "Authorization: Bearer $TOKEN" ``` ## Requests and Responses To interact with the Beyond Identity API, all requests should be made over HTTPS.

The Beyond Identity API is generally structured as a resource-oriented API. Resources are represented as JSON objects and are used as both inputs to and outputs from API methods.

Resource fields may be described as read-only and immutable. A read-only field is only provided on the response. An immutable field is only assigned once and may not be changed after. For example, system-generated IDs are described as both read-only and immutable.

To create a new resource, requests should use the `POST` method. Create requests include all of the necessary attributes to create a new resource. Create operations return the created resource in the response.

To retrieve a single resource or a collection of resources, requests should use the `GET` method. When retrieving a collection of resources, the response will include an array of JSON objects keyed on the plural name of the requested resource.

To update an resource, requests should use the `PATCH` method. Update operations support partial updating so requests may specify only the attributes which should be updated. Update operations return the updated resource in the response.

To delete a resource, requests should use the `DELETE` method. Note that delete operations return an empty response instead of returning the resource in the response.

### Example Response for a Realm ``` { "id": "a448fe493e02fa9f", "tenant_id": "000168dc50bdce49", "display_name": "Test Realm", "create_time": "2022-06-22T21:46:08.930278Z", "update_time": "2022-06-22T21:46:08.930278Z" } ``` ### Example Response for a Collection of Realms ``` { "realms": [ { "id": "a448fe493e02fa9f", "tenant_id": "000168dc50bdce49", "display_name": "Test Realm", "create_time": "2022-06-22T21:46:08.930278Z", "update_time": "2022-06-22T21:46:08.930278Z" } ], "total_size": 1 } ``` ## HTTP Statuses The API returns standard HTTP statuses and error codes. Statuses in the 200 range indicate that the request was successfully fulfilled and there were no errors.

Statuses in the 400 range indicate that there was an issue with the request that may be addressed by the client. For example, client errors may indicate that the request was missing proper authorization or that the request was malformed.

Statuses in the 500 range indicate that the server encountered an internal issue and was unable to fulfill the request.

All error responses include a JSON object with a `code` field and a `message` field. `code` contains a human-readable name for the HTTP status code and `message` contains a high-level description of the error. The error object may also contain additional error details which may be used by the client to determine the exact cause of the error. Refer to each API method's examples to determine the specific error detail types supported for that method.

### Invalid Access Token Example If the provided access token is invalid, you will receive a 401 error. This error indicates that the token is not recognized and was not generated by Beyond Identity.

``` HTTP/1.1 401 Unauthorized { "code": "unauthorized", "message": "unauthorized" } ``` ### Permission Denied Example If the provided access token does not have access to the requested resource, you will receive a 403 error. Access tokens are scoped at a minimum to your tenant. Any request for resources outside of your tenant will result in this error.

``` HTTP/1.1 403 Forbidden { "code": "forbidden", "message": "forbidden" } ``` ### Missing Resource Example If the requested resource does not exist, you will receive a 404 error. The specific API method may return additional details about the missing resource.

``` HTTP/1.1 404 Not Found { "code": "not_found", "message": "group not found" "details": [ { "type": "ResourceInfo", "resource_type": "Group", "id": "4822738be6b7f658", "description": "group not found" } ], } ``` ### Invalid Parameters Example If the request body contains invalid parameters, you will receive a 400 error. The specific API method may return additional details about the invalid parameter.

``` HTTP/1.1 400 Bad Request { "code": "bad_request", "message": "invalid parameters" "details": [ { "type": "FieldViolations" "field_violations": [ { "description": "missing", "field": "group.display_name" } ], } ], } ``` servers: - url: 'https://api-us.beyondidentity.com' description: US region API base URL - url: 'https://api-eu.beyondidentity.com' description: EU region API base URL - url: 'https://api.us1.beyondidentity-gov.com/' description: US FedRAMP API base URL tags: - name: Tenants description: | A tenant represents an organization in the Beyond Identity Cloud. Tenants contain all data necessary for that organization to operate. - name: Realms description: | A realm is a unique administrative domain within a tenant. Realms may be used to define multiple development environments or for isolated administrative domains. - name: Groups description: | A group is a logical collection of identities. Groups are commonly used as a predicate in a policy rule. - name: Identities description: | An identity is a unique identifier that may be used by an end-user to gain access governed by Beyond Identity. - name: Credentials description: | A credential is also known as a passkey. This is the public-private key pair that belongs to an identity. - name: Credential Binding Jobs description: | A credential binding job defines the state of binding a new credential to an identity. The state includes creation of the credential binding job to delivery of the credential binding method to completion of the credential binding. - name: Themes description: | A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email. - name: Applications description: | An application represents a client application that uses Beyond Identity for authentication. This could be a native app, a single-page application, regular web application, or machine-to-machine application credentials. - name: Authenticator Configurations description: | A authenticator configuration prescribes how an end user may authenticate themselves to Beyond Identity. Beyond Identity provides a Hosted Web Authenticator which will work out-of-the-box, as well as SDKs that can be embedded into an end user application. - name: Identity Provider description: | Identity providers enable integration with external systems to support IdP-authorized workflows, such as passkey enrollment. They serve as the counterpart to SSO applications, focusing on initiating authentication workflows and enabling secure interactions. - name: SSO Configs description: | An SSO configuration defines how end users interact with supported SSO protocols and related services. Each configuration type represents a protocol or integration (e.g., SAML, WS-Federation, OIDC, SCIM) supported by Beyond Identity. An SSO configuration provides a flexible framework for managing authentication, provisioning, and other integrations. It abstracts application protocols, inbound and outbound provisioning, and supports named integrations. Additionally, it includes features like user or group assignments, visual tiles in the SSO interface, and compatibility with multiple authentication and provisioning standards. This makes SSO configurations versatile for both authentication and non-authentication use cases. - name: Launch Mechanisms description: | Launch mechanisms, or flow type configurations, define which authentication launch mechanisms are enabled and valid for different platforms (Android, iOS, macOS, Windows, Web, Linux, ChromeOS) within a tenant. These configurations control which authentication methods end users can use on different devices and platforms. - name: Resource Servers description: | A resource server represents an API server that hosts a set of protected resources and is capable of accepting and responding to protected resource requests using access tokens. Clients can enable these APIs to be consumed from authorized applications. paths: '/v1/tenants/{tenant_id}': get: tags: - Tenants operationId: GetTenant summary: Retrieve an Existing Tenant description: | To retrieve an existing tenant, send a GET request to `/v1/tenants/$TENANT_ID`. security: - BearerAuth: - 'tenants:read' parameters: - $ref: '#/components/parameters/tenant_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a tenant. content: application/json: schema: $ref: '#/components/schemas/Tenant' examples: Success: value: id: 000176d94fd7b4d1 display_name: Test Tenant create_time: '2022-01-28T12:00:02.423Z' update_time: '2022-04-19T15:17:21.186Z' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: value: code: unauthorized message: unauthorized '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: value: code: forbidden message: forbidden '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: value: code: internal_server_error message: internal server error patch: tags: - Tenants operationId: UpdateTenant summary: Patch a Tenant description: | To update only specific attributes of an existing tenant, send a PATCH request to `/v1/tenants/$TENANT_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'tenants:update' parameters: - $ref: '#/components/parameters/tenant_id' requestBody: description: Updates to the specified tenant. content: application/json: schema: title: Update Tenant Request description: Request for UpdateTenant. type: object properties: tenant: $ref: '#/components/schemas/Tenant' required: - tenant examples: Update Display Name: value: tenant: display_name: Test Tenant responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a tenant. content: application/json: schema: $ref: '#/components/schemas/Tenant' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: value: code: bad_request message: invalid request Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: tenant.display_name description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms': post: tags: - Realms operationId: CreateRealm summary: Create a New Realm description: | To create a realm, send a POST request to `/v1/tenants/$TENANT_ID/realms`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'realms:create' parameters: - $ref: '#/components/parameters/tenant_id' requestBody: content: application/json: schema: title: Create Realm Request description: Request for CreateRealm. type: object properties: realm: $ref: '#/components/schemas/Realm' required: - realm responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a realm. content: application/json: schema: $ref: '#/components/schemas/Realm' examples: Success: value: id: 19a95130480dfa79 tenant_id: 0001f1f460b1ace6 display_name: Test Realm classification: SECURE_WORKFORCE create_time: '2022-05-18T18:00:01.167Z' update_time: '2022-05-19T14:23:01.327Z' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: realm.display_name description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - Realms operationId: ListRealms summary: List Realms for a Tenant description: | To list all realms for a tenant, send a GET request to `/v1/tenants/$TENANT_ID/realms`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of realms in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'realms:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `realms` and `total_size`. `realms` will be set to an array of realm objects, each of which contain the standard realm attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListRealmsResponse' examples: Success: value: realms: - id: 19a95130480dfa79 tenant_id: 0001f1f460b1ace6 display_name: Test Realm create_time: '2022-05-18T18:00:01.167Z' update_time: '2022-05-19T14:23:01.327Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: page_token description: invalid page token '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}': get: tags: - Realms operationId: GetRealm summary: Retrieve an Existing Realm description: | To retrieve an existing realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID`. security: - BearerAuth: - 'realms:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a realm. content: application/json: schema: $ref: '#/components/schemas/Realm' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: value: code: not_found message: realm not found details: - type: ResourceInfo resource_type: Realm id: 19a95130480dfa79 description: realm not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - Realms operationId: UpdateRealm summary: Patch a Realm description: | To update only specific attributes of an existing realm, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'realms:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Update Realm Request description: Request for UpdateRealm. type: object properties: realm: $ref: '#/components/schemas/Realm' required: - realm examples: Update Display Name: value: realm: display_name: Test Realm responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a realm. content: application/json: schema: $ref: '#/components/schemas/Realm' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - Realms operationId: DeleteRealm summary: Delete a Realm description: | To delete a realm, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID`. To be deleted, a realm must not have any identities, groups, or roles. All associated resources must first be deleted or you will receive a 409 error. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'realms:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Has Resources: value: code: conflict message: realm has children '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups': post: tags: - Groups operationId: CreateGroup summary: Create a New Group description: | To create a group, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'groups:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Create Group Request description: Request for CreateGroup. type: object properties: group: $ref: '#/components/schemas/Group' required: - group examples: Create Group: value: group: display_name: Realm Administrators description: A group of realm administrators. responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/Group' examples: Success: value: id: 81490afab171aef0 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 display_name: Realm Administrators description: A group of realm administrators. create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: group.display_name description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - Groups operationId: ListGroups summary: List Groups for a Realm description: | To list all groups for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of groups in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'groups:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `groups` and `total_size`. `groups` will be set to an array of group objects, each of which contains the standard group attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListGroupsResponse' examples: Success: value: groups: - id: 81490afab171aef0 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 display_name: Realm Administrators description: A group of realm administrators. create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}': get: tags: - Groups operationId: GetGroup summary: Retrieve an Existing Group description: | To retrieve an existing group, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID`. security: - BearerAuth: - 'groups:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/Group' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: value: code: not_found message: group not found details: - type: ResourceInfo resource_type: Group id: 4822738be6b7f658 description: group not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - Groups operationId: UpdateGroup summary: Patch a Group description: | To update only specific attributes of an existing group, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'groups:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' requestBody: content: application/json: schema: title: Update Group Request description: Request for UpdateGroup. type: object properties: group: $ref: '#/components/schemas/Group' required: - group examples: Update Display Name: value: group: display_name: Realm Administrators responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/Group' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D/get/responses/404/content/application~1json/examples/Group%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - Groups operationId: DeleteGroup summary: Delete a Group description: | To delete a group, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID`. To be deleted, a group must not have any members. Any existing members must first be deleted or you will receive a 409 error. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'groups:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D/get/responses/404/content/application~1json/examples/Group%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Has Members: value: code: conflict message: group has children '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}:addMembers': post: tags: - Groups operationId: AddGroupMembers summary: Add Members to a Group description: | To add members to a group, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID:addMembers`. The request must contain at least one and no more than 1000 identity IDs. security: - BearerAuth: - 'groups:update' - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' requestBody: content: application/json: schema: title: Add Group Members Request description: Request for AddGroupMembers. type: object properties: identity_ids: description: IDs of the identities to be added to the group. type: array items: type: string minItems: 1 maxItems: 1000 required: - identity_ids examples: Add Members: value: identity_ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/Group' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: identity_ids description: array exceeds 1000 elements '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D/get/responses/404/content/application~1json/examples/Group%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}:deleteMembers': post: tags: - Groups operationId: DeleteGroupMembers summary: Delete Members from a Group description: | To delete members from a group, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID:deleteMembers`. The request must contain at least one and no more than 1000 identity IDs. security: - BearerAuth: - 'groups:update' - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' requestBody: content: application/json: schema: title: Delete Group Members Request description: Request for DeleteGroupMembers. type: object properties: identity_ids: description: IDs of the identities to be removed from the group. type: array items: type: string minItems: 1 maxItems: 1000 required: - identity_ids examples: Delete Members: value: identity_ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/Group' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AaddMembers/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D/get/responses/404/content/application~1json/examples/Group%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}:listMembers': get: tags: - Groups operationId: ListGroupMembers summary: List Members for a Group description: | To list members belonging to a group, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID:listMembers`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of members in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'groups:read' - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `identities` and `total_size`. `identities` will be set to an array of identity objects, each of which contains the standard identity attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListGroupMembersResponse' examples: Success: value: identities: - id: e372db224c06e850 realm_id: 8f5bec58229e6f29 tenant_id: 0001f1f460b1ace6 display_name: Test Identity create_time: '2022-04-12T05:53:07.119Z' update_time: '2022-06-16T14:31:03.770Z' traits: type: traits_v0 username: test primary_email_address: test@example.com total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D/get/responses/404/content/application~1json/examples/Group%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}:listRoles': get: tags: - Groups operationId: ListGroupRoles summary: List Role Memberships for a Group description: | To list the roles to which a group is assigned, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/groups/$GROUP_ID:listRoles`. The request must include the `resource_server_id` query parameter specifying the resource server on which to filter the roles. If the specified resource server does not exist, you will receive a 409 error. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of roles in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'groups:read' - 'roles:read' - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/group_id' - $ref: '#/components/parameters/resource_server_id_query' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `roles` and `total_size`. `roles` will be set to an array of role objects, each of which contains the standard role attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListGroupRolesResponse' examples: Success: value: roles: - id: fb785d40cbe4fc0d resource_server_id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e realm_id: bb26e0e8ecdef843 tenant_id: 00010036778ce59f description: Help Desk display_name: Customer support personnel. create_time: '2023-02-14T18:18:58.332247Z' update_time: '2023-02-14T18:18:58.332247Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: value: code: not_found message: role not found details: - type: ResourceInfo resource_type: Role id: fb785d40cbe4fc0d description: role not found '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: value: code: conflict message: resource server not found details: - type: ResourceInfo resource_type: ResourceServer id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e description: resource server not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities': post: tags: - Identities operationId: CreateIdentity summary: Create a New Identity description: | To create an identity, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities`. Values in the request body for read-only fields will be ignored. If the request conflicts with an existing resource, you will receive a 409 error. security: - BearerAuth: - 'identities:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Create Identity Request description: Request for CreateIdentity. type: object properties: identity: $ref: '#/components/schemas/Identity' required: - identity examples: Create Identity: value: identity: display_name: Test Identity traits: type: traits_v0 username: test primary_email_address: test@example.com responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an identity. content: application/json: schema: $ref: '#/components/schemas/Identity' examples: Success: value: id: e372db224c06e850 realm_id: 8f5bec58229e6f29 tenant_id: 0001f1f460b1ace6 display_name: Test Identity create_time: '2022-04-12T05:53:07.119Z' update_time: '2022-06-16T14:31:03.770Z' enrollment_status: UNENROLLED traits: type: traits_v0 username: test primary_email_address: test@example.com '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: identity.display_name description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Username Already Exists: value: code: conflict message: username already exists '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - Identities operationId: ListIdentities summary: List Identities for a Realm description: | To list identities for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities`. The response will only contain identities matching the filter in the request. If no filter is provided, the request will match all identities in the realm. Currently, the only supported filter is `traits.username eq "$USERNAME"`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of identities in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The filter is also maintained by the page token but it may not be overridden. If specified, the request filter must match the filter maintained by the page token, otherwise you will receive a 400 error. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `identities` and `total_size`. `identities` will be set to an array of identity objects, each of which contains the standard identity attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListIdentitiesResponse' examples: Success: value: identities: - id: e372db224c06e850 realm_id: 8f5bec58229e6f29 tenant_id: 0001f1f460b1ace6 display_name: Test Identity create_time: '2022-04-12T05:53:07.119Z' update_time: '2022-06-16T14:31:03.770Z' enrollment_status: ENROLLED traits: type: traits_v0 username: test primary_email_address: test@example.com total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities:batchDelete': post: tags: - Identities operationId: BatchDeleteIdentities summary: Batch delete identities. description: | To delete multiple identities in a realm, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities:batchDelete`. The request must contain at least one and no more than 1000 identity IDs. If there are any repeating identity IDs, the request will fail. If there are any invalid identity IDs, the request will fail and no identities will be deleted. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'identities:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Batch Delete Identities Request description: Request for BatchDeleteIdentities. type: object properties: ids: description: IDs of the identities to be deleted. type: array items: type: string minItems: 1 maxItems: 1000 required: - ids examples: Delete Identities: value: ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identities Not Found: value: code: not_found message: identities not found details: - type: BatchOperationErrors description: errors encountered performing batch operation errors: - Description: identities not found IDs: - e372db224c06e850 - 3a28d4f28b57cc93 ResourceType: Identity '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}': get: tags: - Identities operationId: GetIdentity summary: Retrieve an Existing Identity description: | To retrieve an existing identity, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID`. security: - BearerAuth: - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an identity. content: application/json: schema: $ref: '#/components/schemas/Identity' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identity Not Found: value: code: not_found message: identity not found details: - type: ResourceInfo resource_type: Identity id: e372db224c06e850 description: identity not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - Identities operationId: UpdateIdentity summary: Patch an Identity description: | To update only specific attributes of an existing identity, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. If the request conflicts with an existing resource, you will receive a 409 error. security: - BearerAuth: - 'identities:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' requestBody: content: application/json: schema: title: Update Identity Request description: Request for UpdateIdentity. type: object properties: identity: $ref: '#/components/schemas/Identity' required: - identity examples: Update Display Name and Email: value: identity: display_name: Test Identity traits: type: traits_v0 primary_email_address: test@example.com responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an identity. content: application/json: schema: $ref: '#/components/schemas/Identity' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identity Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D/get/responses/404/content/application~1json/examples/Identity%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Username Already Exists: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities/post/responses/409/content/application~1json/examples/Username%20Already%20Exists' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - Identities operationId: DeleteIdentity summary: Delete an Identity description: | To delete an identity, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID`. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'identities:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identity Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D/get/responses/404/content/application~1json/examples/Identity%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}:listGroups': get: tags: - Identities operationId: ListIdentityGroups summary: List Group Memberships for an Identity description: | To list the groups to which an identity belongs, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID:listGroups`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of groups in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'identities:read' - 'groups:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `groups` and `total_size`. `groups` will be set to an array of group objects, each of which contains the standard group attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListIdentityGroupsResponse' examples: Success: value: groups: - id: 81490afab171aef0 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 display_name: Realm Administrators description: A group of realm administrators. create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identity Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D/get/responses/404/content/application~1json/examples/Identity%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}:listRoles': get: tags: - Identities operationId: ListIdentityRoles summary: List Role Memberships for an Identity description: | To list the roles to which an identity is assigned, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID:listRoles`. The request must include the `resource_server_id` query parameter specifying the resource server on which to filter the roles. If the specified resource server does not exist, you will receive a 409 error. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of roles in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'identities:read' - 'roles:read' - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/resource_server_id_query' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `roles` and `total_size`. `roles` will be set to an array of role objects, each of which contains the standard role attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListIdentityRolesResponse' examples: Success: value: roles: - id: fb785d40cbe4fc0d resource_server_id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e realm_id: bb26e0e8ecdef843 tenant_id: 00010036778ce59f description: Help Desk display_name: Customer support personnel. create_time: '2023-02-14T18:18:58.332247Z' update_time: '2023-02-14T18:18:58.332247Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/409/content/application~1json/examples/Resource%20Server%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles': post: tags: - Roles operationId: CreateRole summary: Create a New Role description: | To create a role, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'roles:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' requestBody: description: Role to be created. content: application/json: schema: title: Create Role Request description: Request for CreateRole. type: object properties: group: $ref: '#/components/schemas/Role' required: - role examples: Create Role: value: role: display_name: Help Desk description: Customer support personnel. responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: value: id: fb785d40cbe4fc0d resource_server_id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e realm_id: bb26e0e8ecdef843 tenant_id: 00010036778ce59f description: Help Desk display_name: Customer support personnel. create_time: '2023-02-14T18:18:58.332247Z' update_time: '2023-02-14T18:18:58.332247Z' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: role.display_name description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/get/responses/404/content/application~1json/examples/Resource%20Server%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - Roles operationId: ListRoles summary: List Roles for a Resource Server description: | To list all roles for a resource server, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of roles in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'roles:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `roles` and `total_size`. `roles` will be set to an array of role objects, each of which contain the standard role attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListRolesResponse' examples: Success: value: roles: - id: fb785d40cbe4fc0d resource_server_id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e realm_id: bb26e0e8ecdef843 tenant_id: 00010036778ce59f description: Help Desk display_name: Customer support personnel. create_time: '2023-02-14T18:18:58.332247Z' update_time: '2023-02-14T18:18:58.332247Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: value: code: not_found message: resource server not found details: - type: ResourceInfo resource_type: ResourceServer id: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e description: resource server not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}': get: tags: - Roles operationId: GetRole summary: Retrieve an Existing Role description: | To retrieve an existing role, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID`. security: - BearerAuth: - 'roles:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - Roles operationId: UpdateRole summary: Patch a Role description: | To update only specific attributes of an existing role, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'roles:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' requestBody: description: Updates to the specified role. content: application/json: schema: title: Update Role Request description: Request for UpdateRole. type: object properties: role: $ref: '#/components/schemas/Role' required: - role examples: Update Display Name: value: role: display_name: Help Desk responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - Roles operationId: DeleteRole summary: Delete a Role description: | To delete a role, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID`. To be deleted, a role must not have any scopes or members. Any existing scopes and members must first be deleted or you will receive a 409 error. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'roles:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Has Scopes or Members: value: code: conflict message: role has children '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:addMembers': post: tags: - Roles operationId: AddRoleMembers summary: Assign Members to a Role description: | To assign members to a role, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:addMembers`. The request must contain at least one group ID or identity ID and must not contain more than 1000 group IDs or 1000 identity IDs. security: - BearerAuth: - 'roles:update' - 'groups:read' - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' requestBody: content: application/json: schema: title: Add Role Members Request description: Request for AddRoleMembers. type: object properties: group_ids: description: IDs of the groups to be assigned to the role. type: array items: type: string minItems: 1 maxItems: 1000 identity_ids: description: IDs of the identities to be assigned to the role. type: array items: type: string minItems: 1 maxItems: 1000 examples: Assign Members: value: group_ids: - e372db224c06e850 identity_ids: - 3a28d4f28b57cc93 responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AaddMembers/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:deleteMembers': post: tags: - Roles operationId: DeleteRoleMembers summary: Unassign Members from a Role description: | To unassign members from a role, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:deleteMembers`. The request must contain at least one group ID or identity ID and must not contain more than 1000 group IDs or 1000 identity IDs. security: - BearerAuth: - 'roles:update' - 'identities:read' - 'groups:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' requestBody: content: application/json: schema: title: Delete Role Members Request description: Request for DeleteRoleMembers. type: object properties: group_ids: description: IDs of the groups to be unassigned from the role. type: array items: type: string minItems: 1 maxItems: 1000 identity_ids: description: IDs of the identities to be unassigned from the role. type: array items: type: string minItems: 1 maxItems: 1000 examples: Unassign Members: value: group_ids: - e372db224c06e850 identity_ids: - 3a28d4f28b57cc93 responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AaddMembers/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:listMembers': get: tags: - Roles operationId: ListRoleMembers summary: List Members for a Role description: | To list members assigned to a role, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:listMembers`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of members in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'roles:read' - 'groups:read' - 'identities:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' - $ref: '#/components/parameters/groups_page_size' - $ref: '#/components/parameters/groups_skip' - $ref: '#/components/parameters/identities_page_size' - $ref: '#/components/parameters/identities_skip' - $ref: '#/components/parameters/page_token' responses: '200': description: | The response will be a JSON object with keys for `groups`, `total_groups_size`, `identities`, and `total_identities_size`. `groups` will be set to an array of group objects, each of which contains the standard group attributes. `total_groups_size` will be set to the total number of groups matched by the list request. `identities` will be set to an array of identity objects, each of which contains the standard identity attributes. `total_identities_size` will be set to the total number of identities matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListRoleMembersResponse' examples: Success: value: groups: - id: 81490afab171aef0 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 display_name: Realm Administrators description: A group of realm administrators. create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' total_groups_size: 1 identities: - id: e372db224c06e850 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 display_name: Test Identity create_time: '2022-04-12T05:53:07.119Z' update_time: '2022-06-16T14:31:03.770Z' traits: type: traits_v0 username: test primary_email_address: test@example.com total_identities_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:addScopes': post: tags: - Roles operationId: AddRoleScopes summary: Assign Scopes to a Role description: | To assign scopes to a role, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:addScopes`. The request must contain at least one and no more than 1000 scopes. security: - BearerAuth: - 'roles:update' - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' requestBody: content: application/json: schema: title: Add Role Scopes Request description: Request for AddRoleScopes. type: object properties: scopes: description: Scopes to be assigned to the role. type: array items: type: string minItems: 1 maxItems: 1000 required: - scopes examples: Assign Scopes: value: scopes: - 'identities:read' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: scopes description: array exceeds 1000 elements '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:deleteScopes': post: tags: - Roles operationId: DeleteRoleScopes summary: Unassign Scopes from a Role description: | To unassign scopes from a role, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:deleteScopes`. The request must contain at least one and no more than 1000 scopes. security: - BearerAuth: - 'roles:update' - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' requestBody: content: application/json: schema: title: Delete Role Scopes Request description: Request for DeleteRoleScopes. type: object properties: scopes: description: Scopes to be removed from the role. type: array items: type: string minItems: 1 maxItems: 1000 required: - scopes examples: Unassign Scopes: value: scopes: - 'identities:read' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a role. content: application/json: schema: $ref: '#/components/schemas/Role' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers~1%7Bresource_server_id%7D~1roles~1%7Brole_id%7D%3AaddScopes/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}/roles/{role_id}:listScopes': get: tags: - Roles operationId: ListRoleScopes summary: List Scopes for a Role description: | To list scopes assigned to a role, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID/roles/$ROLE_ID:listScopes`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of scopes in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'roles:read' - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' - $ref: '#/components/parameters/role_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `scopes` and `total_size`. `scopes` will be set to an array of strings, each of which is a scope assigned to the role. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListRoleScopesResponse' examples: Success: value: scopes: - 'identities:read' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Role Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1groups~1%7Bgroup_id%7D%3AlistRoles/get/responses/404/content/application~1json/examples/Role%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credentials': get: tags: - Credentials operationId: ListCredentials summary: List Credentials for an Identity description: | To list all credentials for an identity, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credentials`. `$IDENTITY_ID` may be a wildcard (`-`) to request all credentials across all identities within the realm. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of credentials in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'credentials:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `credentials` and `total_size`. `credentials` will be set to an array of credential objects, each of which contains the standard credential attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListCredentialsResponse' examples: Success: value: credentials: - id: 81490afab171aef0 identity_id: e85de356dc78843a realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 state: ACTIVE csr_type: JWT jwk_json: '{"crv":"P-256","kty":"EC","x":"2MRhz05PJPq3BUfB18AT3HqgWEkI3VpWUg1MWi8rz1g","y":"YtvLYwGEqYQaoDVok2fVziJT4fu7DFPz3hy96FTAelQ"}' jwk_thumbprint: UW-uVNL0mP1vcLjHrTBxibNgCEe_PD0HIsE3FrbYjPA= create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '500': description: Internal. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credentials/{credential_id}': get: tags: - Credentials operationId: GetCredential summary: Retrieve an Existing Credential description: | To retrieve an existing credential, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credentials/$CREDENTIAL_ID`. security: - BearerAuth: - 'credentials:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/credential_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a credential. content: application/json: schema: $ref: '#/components/schemas/Credential' examples: Success: value: id: 81490afab171aef0 identity_id: e85de356dc78843a realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 state: ACTIVE csr_type: JWT jwk_json: '{"crv":"P-256","kty":"EC","x":"2MRhz05PJPq3BUfB18AT3HqgWEkI3VpWUg1MWi8rz1g","y":"YtvLYwGEqYQaoDVok2fVziJT4fu7DFPz3hy96FTAelQ"}' jwk_thumbprint: UW-uVNL0mP1vcLjHrTBxibNgCEe_PD0HIsE3FrbYjPA= create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-06-14T05:55:23.823187Z' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Credential Not Found: value: code: not_found message: credential not found details: - type: ResourceInfo resource_type: Credential id: 51c3c2d2907d6b40 description: credential not found '500': description: Internal. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credentials/{credential_id}:revoke': post: tags: - Credentials operationId: RevokeCredential summary: Revoke a Credential description: | To revoke a credential, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credentials/$CREDENTIAL_ID:revoke`. security: - BearerAuth: - 'credentials:revoke' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/credential_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a credential. content: application/json: schema: $ref: '#/components/schemas/Credential' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D~1credentials~1%7Bcredential_id%7D/get/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Credential Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D~1credentials~1%7Bcredential_id%7D/get/responses/404/content/application~1json/examples/Credential%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credential-binding-jobs': post: tags: - Credential Binding Jobs operationId: CreateCredentialBindingJob summary: Create a New Credential Binding Job description: | To create an identity, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credential-binding-jobs`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'credential-binding-jobs:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' requestBody: description: Credential binding job to be created. content: application/json: schema: title: Create credential binding job request description: Request for CreateCredentialBindingJob. type: object properties: job: $ref: '#/components/schemas/CredentialBindingJob' required: - job examples: Create Credential Binding Job: value: job: delivery_method: RETURN post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 responses: '200': description: | The response will be a JSON object with a key called `credential_binding_job`. The value of this will be an object containing the standard attributes associated with a credential binding job. If the `delivery_method` of the credential binding job is `RETURN`, the response will also contain a key called `credential_binding_link` that contains a link to facilitate the credential binding process. content: application/json: schema: title: Create Credential Binding Job Response description: Response for CreateCredentialBindingJob. type: object properties: credential_binding_job: $ref: '#/components/schemas/CredentialBindingJob' credential_binding_link: type: string description: | A unique URL to be delivered to an identity to facilitate the credential binding process. This field is only present if the credential binding job's `delivery_method` is `RETURN`. required: - credential_binding_job examples: Delivery Method Return: value: credential_binding_job: id: c4fc2d753ca22b14 realm_id: cdf4862dc4d49791 tenant_id: 000183a77dd50fa9 identity_id: 87fabad6956c6d4b delivery_method: RETURN state: LINK_SENT post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' credential_binding_link: 'http://example.com/v1/tenants/000183a77dd50fa9/realms/cdf4862dc4d49791/identities/87fabad6956c6d4b/credential-binding-jobs/c4fc2d753ca22b14:invokeAuthenticator?token=1St9IKIIrYyQ8sOSeuk5UkbLKnBJhuD4I7nWIqt-BNANDEFS-XVuOHxB7TFdZcRm' Delivery Method Email: value: credential_binding_job: id: c4fc2d753ca22b14 realm_id: cdf4862dc4d49791 tenant_id: 000183a77dd50fa9 identity_id: 87fabad6956c6d4b delivery_method: EMAIL state: LINK_SENT post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: job.authenticator_config_id description: empty string '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/ResourceInfo' examples: Identity Not Found: value: code: not_found message: identity not found details: - type: ResourceInfo resource_type: Identity id: 51c3c2d2907d6b40 description: identity not found '422': description: Unprocessable entity. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Identity Missing Email Address: value: code: unprocessable_entity message: Identity missing email address details: - type: ResourceInfo resource_type: Identity id: 69f4d38f840c13ab description: Identity missing email address '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '503': description: Service unavailable. content: application/json: schema: $ref: '#/components/schemas/Error' get: tags: - Credential Binding Jobs operationId: ListCredentialBindingJobs summary: List Credential Binding Jobs for an Identity description: | To list all credential binding jobs for an identity, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credential-binding-jobs`. `$IDENTITY_ID` may be a wildcard (`-`) to request all credential binding jobs across all identities within the realm. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of credential binding jobs in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'credential-binding-jobs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/skip' responses: '200': description: | The response will be a JSON object with keys for `credential_binding_jobs` and `total_size`. `credential_binding_jobs` will be set to an array of credential binding job objects, each of which contains the standard credential binding job attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListCredentialBindingJobsResponse' examples: Success: value: credential_binding_jobs: - id: 81490afab171aef0 identity_id: e85de356dc78843a realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 credential_id: 9802966246819b35 delivery_method: EMAIL state: COMPLETE post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credential-binding-jobs/{credential_binding_job_id}': get: tags: - Credential Binding Jobs operationId: GetCredentialBindingJob summary: Retrieve an Existing Credential Binding Job description: | To retrieve an existing credential binding job, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credential-binding-jobs/$CREDENTIAL_BINDING_JOB_ID`. security: - BearerAuth: - 'credential-binding-jobs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/credential_binding_job_id' - name: filter in: query description: | Filter to constrain the response. The response will only include resources matching this filter. Filters follow the SCIM grammar from [RFC-7644 Section 3.4.2.2](https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2). Supported filters attributes: `state`: the state of the credential binding job. `delivery_method`: the delivery method used for the credential binding job. schema: type: string responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a credential binding job. content: application/json: schema: $ref: '#/components/schemas/CredentialBindingJob' examples: Success: value: id: 81490afab171aef0 identity_id: e85de356dc78843a realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 credential_id: 9802966246819b35 delivery_method: EMAIL state: COMPLETE post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Credential Binding Job Not Found: value: code: not_found message: credential binding job not found details: - type: ResourceInfo resource_type: CredentialBindingJob id: 3103ba9a652b755e description: credential binding job not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/credential-binding-jobs/{credential_binding_job_id}:revoke': post: tags: - Credential Binding Jobs operationId: SetCredentialBindingJobRevoked summary: Revocation of an active credential binding job. description: | To revoke an active credential binding job, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credential-binding-jobs/$CREDENTIAL_BINDING_JOB_ID:revoke`. This endpoint invalidates a pending credential binding job, preventing a credential from being enrolled for the associated identity. If the specified job has already been completed, the revocation attempt will fail. security: - CredentialAuth: - 'credential-binding-jobs:revoke' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/identity_id' - $ref: '#/components/parameters/credential_binding_job_id' requestBody: content: application/json: schema: title: Bind Credential Request description: | Request for `SetCredentialBindingJobRevoked`. This request body is empty. type: object responses: '200': description: Credential binding job was successfully revoked. content: application/json: schema: $ref: '#/components/schemas/CredentialBindingJob' '400': description: | Bad request. If the request failed due to invalid fields, the error details will include a FieldViolations. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthenticated. content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: | Permission denied. The error details will include a ResourceInfo describing the authorization failure. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: | Not found. The error details will include a ResourceInfo describing the required resource that was not found. content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: | Conflict. The error details will include a ResourceInfo describing the required resource that is conflicting. content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal. content: application/json: schema: $ref: '#/components/schemas/Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/batch-credential-binding-jobs': post: tags: - Credential Binding Jobs operationId: CreateBatchCredentialBindingJob summary: Create a New Batch Credential Binding Job description: | To create a new batch credential binding job, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/batch-credential-binding-jobs`. Values in the request body for read-only fields will be ignored. A maximum of 1000 credential binding jobs can be created in a single batch. Each realm can have up to 1000 credential binding jobs in the batch queue at any given time. security: - BearerAuth: - 'credential-binding-jobs:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: description: Batch credential binding job to be created. content: application/json: schema: title: Create Batch Credential Binding Job Request description: Request for CreateBatchCredentialBindingJob. type: object properties: batch_credential_binding_job: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1batch-credential-binding-jobs/post/responses/200/content/application~1json/schema' required: - batch_credential_binding_job examples: Create Batch Credential Binding Job: value: batch_credential_binding_job: identity_ids: - 3d227b0d5949969d - a3f28b7c9e6d1234 - 5c90d2af18e47b0e job_template: authenticator_config_id: 67bb0acf12e5c899 post_binding_redirect_uri: 'http://example.com/callback' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a credential binding job. content: application/json: schema: title: BatchCredentialBindingJob description: | A batch credential binding job manages the binding of credentials for multiple identities in a batch operation. type: object required: - identity_ids - job_template properties: id: type: string description: | ID of the batch credential binding job. This is automatically generated on creation. This field is immutable and output-only. readOnly: true tenant_id: type: string description: | ID of the tenant associated with the batch credential binding job. This is automatically set on creation. This field is immutable and output-only. minLength: 1 readOnly: true realm_id: type: string description: | ID of the realm associated with the batch credential binding job. This is automatically set on creation. This field is immutable and output-only. minLength: 1 readOnly: true identity_ids: type: array description: | The list of identities associated with the batch credential binding job. items: type: string minLength: 1 minItems: 1 maxItems: 1000 state: type: string description: | The current state of the batch credential binding job. `RUNNING` indicates that the batch credential binding job is currently running. `FAILED` indicates that the batch credential binding job has failed. `PARTIAL_SUCCESS` indicates that the batch credential binding job has completed with some failures. `SUCCESS` indicates that the batch credential binding job has completed successfully. This field is immutable and output-only. readOnly: true state_commentary: title: BatchStateCommentary type: object description: | Commentary on the current state of the batch credential binding job. This field provides error information for each identity for which a credential binding job was attempted. This field is immutable and output-only. readOnly: true properties: errors: type: object description: | Per-identity error information. This contains a mapping of identity ID to error context. It will contain any errors encountered while creating an enrollment job for an entity. This field is immutable and output-only. additionalProperties: type: object required: - last_error properties: last_error: type: string description: | The most recent error encountered while creating a credential binding job for the associated identity. failed_permanently: type: boolean description: | Indicates whether attempts to create a credential binding job for this identity have reached the maximum retry limit and permanently failed. create_time: type: string format: date-time description: | Timestamp of when the batch credential binding job was created. This field is immutable and output-only. readOnly: true update_time: type: string format: date-time description: | Timestamp of when the batch credential binding job was updated. This field is immutable and output-only. readOnly: true job_template: title: BatchCredentialBindingJobTemplate description: | A batch credential binding job template provides a template for the credential binding jobs created via a batch. type: object properties: post_binding_redirect_uri: type: string description: | The URI to which the caller will be redirected after successfully binding a credential to an identity. This field is optional. If not specified, the authenticator will not attempt to redirect to a new location after binding. example: 'http://example.com/callback' authenticator_config: type: object description: | Representation of an authenticator configuration. This prescribes how an identity may authenticate themselves with Beyond Identity. properties: config: description: | An object specifying the settings for the supported authenticator type. The Hosted Web authenticator configuration is not supported in this field. It must be created separately and then referenced by its ID in the `authenticator_config_id` field. oneOf: - $ref: '#/components/schemas/AuthenticatorConfig/properties/config/oneOf/0' - $ref: '#/components/schemas/AuthenticatorConfig/properties/config/oneOf/2' authenticator_config_id: type: string description: | The ID of the authenticator configuration to be used to build the credential binding job. This field is immutable. example: 76e9eab521a8b734 expire_time: type: string format: date-time description: | A timestamp that represents when the credential binding link associated with the credential binding job will expire. This field is immutable and read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' examples: Success: value: id: 81490afab171aef0 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 identity_ids: - 3d227b0d5949969d - a3f28b7c9e6d1234 - 5c90d2af18e47b0e state: RUNNING state_commentary: errors: a3f28b7c9e6d1234: last_error: Identity missing email address failed_permanently: false job_template: authenticator_config_id: 67bb0acf12e5c899 post_binding_redirect_uri: 'http://example.com/callback' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '429': description: | Too many requests. The error details will include the current total number of enrollments in the batch, the maximum allowed queue size, and the amount by which the limit was exceeded. headers: RateLimit-Limit: schema: type: string example: 1000 description: | Request limit (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1). Note: This request limit is not based on a time window, but on the number of active requests in the batch queue. It defines the maximum number of credential binding jobs allowed in the queue. RateLimit-Remaining: schema: type: string example: 200 description: | Request limit remaining (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1). The number of additional credential binding job requests that can be submitted in a batch before reaching the maximum queue size. This value reflects the remaining capacity in the batch queue, not a time-based rate limit. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Too Many Requests: value: code: too_many_requests message: 'Maximum queue sized reached. Maximum: 1000 Current Total: 800 Overage: 100' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/batch-credential-binding-jobs/{batch_credential_binding_job_id}': get: tags: - Credential Binding Jobs operationId: GetBatchCredentialBindingJob summary: Retrieve an Existing Batch Credential Binding Job description: | To retrieve an existing batch credential binding job, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/credential-binding-jobs/batch/$BATCH_CREDENTIAL_BINDING_JOB_ID`. security: - BearerAuth: - 'credential-binding-jobs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/batch_credential_binding_job_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with the batch credential binding job. content: application/json: schema: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1batch-credential-binding-jobs/post/responses/200/content/application~1json/schema' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1batch-credential-binding-jobs/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Batch Credential Binding Job Not Found: value: code: not_found message: batch credential binding job not found details: - type: ResourceInfo resource_type: BatchCredentialBindingJob id: ea453099-e207-47d1-b24c-b3165a54037a description: batch credential binding job not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/batch-credential-binding-jobs/{batch_credential_binding_job_id}:listResults': get: tags: - Credential Binding Jobs operationId: ListBatchCredentialBindingJobResults summary: List Results of a Batch Credential Binding Job description: | To list the results of a batch credential binding job, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/batch-credential-binding-jobs/$BATCH_CREDENTIAL_BINDING_JOB_ID:listResults`. security: - BearerAuth: - 'credential-binding-jobs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/batch_credential_binding_job_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with the results of the batch credential binding job. content: application/json: schema: title: ListBatchCredentialBindingJobResultsResponse description: | A response containing the results of a batch credential binding job. type: object properties: job_results: type: array items: $ref: '#/components/schemas/CredentialBindingJob' maxItems: 200 description: | An unordered array of credential binding jobs corresponding to the batch credential binding job. total_success_count: type: integer format: uint32 description: | Total number of successful results. total_failure_count: type: integer format: uint32 description: | Total number of failed results. total_pending_count: type: integer format: uint32 description: | Total number of pending results. total_size: type: integer format: uint32 description: | Total number of results for the request. This value may be used to determine subsequent requests to query the remaining results. next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - job_results - total_size - total_success_count - total_failure_count - total_pending_count examples: Success: value: job_results: - id: 81490afab171aef0 identity_id: a3f28b7c9e6d1234 realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 delivery_method: EMAIL state: COMPLETE post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' - id: 81490afab171aef0 identity_id: 5c90d2af18e47b0e realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 delivery_method: EMAIL state: LINK_OPENED post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' - id: 81490afab171aef0 identity_id: e85de356dc78843a realm_id: 7df92e4a38ba0993 tenant_id: 0001b42d80372976 delivery_method: EMAIL state: REVOKED post_binding_redirect_uri: 'http://example.com/callback' authenticator_config_id: 67bb0acf12e5c899 expire_time: '2022-03-21T03:42:52.905657Z' create_time: '2022-03-14T03:42:52.905657Z' update_time: '2022-03-15T05:55:23.823187Z' total_success_count: 1 total_failure_count: 1 total_pending_count: 1 total_size: 3 '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Batch Credential Binding Job Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1batch-credential-binding-jobs~1%7Bbatch_credential_binding_job_id%7D/get/responses/404/content/application~1json/examples/Batch%20Credential%20Binding%20Job%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/themes': post: tags: - Themes summary: Create a New Theme description: | To create a theme, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`. Values in the request body for read-only fields will be ignored. All non-read-only fields are optional and will be populated with defaults if unspecified. Currently, each realm only supports a single theme. If a theme already exists for the realm, you will receive a 409 error. operationId: CreateTheme security: - BearerAuth: - 'themes:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: description: Theme to be created. content: application/json: schema: title: Create Theme Request description: Request for CreateTheme. type: object properties: theme: $ref: '#/components/schemas/Theme' examples: Create Theme: value: theme: email_realm_name: Realm Administrators logo_url_light: 'https://example.com/logo_url_light.png' logo_url_dark: 'https://example.com/logo_url_dark.png' support_url: 'https://example.com/support' button_color: '#4673D3' button_text_color: '#FFFFFF' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a theme. content: application/json: schema: $ref: '#/components/schemas/Theme' examples: Success: value: id: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47 tenant_id: f36448f2ff094881 realm_id: aa6aabe6989bc4a5 email_realm_name: Realm Administrators logo_url_light: 'https://example.com/logo_url_light.png' logo_url_dark: 'https://example.com/logo_url_dark.png' support_url: 'https://example.com/support' create_time: '2022-07-28T18:00:00.000Z' button_color: '#4673D3' button_text_color: '#FFFFFF' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: value: code: bad_request message: Bad Request details: - type: FieldViolations field_violations: - field: theme.email_realm_name description: provided email_realm_name must not be empty '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: value: code: not_found message: realm not found details: - type: ResourceInfo resource_type: Realm id: 19a95130480dfa79 description: realm not found '409': description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Theme Already Exists: value: code: conflict message: theme already exists for this realm '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/themes/active': get: tags: - Themes summary: Get the Active Theme description: | To retrieve the active theme for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/active`. If the realm has not specified the active theme, a default theme will be returned. operationId: GetActiveTheme security: - BearerAuth: - 'themes:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a theme. content: application/json: schema: $ref: '#/components/schemas/Theme' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/themes/{theme_id}': get: tags: - Themes summary: Retrive an Existing Theme description: | To retrieve an existing theme, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`. operationId: GetTheme security: - BearerAuth: - 'themes:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/theme_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a theme. content: application/json: schema: $ref: '#/components/schemas/Theme' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Theme Not Found: value: code: not_found message: theme not found details: - type: ResourceInfo resource_type: Theme id: 72d0af37-a9bb-410c-b8a7-9aa127fd8739 description: theme not found '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - Themes summary: Patch a Theme description: | To update only specific attributes of an existing theme, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. operationId: UpdateTheme security: - BearerAuth: - 'themes:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/theme_id' requestBody: description: Theme to be updated. content: application/json: schema: title: Update Theme Request description: Request for UpdateTheme. type: object properties: theme: $ref: '#/components/schemas/Theme' examples: Update Email Realm Name: value: theme: email_realm_name: Realm Administrators responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a theme. content: application/json: schema: $ref: '#/components/schemas/Theme' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Theme Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes~1%7Btheme_id%7D/get/responses/404/content/application~1json/examples/Theme%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/applications': post: operationId: CreateApplication tags: - Applications summary: Create a New Application description: | To create an application, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications`. Values in the request body for read-only fields will be ignored. At present, there are only two supported protocol types for applications, `oauth2` and `oidc`. security: - BearerAuth: - 'applications:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Create Application Request description: Request for CreateApplication. type: object properties: application: $ref: '#/components/schemas/Application' required: - application examples: Create Application: value: application: display_name: Pet Application resource_server_id: 84db69f5-48a8-4c11-8cda-1bae3a73f07e protocol_config: type: oidc allowed_scopes: - 'pets:read' - 'pets:write' confidentiality: confidential token_endpoint_auth_method: client_secret_post grant_type: - authorization_code redirect_uris: - 'https://auth.mypetapp.com/callback' token_configuration: subject_field: id expires_after: 86400 token_signing_algorithm: RS256 pkce: disabled token_format: self_contained responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an application. content: application/json: schema: $ref: '#/components/schemas/Application' examples: Success: value: id: 38833c36-6f47-4992-9329-ea0a00915137 realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 resource_server_id: 84db69f5-48a8-4c11-8cda-1bae3a73f07e display_name: Pet Application is_managed: false protocol_config: type: oidc allowed_scopes: - 'pets:read' - 'pets:write' client_id: AYYNcuOSpfqIf33JeegCzDIT client_secret: wWD4mPzdsjms1LPekQSo0v9scOHLWy5wmMtKAR2JNhJPAKXv confidentiality: confidential token_endpoint_auth_method: client_secret_post grant_type: - authorization_code redirect_uris: - 'https://auth.mypetapp.com/callback' token_configuration: subject_field: id expires_after: 86400 token_signing_algorithm: RS256 pkce: disabled token_format: self_contained '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: operationId: ListApplications tags: - Applications summary: List Applications for a Realm description: | To list all applications for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications`. The response will contain at most 100 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 100 items. There is no defined ordering of the list of applications in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'applications:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' responses: '200': description: | The response will be a JSON object with keys for `applications` and `total_size`. `applications` will be set to an array of application objects, each of which contains the standard application attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListApplicationsResponse' examples: Success: value: applications: - id: 38833c36-6f47-4992-9329-ea0a00915137 realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 resource_server_id: 84db69f5-48a8-4c11-8cda-1bae3a73f07e display_name: Pet Application is_managed: false protocol_config: type: oidc allowed_scopes: - 'pets:read' - 'pets:write' client_id: AYYNcuOSpfqIf33JeegCzDIT client_secret: wWD4mPzdsjms1LPekQSo0v9scOHLWy5wmMtKAR2JNhJPAKXv confidentiality: confidential token_endpoint_auth_method: client_secret_post grant_type: - authorization_code redirect_uris: - 'https://auth.mypetapp.com/callback' token_configuration: subject_field: id expires_after: 86400 token_signing_algorithm: RS256 pkce: disabled token_format: self_contained total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: value: code: bad_request message: invalid parameters '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: value: code: not_found message: The requested resource was not found. '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/applications/{application_id}': get: operationId: GetApplication tags: - Applications summary: Retrieve an Existing Application description: | To retrieve an existing application, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID`. security: - BearerAuth: - 'applications:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/application_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an application. content: application/json: schema: $ref: '#/components/schemas/Application' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Application Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: operationId: UpdateApplication tags: - Applications summary: Patch an Application description: | To update only specific attributes of an existing application, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'applications:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/application_id' requestBody: content: application/json: schema: title: Update Application Request description: Request for UpdateApplication. type: object properties: application: $ref: '#/components/schemas/Application' required: - application examples: Update Display Name: value: application: display_name: Pet Application responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an application. content: application/json: schema: $ref: '#/components/schemas/Application' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Application Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: operationId: DeleteApplication tags: - Applications summary: Delete an Application description: | To delete an application, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID`. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'applications:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/application_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Application Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/authenticator-configs': post: operationId: CreateAuthenticatorConfig tags: - Authenticator Configurations summary: Create a New Authenticator Configuration description: | To create an authenticator configuration, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/authenticator-configs`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'authenticator-configs:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Create Authenticator Configuration Request description: Request for CreateAuthenticatorConfig. type: object properties: authenticator_config: $ref: '#/components/schemas/AuthenticatorConfig' required: - authenticator_config examples: Create Authenticator Configuration: value: authenticator_config: display_name: Pet Authenticator Configuration config: type: embedded invoke_url: 'http://localhost:8092' trusted_origins: - 'http://localhost:8092' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an authenticator configuration. content: application/json: schema: $ref: '#/components/schemas/AuthenticatorConfig' examples: Success Embedded: value: id: 73731b7f-eb76-4143-9b4b-81a720385f5a realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 display_name: Pet Authenticator Configuration config: type: embedded invoke_url: 'http://localhost:8092' invocation_type: automatic trusted_origins: - 'http://localhost:8092' authentication_methods: - type: email_one_time_password - type: software_passkey - type: webauthn_passkey Success Hosted Web: value: id: 73731b7f-eb76-4143-9b4b-81a720385f5a realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 display_name: Pet Authenticator Configuration config: type: hosted_web authentication_methods: - type: software_passkey trusted_origins: - 'http://localhost:8092' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: operationId: ListAuthenticatorConfigs tags: - Authenticator Configurations summary: List Authenticator Configurations for a Realm description: | To list all authenticator configurations for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/authenticator-configs`. The response will contain at most 100 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 100 items. There is no defined ordering of the list of authenticator configurations in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'authenticator-configs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/filter' responses: '200': description: | The response will be a JSON object with a keys for `authenticator_configs` and `total_size`. `authenticator_configs` will be set to an array of authenticator configuration objects, each of which contains the standard authenticator configuration attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListAuthenticatorConfigsResponse' examples: Success: value: authenticator_configs: - id: 73731b7f-eb76-4143-9b4b-81a720385f5a realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 display_name: Pet Authenticator Configuration config: invoke_url: 'http://localhost:8092' invocation_type: automatic trusted_origins: - 'http://localhost:8092' type: embedded total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/authenticator-configs/{authenticator_config_id}': get: operationId: GetAuthenticatorConfig tags: - Authenticator Configurations summary: Retrieve an Existing Authenticator Configuration description: | To retrieve an existing authenticator configuration, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/authenticator-configs/$AUTHENTICATOR_CONFIG_ID`. security: - BearerAuth: - 'authenticator-configs:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/authenticator_config_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an authenticator configuration. content: application/json: schema: $ref: '#/components/schemas/AuthenticatorConfig' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1authenticator-configs/post/responses/200/content/application~1json/examples/Success%20Embedded' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Authenticator Configuration Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: operationId: UpdateAuthenticatorConfig tags: - Authenticator Configurations summary: Patch an Authenticator Configuration description: | To update only specific attributes of an existing authenticator configuration, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/authenticator-configs/$AUTHENTICATOR_CONFIG_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. security: - BearerAuth: - 'authenticator-configs:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/authenticator_config_id' requestBody: content: application/json: schema: title: Update Authenticator Configuration Request description: Request for UpdateAuthenticatorConfig. type: object properties: authenticator_config: $ref: '#/components/schemas/AuthenticatorConfig' required: - authenticator_config examples: Update Embedded Invoke URL: value: authenticator_config: display_name: Pet Authenticator Configuration config: invoke_url: 'http://localhost:8092' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with an authenticator configuration. content: application/json: schema: $ref: '#/components/schemas/AuthenticatorConfig' examples: Success Embedded: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1authenticator-configs/post/responses/200/content/application~1json/examples/Success%20Embedded' Success Hosted Web: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1authenticator-configs/post/responses/200/content/application~1json/examples/Success%20Hosted%20Web' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Authenticator Configuration Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: operationId: DeleteAuthenticatorConfig tags: - Authenticator Configurations summary: Delete an Authenticator Configuration description: | To delete an authenticator configuration, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/authenticator-configs/$AUTHENTICATOR_CONFIG_ID`. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'authenticator-configs:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/authenticator_config_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Authenticator Configuration Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers': post: operationId: CreateResourceServer tags: - Resource Servers summary: Create a New Resource Server description: | To create a resource server, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'resource-servers:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: content: application/json: schema: title: Create Resource Server Request description: Request for CreateResourceServer. type: object properties: resource_server: $ref: '#/components/schemas/ResourceServer' required: - resource_server examples: Create Resource Server: value: resource_server: display_name: Pet API identifier: 'https://api.mypetapp.com' scopes: - 'pets:read' - 'pets:write' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a resource server. content: application/json: schema: $ref: '#/components/schemas/ResourceServer' examples: Success: value: id: 84db69f5-48a8-4c11-8cda-1bae3a73f07e realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 display_name: Pet API is_managed: false identifier: 'https://api.mypetapp.com' scopes: - 'pets:read' - 'pets:write' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' get: operationId: ListResourceServers tags: - Resource Servers summary: List Resource Servers For a Realm description: | To list all resource servers for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers`. The response will contain at most 100 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 100 items. There is no defined ordering of the list of resource servers in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' responses: '200': description: | The response will be a JSON object with a keys for `resource_servers` and `total_size`. `resource_servers` will be set to an array of resource server objects, each of which contains the standard resource server attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/ListResourceServersResponse' examples: Success: value: resource_servers: - id: 84db69f5-48a8-4c11-8cda-1bae3a73f07e realm_id: caf2ff640497591a tenant_id: 00011f1183c67b69 display_name: Pet API is_managed: false identifier: 'https://api.mypetapp.com' scopes: - 'pets:read' - 'pets:write' total_size: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Realm Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/resource-servers/{resource_server_id}': get: operationId: GetResourceServer tags: - Resource Servers summary: Retrieve an Existing Resource Server description: | To retrieve an existing resource server, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID`. security: - BearerAuth: - 'resource-servers:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a resource server. content: application/json: schema: $ref: '#/components/schemas/ResourceServer' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers/post/responses/200/content/application~1json/examples/Success' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' patch: operationId: UpdateResourceServer tags: - Resource Servers summary: Patch a Resource Server description: | To update only specific attributes of an existing resource server, send a a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. Scopes that are removed from a resource server will be asynchronously removed from all roles associated with the resource server. security: - BearerAuth: - 'resource-servers:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' requestBody: content: application/json: schema: title: Update Resource Server Request description: Request for UpdateResourceServer. type: object properties: resource_server: $ref: '#/components/schemas/ResourceServer' required: - resource_server examples: Update Display Name: value: resource_server: display_name: Pet API responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a resource server. content: application/json: schema: $ref: '#/components/schemas/ResourceServer' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1resource-servers/post/responses/200/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Malformed Request: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/patch/responses/400/content/application~1json/examples/Malformed%20Request' Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' delete: operationId: DeleteResourceServer tags: - Resource Servers summary: Delete a Resource Server description: | To delete a resource server, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/resource-servers/$RESOURCE_SERVER_ID`. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. security: - BearerAuth: - 'resource-servers:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/resource_server_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Resource Server Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/applications/{application_id}/tokens': get: operationId: ListTokens tags: - Tokens summary: List Tokens description: | To list all tokens issued by an application, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID/tokens`. The `$APPLICATION_ID` in path corresponds to the application that is the issuer of the token. To filter the list of tokens by a principal, set `principal_type` and `principal_id`. These parameters are optional. The response will contain at most 100 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 100 items. There is no defined ordering of the list of tokens in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. The skip is not maintained by the page token and must be specified on each subsequent request. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. security: - BearerAuth: - 'tokens:read' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/principal_type' - $ref: '#/components/parameters/principal_id' responses: '200': description: | The response will be a JSON object with keys called `tokens` and `total_size`. `tokens` will be set to an array of token objects, each of which contains the standard token attributes. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: title: List Tokens Response description: Response for ListTokens. type: object properties: tokens: type: array items: title: Token type: object description: | A token represents a record of an access token or a refresh token issued by Beyond Identity. properties: id: type: string description: | A unique identifier for a token. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. For JWS tokens, the token_id is the same as the value of the `jti` claim. readOnly: true example: cTXMRjNrTz7w3p7wO5HJ5cUTpFt5Z3yL display_name: type: string description: | A human-readable name for the token. This name is used for display purposes. example: Testing token only for creating identities scopes: type: array items: type: string example: 'applications:create' description: | A list of scopes granted by this token. This field is immutable and read-only. readOnly: true token_suffix: type: string description: | The last few characters of the cryptographic string that corresponds to this token. This can be used to identify which token the listing entry corresponds to. This field is immutable and read-only. readOnly: true example: JV_adQssw5c token_format: description: | Format of the token. Allowable values are: - `self_contained`: token in JWT format. - `referential`: Encoded token which requires /introspect call in order to retrieve token claims. type: string example: self_contained readOnly: true expires: type: integer format: uint32 description: | The expiration time of this token formatted as a unix timestamp in seconds. This field is immutable and read-only. readOnly: true example: 1677246914 issued_at: type: integer format: uint32 description: | The time when this token has been issued formatted as a unix timestamp in seconds. This field is immutable and read-only. readOnly: true example: 1677246914 token_type: type: string description: | Type of the token. Allowable values are: - `access` - `refresh` - `identity` readOnly: true example: access maxItems: 100 description: | An unordered array of tokens corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - tokens - total_size examples: Success: value: tokens: - id: cTXMRjNrTz7w3p7wO5HJ5cUTpFt5Z3yL display_name: Testing token only for creating applications scopes: - 'applications:create' token_suffix: JV_adQssw5c token_format: self_contained expires: 1677246914 issued_at: 1677246914 token_type: access total_size: 1 '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Application Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/applications/{application_id}/tokens/{token_id}': delete: operationId: RevokeToken tags: - Tokens summary: Revoke a Token description: | To revoke a token, send a DELETE request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/applications/$APPLICATION_ID/tokens/$TOKEN_ID`. The `$APPLICATION_ID` in path corresponds to the application that is the issuer of the token. A successful request will receive a 200 status code with no body in the response. This indicates that the request was processed successfully. If the token ID is not available, the access token must be revoked via the [RFC-7009 revoke endpoint](https://developer.beyondidentity.com/docs/revoke-access-tokens). security: - BearerAuth: - 'tokens:delete' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' - $ref: '#/components/parameters/application_id' - $ref: '#/components/parameters/token_id' responses: '200': description: The action was successful and the response body is empty. '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Insufficient Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Application Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1applications/get/responses/404/content/application~1json/examples/Realm%20Not%20Found' '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/Users': post: tags: - SCIM operationId: SCIMCreateUser summary: Create a New User description: | To create a user, send a POST request to `/Users`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'scim:users:create' requestBody: content: application/json: schema: title: Create User Request description: Request for CreateUser. type: object properties: user: $ref: '#/components/schemas/SCIMUser' required: - user examples: Create User: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:User' active: true userName: bjensen displayName: Ms. Barbara Jensen externalId: bjensen name: familyName: Jensen givenName: Barbara emails: - value: bjensen@example.com primary: true responses: '201': description: | The response will be a JSON object containing the standard attributes associated with a user. content: application/json: schema: $ref: '#/components/schemas/SCIMUser' examples: Success: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:User urn:ietf:params:scim:schemas:extension:enterprise:2.0:User' id: 2819c223-7f76-453a-919d-413861904646 externalId: bjensen userName: bjensen displayName: Ms. Barbara J Jensen III name: - familyName: Jensen - givenName: Barbara active: true emails: - primary: true value: bjensen@example.com meta: resourceType: User created: '2022-10-12T05:11:47Z' lastModified: '2023-03-30T06:00:03Z' location: Users/2819c223-7f76-453a-919d-413861904646 version: W/0 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': employeeNumber: '12345' costCenter: Finance department: Accounting manager: - value: '54321' displayName: Jane Doe '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - SCIM operationId: SCIMListUsers summary: List All Users description: | To list all users, send a GET request to `/Users`. Currently, filtering on users only supports the `eq` and `ne` operators and the `userName` and `externalId` attributes. The response will contain at most 1000 items. If count is not specified or is zero, the response will not contain any resources. There is no defined ordering of the list of users in the response. Note that the maximum page size is subject to change. security: - BearerAuth: - 'scim:users:read' parameters: - $ref: '#/components/parameters/scim_filter' - $ref: '#/components/parameters/scim_count' - $ref: '#/components/parameters/scim_start_index' responses: '200': description: | The response will be a ListResponse containing the users corresponding to the request. The `totalResults` key may be used to determine whether there are additional pages to fetch for the request. content: application/json: schema: title: List Users Response description: Response for ListUsers. type: object properties: schemas: type: array description: | The list of schemas used to define the list response. This only contains the ListResponse schema ("urn:ietf:params:scim:api:messages:2.0:ListResponse"). items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array description: | An array of users corresponding to the filter from the request. items: $ref: '#/components/schemas/SCIMUser' maxItems: 1000 totalResults: type: integer format: uint32 description: | Total number of results matching the request. This value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available. startIndex: type: integer format: uint32 description: | The 1-based index of the first result in the current set of list results. itemsPerPage: type: integer format: uint32 description: | The number of resources returned in a list response page. required: - schemas - Resources - totalResults - startIndex - itemsPerPage examples: Success: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: - schemas: - 'urn:ietf:params:scim:schemas:core:2.0:User urn:ietf:params:scim:schemas:extension:enterprise:2.0:User' id: 2819c223-7f76-453a-919d-413861904646 externalId: bjensen userName: bjensen displayName: Ms. Barbara J Jensen III name: - familyName: Jensen - givenName: Barbara active: true emails: - primary: true value: bjensen@example.com meta: resourceType: User created: '2022-10-12T05:11:47Z' lastModified: '2023-03-30T06:00:03Z' location: Users/2819c223-7f76-453a-919d-413861904646 version: W/0 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': employeeNumber: '12345' costCenter: Finance department: Accounting manager: - value: '54321' displayName: Jane Doe itemsPerPage: 1000 startIndex: 1 totalResults: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:Error' status: '400' scimType: invalidValue detail: 'A required value was missing, or the value specified was not compatible with the operation or attribute type, or resource schema.' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:Error' status: '401' detail: The authorization header is invalid or missing. scimType: unauthorized '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:Error' status: '403' detail: token is unauthorized. scimType: forbidden '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:Error' status: '500' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/Users/{user_id}': get: tags: - SCIM operationId: SCIMGetUser summary: Retrieve an Existing User description: | To retrieve an existing user, send a GET request to `/Users/$USER_ID`. security: - BearerAuth: - 'scim:users:read' parameters: - $ref: '#/components/parameters/scim_user_id' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/SCIMUser' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: User Not Found: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:Error' status: '404' detail: Resource 2819c223-7f76-453a-919d-413861904646 not found. '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - SCIM operationId: SCIMUpdateUser summary: Patch a User description: | To update only specific attributes of an existing user, send a PATCH request to `/Users/$USER_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. Note that the Beyond Identity SCIM server currently does not support atomic PATCH operations. If a request contains multiple operations, the request may be partially applied. Currently, only "add" and "replace" operations are supported for users. security: - BearerAuth: - 'scim:users:update' parameters: - $ref: '#/components/parameters/scim_user_id' requestBody: content: application/json: schema: title: Update User Request description: Request for UpdateUser. type: object properties: user: $ref: '#/components/schemas/SCIMUser' required: - user examples: Update Display Name: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: - op: replace path: displayName value: Ms. Barbara J Jensen III responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a user. content: application/json: schema: $ref: '#/components/schemas/SCIMUser' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/post/responses/201/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: User Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' put: tags: - SCIM operationId: SCIMReplaceUser summary: Replace a User description: | To replace all attributes of an existing user, send a PUT request to `/Users/$USER_ID`. Values in the request body for immutable or read-only fields will be ignored. security: - BearerAuth: - 'scim:users:update' parameters: - $ref: '#/components/parameters/scim_user_id' requestBody: content: application/json: schema: title: Update User Request description: Request for UpdateUser. type: object properties: user: $ref: '#/components/schemas/SCIMUser' required: - user examples: Replace User: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:User' active: true userName: bjensen externalId: bjensen displayName: Ms. Barbara J Jensen III name: familyName: Jensen givenName: Barbara emails: - value: bjensen@example.com primary: true responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a user. content: application/json: schema: $ref: '#/components/schemas/SCIMUser' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/post/responses/201/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: User Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - SCIM operationId: SCIMDeleteUser summary: Delete a User description: 'To delete a user, send a DELETE request to `/Users/$USER_ID`.' security: - BearerAuth: - 'scim:users:delete' parameters: - $ref: '#/components/parameters/scim_user_id' responses: '204': description: The action was successful and the response body is empty. '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: User Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/Groups/': post: tags: - SCIM operationId: SCIMCreateGroup summary: Create a New Group description: | To create a group, send a POST request to `/Groups`. Values in the request body for read-only fields will be ignored. security: - BearerAuth: - 'scim:groups:create' requestBody: content: application/json: schema: title: Create Group Request description: Request for CreateGroup. type: object properties: group: $ref: '#/components/schemas/SCIMGroup' required: - group examples: Create Group: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:Group' id: 22e7c78c-39ff-4501-8ed4-32d0479e54c1 displayName: Test Group responses: '201': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/SCIMGroup' examples: Success: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:Group' id: 22e7c78c-39ff-4501-8ed4-32d0479e54c1 displayName: Test Group meta: created: '2023-04-10T06:08:28Z' lastModified: '2023-04-10T06:08:28Z' location: Groups/22e7c78c-39ff-4501-8ed4-32d0479e54c1 resourceType: Group version: W/0 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' get: tags: - SCIM operationId: SCIMListGroups summary: List All Groups description: | To list all groups, send a GET request to `/Groups`. Currently, filtering on groups only supports the `eq` and `ne` operators and the `displayName` attribute. The response will contain at most 1000 items. If count is not specified or is zero, the response will not contain any resources. There is no defined ordering of the list of groups in the response. Note that the maximum page size is subject to change. Members will not be returned with the group. security: - BearerAuth: - 'scim:groups:read' parameters: - $ref: '#/components/parameters/scim_filter' - $ref: '#/components/parameters/scim_count' - $ref: '#/components/parameters/scim_start_index' responses: '200': description: | The response will be a ListResponse containing the groups corresponding to the request. The `totalResults` key may be used to determine whether there are additional pages to fetch for the request. content: application/json: schema: title: List Groups Response description: Response for ListGroups. type: object properties: schemas: type: array description: | The list of schemas used to define the list response. This only contains the ListResponse schema ("urn:ietf:params:scim:api:messages:2.0:ListResponse"). items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array description: | An array of groups corresponding to the filter from the request. items: $ref: '#/components/schemas/SCIMGroup' maxItems: 1000 totalResults: type: integer format: uint32 description: | Total number of results matching the request. This value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available. startIndex: type: integer format: uint32 description: | The 1-based index of the first result in the current set of list results. itemsPerPage: type: integer format: uint32 description: | The number of resources returned in a list response page. required: - schemas - Resources - totalResults - startIndex - itemsPerPage examples: Success: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: - schemas: - 'urn:ietf:params:scim:schemas:core:2.0:Group' id: 22e7c78c-39ff-4501-8ed4-32d0479e54c1 displayName: Test Group meta: created: '2023-04-10T06:08:28Z' lastModified: '2023-04-10T06:08:28Z' location: Groups/22e7c78c-39ff-4501-8ed4-32d0479e54c1 resourceType: Group version: W/0 itemsPerPage: 1000 startIndex: 1 totalResults: 1 '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/Groups/{group_id}': get: tags: - SCIM operationId: SCIMGetGroup summary: Retrieve an existing group description: | To retrieve an existing group, send a GET request to `/Groups/$GROUP_ID`. security: - BearerAuth: - 'scim:groups:read' parameters: - $ref: '#/components/parameters/scim_group_id' responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/SCIMGroup' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' patch: tags: - SCIM operationId: SCIMUpdateGroup summary: Patch a Group description: | To update only specific attributes of an existing group, send a PATCH request to `/Groups/$GROUP_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged. Note that the Beyond Identity SCIM server currently does not support atomic PATCH operations. If a request contains multiple operations, the request may be partially applied. The Beyond Identity SCIM server also does not support modifying both a group and its membership in the same operation. For example, a PATCH request to update a group's display name and its membership should specify two separate operations, one to update the display name and the other to modify the membership. Currently, "replace" operations are supported for displayName while "add" and "remove" operations are supported for members. Multiple members may be added at a time, but batch remove is not supported. Note that while member changes will take affect, they will not be reflected in the response as members are not currently returned with groups. security: - BearerAuth: - 'scim:groups:update' parameters: - $ref: '#/components/parameters/scim_group_id' requestBody: content: application/json: schema: title: Update Group Request description: Request for UpdateGroup. type: object properties: group: $ref: '#/components/schemas/SCIMGroup' required: - group examples: Replace DisplayName: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: - op: replace path: displayName value: Test Group Add Members: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: - op: add path: members value: - value: 6c9f819d6a0f1b57 - value: a46bd3fb5c62d80d Remove Member: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: - op: remove path: members value: - value: 6c9f819d6a0f1b57 responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a group. content: application/json: schema: $ref: '#/components/schemas/SCIMGroup' examples: Success: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Groups~1/post/responses/201/content/application~1json/examples/Success' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' delete: tags: - SCIM operationId: SCIMDeleteGroup summary: Delete a Group description: | To delete a group, send a DELETE request to `/Groups/$GROUP_ID`. security: - BearerAuth: - 'scim:groups:delete' parameters: - $ref: '#/components/parameters/scim_group_id' responses: '204': description: The action was successful and the response body is empty. '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Invalid Parameters: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/400/content/application~1json/examples/Invalid%20Parameters' '401': description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/401/content/application~1json/examples/Missing%20Authorization' '403': description: Forbidden. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Missing Authorization: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/403/content/application~1json/examples/Missing%20Authorization' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Group Not Found: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users~1%7Buser_id%7D/get/responses/404/content/application~1json/examples/User%20Not%20Found' '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/ResourceTypes': get: tags: - SCIM operationId: ListResourceTypes summary: List All Resource Types description: | To list all supported resource types, send a GET request to `/ResourceTypes`. responses: '200': description: | The response will be a list of JSON objects, each of which contains the standard resource type attributes. content: application/json: schema: title: List Resource Types Response description: Response for ListResourceTypes. type: object properties: schemas: type: array description: | The list of schemas used to define the list response. This only contains the ListResponse schema ("urn:ietf:params:scim:api:messages:2.0:ListResponse"). items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array description: An array of resource types corresponding to the request. items: $ref: '#/components/schemas/SCIMResourceType' maxItems: 1000 totalResults: type: integer format: uint32 description: | Total number of results matching the request. This value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available. startIndex: type: integer format: uint32 description: | The 1-based index of the first result in the current set of list results. itemsPerPage: type: integer format: uint32 description: | The number of resources returned in a list response page. required: - schemas - Resources - totalResults - startIndex - itemsPerPage examples: Success: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: - schemas: - 'urn:ietf:params:scim:schemas:core:2.0:ResourceType' id: User name: User description: User Account endpoint: /Users schema: 'urn:ietf:params:scim:schemas:core:2.0:User' schemaExtensions: [] - schemas: - 'urn:ietf:params:scim:schemas:core:2.0:ResourceType' id: Group name: Group description: User Groups endpoint: /Groups schema: 'urn:ietf:params:scim:schemas:core:2.0:Group' schemaExtensions: - required: false schema: 'urn:scim:schemas:extension:byndid:1.0:Group' itemsPerPage: 1000 startIndex: 1 totalResults: 2 '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/Schemas': get: tags: - SCIM operationId: ListSchemas summary: List All Schemas description: | To list all supported resource schemas, send a GET request to `/Schemas`. responses: '200': description: | The response will be a list of JSON objects, each of which contains the standard resource schema attributes. content: application/json: schema: title: List Schemas Response description: Response for ListSchemas. type: object properties: schemas: type: array description: | The list of schemas used to define the list response. This only contains the ListResponse schema ("urn:ietf:params:scim:api:messages:2.0:ListResponse"). items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array description: An array of schemas corresponding to the request. items: $ref: '#/components/schemas/SCIMSchema' maxItems: 1000 totalResults: type: integer format: uint32 description: | Total number of results matching the request. This value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available. startIndex: type: integer format: uint32 description: | The 1-based index of the first result in the current set of list results. itemsPerPage: type: integer format: uint32 description: | The number of resources returned in a list response page. required: - schemas - Resources - totalResults - startIndex - itemsPerPage examples: Success: value: schemas: - 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: - id: 'urn:ietf:params:scim:schemas:core:2.0:User' name: User description: User resource attributes: - name: externalId type: string description: | A String that is an identifier for the resource as defined by the provisioning client. caseExact: true multiValued: false mutability: readWrite required: true returned: always uniqueness: server - name: userName type: string caseExact: true description: | The username of the user. The value of this field will be returned as the subject of a OIDC ID Token. multiValued: false mutability: readWrite required: true returned: always uniqueness: server - name: displayName type: string caseExact: true description: | The name of the User, suitable for display to end-users. The name SHOULD be the full name of the User being described, if known. multiValued: false mutability: readWrite required: true returned: always uniqueness: none - name: active type: boolean description: | A Boolean value indicating the User's administrative status within the Beyond Identity Service. multiValued: false mutability: readWrite required: true returned: always - name: name type: complex description: The components of the user's real name. multiValued: false mutability: readWrite required: false returned: request subAttributes: - name: familyName type: string description: | The family name of the User, or last name in most Western languages (e.g., 'Jensen' given the full name 'Ms. Barbara J Jensen, III'). caseExact: true multiValued: false mutability: readWrite required: true returned: request uniqueness: none - name: givenName type: string description: | The given name of the User, or first name in most Western languages (e.g., "Barbara" given the full name "Ms. Barbara Jane Jensen, III"). caseExact: true multiValued: false mutability: readWrite required: true returned: request uniqueness: none - name: emails type: complex description: | Email addresses for the User. Providing a primary is required. multiValued: true mutability: readWrite required: true returned: always subAttributes: - name: value type: string description: '' caseExact: false multiValued: false mutability: readWrite required: false returned: default uniqueness: none - name: primary type: boolean description: '' multiValued: false mutability: readWrite required: false returned: default - id: 'urn:ietf:params:scim:schemas:core:2.0:Group' name: Group description: Group resource attributes: - name: id type: string description: group id caseExact: false multiValued: false mutability: readWrite required: false returned: default uniqueness: server - name: displayName type: string description: A human-readable name for the Group. caseExact: false multiValued: false mutability: readWrite required: false returned: default uniqueness: server - name: members type: complex description: A list of members of the group. multiValued: true mutability: readWrite required: false returned: default subAttributes: - name: value type: string description: Identifier of the member of this Group. caseExact: false multiValued: false mutability: immutable required: false returned: default uniqueness: none - name: '' type: reference description: | The URI corresponding to a SCIM resource that is a member of this Group. caseExact: true multiValued: false mutability: immutable referenceTypes: - User required: false returned: default uniqueness: none - name: type type: string description: A label indicating the type of resource canonicalValues: - User - Group caseExact: false multiValued: false mutability: immutable required: false returned: default uniqueness: none itemsPerPage: 1000 startIndex: 1 totalResults: 2 '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/scim/v2/ServiceProviderConfig': get: tags: - SCIM operationId: GetServiceProviderConfig summary: Retrieve the Service Provider Configuration description: | To retrieve the service provider configuration, send a GET request to `/ServiceProviderConfig`. responses: '200': description: | The response will be a JSON object containing the standard attributes associated with a service provider configuration. content: application/json: schema: $ref: '#/components/schemas/SCIMServiceProviderConfig' examples: Internal Error: value: schemas: - 'urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig' authenticationSchemes: - name: '' description: '' documentationUri: '' primary: false specUri: '' type: oauthbearertoken bulk: maxOperations: 1000 maxPayloadSize: 1048576 supported: false changePassword: supported: false documentationUri: '' etag: supported: false filter: maxResults: 1000 supported: true patch: supported: true sort: supported: false '429': description: Rate limit exceeded. headers: RateLimit-Limit: schema: type: string description: 'Request limit per time window (see https://www.ietf.org/archive/id/draft-polli-ratelimit-headers-02.html#section-toc.1-1.3.2.1.1).' example: 1 RateLimit-Remaining: schema: type: integer description: The number of requests left for the time window. example: 0 RateLimit-Reset: schema: type: integer description: Number of seconds until the current rate limit window resets. example: 30 '500': description: Server error. content: application/json: schema: $ref: '#/components/schemas/SCIMError' examples: Internal Error: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1scim~1v2~1Users/get/responses/500/content/application~1json/examples/Internal%20Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs': post: summary: Create a new SSO Config. description: | To create a new SSO Config, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/sso-configs`. tags: - SSO Configs operationId: CreateSsoConfig parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' security: - BearerAuth: - 'sso-configs:create' requestBody: content: application/json: schema: $ref: '#/components/schemas/SsoConfigEnvelope' responses: '200': description: The sso config has been created. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: description: Represents an SSO config as a response body. type: object required: - id - display_name - payload properties: id: description: A unique identifier for an SSO config. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. type: string format: uuid display_name: description: A human-readable name for the SSO config. This name is used for display purposes. type: string payload: oneOf: - type: object required: - type - login_link properties: type: $ref: '#/components/schemas/SsoConfigType' login_link: type: string icon: type: string is_tile_visible: type: boolean application_tile_id: type: string - type: object required: - type - redirect_uris - application_id - authenticator_config_id - resource_server_id - oidc_configuration - client_id - discover_endpoint properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: type: array items: type: string oidc_configuration: type: object required: - grant_types_supported - introspect_endpoint - issuer - jwks_uri - response_types_supported - token_endpoint - token_endpoint_auth_methods_supported properties: issuer: type: string authorization_endpoint: type: string nullable: true token_endpoint: type: string userinfo_endpoint: type: string nullable: true jwks_uri: type: string response_types_supported: type: array items: type: string enum: - code - id_token token_endpoint_auth_methods_supported: type: array items: $ref: '#/components/schemas/TokenEndpointAuthMethod' client_id: description: The client ID for the idp application. type: string inbound_scim: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' application_id: type: string authenticator_config_id: type: string resource_server_id: type: string discover_endpoint: $ref: '#/components/schemas/SsoConfigEntraIdExternalAuthMethod/properties/discover_endpoint' - type: object required: - type - redirect_uris - scopes - trusted_origins - confidentiality - pkce - application_id - authenticator_config_id - resource_server_id - oidc_configuration - client_id properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: type: array items: type: string scopes: type: array items: type: string trusted_origins: type: array items: type: string login_link: type: string icon: type: string is_tile_visible: type: boolean confidentiality: $ref: '#/components/schemas/Confidentiality' pkce: $ref: '#/components/schemas/PkceConfig' oidc_configuration: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/1/properties/oidc_configuration' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string inbound_scim: $ref: '#/components/schemas/SsoConfigType' application_id: type: string authenticator_config_id: type: string resource_server_id: type: string application_tile_id: type: string - type: object required: - type - client_id - pkce - identifying_claim_name - identity_attribute - authorization_endpoint - token_endpoint - jwks_endpoint - redirect_uri - identity_provider_id properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string pkce: $ref: '#/components/schemas/PkceConfig' id_token_scopes: type: array items: type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' authorization_endpoint: type: string nullable: true token_endpoint: type: string jwks_endpoint: type: string redirect_uri: type: string identity_provider_id: type: string - type: object properties: type: $ref: '#/components/schemas/SsoConfigType' acs_url: type: string description: The Assertion Consumer Service (ACS) URL where the SAML assertions are sent. override_recipient_and_destination: type: boolean description: Flag to override the recipient and destination URLs in the SAML response. recipient_url: type: string description: The recipient URL for the SAML response. destination_url: type: string description: The destination URL for the SAML response. audience_url: type: string description: The URL that identifies the intended audience for the SAML assertion. default_relay_state: type: string description: The default relay state parameter for the SAML response. name_format: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' description: The format of the NameID in the SAML assertion. authentication_context: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/authentication_context' description: The authentication context for the SAML assertion. subject_user_name_attribute: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/subject_user_name_attribute' description: The attribute used for the subject's username in the SAML assertion. sign_envelope: type: boolean description: Flag indicating whether to sign the SAML envelope. sign_assertions: type: boolean description: Flag indicating whether to sign the SAML assertions. signature_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/signature_algorithm' description: The algorithm used for signing the SAML assertions. digest_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/digest_algorithm' description: The algorithm used for the digest of the SAML assertions. encrypt_assertions: type: boolean description: Flag indicating whether to encrypt the SAML assertions. assertion_validity_duration_seconds: type: integer format: int32 description: The duration (in seconds) for which the SAML assertion is valid. assertion_encryption_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/assertion_encryption_algorithm' description: The algorithm used for encrypting the SAML assertions. assertion_key_transport_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/assertion_key_transport_algorithm' description: The algorithm used for key transport when encrypting SAML assertions. assertion_encryption_public_key: type: string description: The public key used for encrypting the SAML assertions. sp_signature_certificates: type: array items: $ref: '#/components/schemas/SsoConfigSamlPartialUpdate/properties/sp_signature_certificates/items' description: The certificates used for signing the SAML assertions. enable_single_log_out: type: boolean description: Flag indicating whether to enable single logout (SLO) functionality. single_log_out_url: type: string description: The URL for single logout (SLO). single_log_out_issuer_url: type: string description: The issuer URL for single logout (SLO). single_log_out_binding: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/single_log_out_binding' description: The binding method for single logout (SLO) requests. single_logout_sign_request_and_response: type: boolean description: Flag indicating whether to sign the single logout (SLO) requests and responses. validate_signed_requests: type: boolean description: Flag indicating whether to validate signed SAML requests. other_sso_urls: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/other_sso_urls' description: Other SSO URLs associated with the configuration. additional_user_attributes: description: Additional user attributes to include in the SAML assertions. type: array items: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/additional_user_attributes' icon: type: string description: The icon associated with the SSO configuration. is_tile_visible: type: boolean description: Flag indicating whether the configuration tile is visible. application_id: type: string description: The application ID associated with the SSO configuration. authenticator_config_id: type: string description: The authenticator configuration ID. application_tile_id: type: string description: The application tile ID. idp_initiated_url: type: string description: The URL for IdP-initiated SSO. sp_initiated_url: type: string description: The URL for SP-initiated SSO. inbound_scim: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' use_short_url: default: false type: boolean description: Changes the EntityID in the SAML response to a shorter version. This is to support applications with URL restrictions. short_sp_initiated_url: type: string description: This is the shortened URL that will be used to initiate a SAML login from the service provider side. Generated and provided by Beyond Identity. This should only be displayed when `use_short_urls` is true. short_entity_id_url: type: string description: This is the shortened URL that we will use as our issuer inside of a SAML response. - type: object required: - type - client_id - pkce - identifying_claim_name - identity_attribute - okta_domain - authorization_endpoint - token_endpoint - jwks_endpoint - redirect_uri - identity_provider_id properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string pkce: allOf: - $ref: '#/components/schemas/PkceConfig' id_token_scopes: type: array items: type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' okta_domain: type: string authorization_endpoint: type: string nullable: true token_endpoint: type: string jwks_endpoint: type: string redirect_uri: type: string identity_provider_id: type: string inbound_scim: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' - type: object required: - type - pkce - oidc_configuration - client_id - client_secret - application_id - authenticator_config_id - okta_registration properties: type: $ref: '#/components/schemas/SsoConfigType' pkce: allOf: - $ref: '#/components/schemas/PkceConfig' oidc_configuration: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/1/properties/oidc_configuration' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string okta_registration: $ref: '#/components/schemas/SsoConfigOktaBiIdp/properties/okta_registration' inbound_scim: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' application_id: type: string authenticator_config_id: type: string - type: object required: - type - company_identifier properties: type: $ref: '#/components/schemas/SsoConfigType' company_identifier: type: string - type: object required: - type - application_id - client_id - client_secret - scim_url - token_endpoint properties: type: $ref: '#/components/schemas/SsoConfigType' allOf: - type: object required: - application_id - client_id - client_secret - scim_url - token_endpoint properties: application_id: type: string client_id: description: The client ID for the scim application. type: string client_secret: description: The client secret for the scim application. type: string scim_url: description: Beyond Identity Scim server endpoint type: string token_endpoint: type: string - type: object required: - type - acs_url - override_recipient_and_destination - audience_url - default_relay_state - name_format - authentication_context - subject_user_name_attribute - sign_envelope - sign_assertions - signature_algorithm - digest_algorithm - encrypt_assertions - assertion_validity_duration_seconds - sp_signature_certificates - enable_single_log_out - validate_signed_requests - additional_user_attributes - application_id - authenticator_config_id - idp_initiated_url - sp_initiated_url properties: type: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' description: The type of SSO configuration. acs_url: type: string expiration_time_seconds: type: integer format: int32 audience_url: type: string digest_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/digest_algorithm' signature_algorithm: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/signature_algorithm' name_format: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' subject_user_name_attribute: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/subject_user_name_attribute' authentication_context: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/authentication_context' additional_user_attributes: type: array items: $ref: '#/components/schemas/SsoConfigWsFed/properties/additional_user_attributes/items' icon: type: string description: The icon associated with the SSO configuration. is_tile_visible: type: boolean description: Flag indicating whether the configuration tile is visible. application_id: type: string description: The application ID associated with the SSO configuration. authenticator_config_id: type: string description: The authenticator configuration ID. application_tile_id: type: string description: The application tile ID. idp_sso_url: type: string idp_issuer_url: type: string metadata_url: type: string inbound_scim: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8/allOf/0' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' get: summary: List SSO Configs for a Realm. description: | To list SSO Configs for a Realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/sso-configs`. The response will contain at most 200 items and may contain a page token to query the remaining items. If page size is not specified, the response will contain 20 items. There is no defined ordering of the list of identities in the response. Note that the maximum and default page sizes are subject to change. When paginating, the page size is maintained by the page token but may be overridden on subsequent requests. Page tokens expire after one week. Requests which specify an expired page token will result in undefined behavior. tags: - SSO Configs operationId: listSsoConfigs parameters: - $ref: '#/components/parameters/correlation_id' - name: tenant_id in: path description: A unique identifier for a tenant. required: true schema: type: string example: 000176d94fd7b4d1 - name: realm_id in: path description: A unique identifier for a realm. required: true schema: type: string example: 19a95130480dfa79 - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - name: type in: query required: false description: The type of sso config to filter by. You may query with multiple types for example "/sso-configs?type=generic_oidc&type=generic_oid_idp" schema: type: array items: $ref: '#/components/schemas/SsoConfigType' - name: is_migrated in: query required: false schema: type: boolean - name: order_by in: query required: false schema: type: string security: - BearerAuth: - 'sso-configs:read' responses: '200': description: Successful response. content: application/json: schema: description: Represents a list of sso configs as a response body. type: object required: - sso_configs - total_size properties: sso_configs: description: The sso configs which are part of the response. type: array items: description: Represents an SSO config as a response body. type: object required: - id - display_name - payload properties: id: description: A unique identifier for an SSO config. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. type: string format: uuid display_name: description: A human-readable name for the SSO config. This name is used for display purposes. type: string payload: oneOf: - type: object required: - type - login_link properties: type: $ref: '#/components/schemas/SsoConfigType' login_link: type: string icon: type: string is_tile_visible: type: boolean - type: object required: - type - redirect_uris - discover_endpoint properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: type: array items: type: string discover_endpoint: $ref: '#/components/schemas/SsoConfigEntraIdExternalAuthMethod/properties/discover_endpoint' - type: object required: - type - redirect_uris properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: type: array items: type: string login_link: type: string icon: type: string is_tile_visible: type: boolean - type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' - type: object required: - type properties: type: description: The type of the SSO configuration. $ref: '#/components/schemas/SsoConfigType' icon: description: The URL or data URI of the icon representing the SSO configuration. type: string is_tile_visible: description: Indicates if the SSO configuration tile is visible to the user. type: boolean - type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' - type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' - type: object required: - type - company_identifier properties: type: $ref: '#/components/schemas/SsoConfigType' company_identifier: type: string - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema/properties/payload/oneOf/8' - type: object required: - type properties: type: description: The type of the SSO configuration. $ref: '#/components/schemas/SsoConfigType' icon: description: The URL or data URI of the icon representing the SSO configuration. type: string is_tile_visible: description: Indicates if the SSO configuration tile is visible to the user. type: boolean total_size: description: The total number of sso configs contained by the Realm. type: integer format: uint minimum: 0 next_page_token: description: The value to be passed as the page_token parameter to retrieve the next page. type: string nullable: true headers: x-correlation-id: description: 'Correlation ID. If supplied with the request, the response must contain the same value. If not supplied with the request, it is generated by the server and returned in the response.' required: true schema: type: string '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}': get: summary: Retrieves an existing SSO Config. description: | To retrieve an existing SSO Config, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/sso-configs/$SSO_CONFIG_ID`. tags: - SSO Configs operationId: GetSsoConfig security: - BearerAuth: - 'sso-configs:read' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' responses: '200': description: The sso config has been found. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: sso config not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' patch: summary: Updates an SSO Config by its ID. description: Updates an SSO Config by its ID. tags: - SSO Configs operationId: UpdateSsoConfig security: - BearerAuth: - 'sso-configs:update' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: $ref: '#/components/schemas/SsoConfigPartialUpdate' required: true responses: '200': description: Successful response. content: application/json: schema: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/post/responses/200/content/application~1json/schema' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: SSO Config not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' delete: summary: Deletes an SSO Config by its ID. description: Deletes an SSO Config by its ID. tags: - SSO Configs operationId: DeleteSsoConfig security: - BearerAuth: - 'sso-configs:delete' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' responses: '200': description: The action was successful and the response body is empty. '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: SSO Config not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:addIdentities': post: tags: - SSO Configs operationId: AddIdentitiesToSsoConfig summary: Associate Identities with an SSO Config description: | To associate identities to an sso config. The request must contain at least one and no more than 1000 identity IDs. security: - BearerAuth: - 'sso-configs:update' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: $ref: '#/components/schemas/SsoConfigAddIdentities' responses: '200': description: The action was successful and the response body is empty. '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' examples: schema: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: identity_ids description: array exceeds 1000 elements headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: Resource server not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:deleteIdentities': post: tags: - SSO Configs operationId: DeleteIdentitiesFromSsoConfig summary: Delete Identities from an SSO Config description: | To delete identities from an sso config. The request must contain at least one and no more than 1000 identities IDs. security: - BearerAuth: - 'sso-configs:update' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: title: Delete Identities from SSO Config description: Request for DeleteIdentitiesFromSsoConfig. type: object properties: identity_ids: description: IDs of the identities to be removed from the sso config. type: array items: type: string minItems: 1 maxItems: 1000 required: - identity_ids examples: Remove Identities: value: identity_ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: The action was successful and the response body is empty. '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: identities_ids description: array exceeds 1000 elements headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: Resource server not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:listIdentityAssociations': get: tags: - SSO Configs operationId: ListIdentitiesForSsoConfig summary: List Identities Directly and Indirectly Associated With an SSO Config. description: | To list identities belonging to an sso config. Note that there may be duplicate identities or an empty array in the response, but as long as there is a `page_token` then pagination should continue. security: - BearerAuth: - 'sso-configs:read' - 'identities:read' - 'groups:read' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' responses: '200': description: | The response will be a JSON object with keys for `identities`. `identities` will be set to an array of identity objects. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identities~1%7Bidentity_id%7D~1sso-configs/get/responses/200/content/application~1json/schema' examples: Success: value: identities: - id: e372db224c06e850 realm_id: 8f5bec58229e6f29 tenant_id: 0001f1f460b1ace6 group_id: 923935b2912304 group_display_name: Test Group display_name: Test Identity create_time: '2022-04-12T05:53:07.119Z' update_time: '2022-06-16T14:31:03.770Z' traits: type: traits_v0 username: test primary_email_address: test@example.com '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/sso-configs/{sso_config_id}/is-identity-assigned': get: summary: Returns if an identity is assigned to the SSO config id. description: | To check if an identity is assigned to the SSO config id, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/identities/$IDENTITY_ID/sso-configs/$SSO_CONFIG_ID/is-identity-assigned`. tags: - SSO Configs operationId: IdentityToSSOConfigCheck parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' security: - BearerAuth: - 'sso-configs:read' responses: '200': description: Successful response. content: application/json: schema: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs~1%7Bsso_config_id%7D~1is-group-assigned/post/responses/200/content/application~1json/schema' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/identities/{identity_id}/sso-configs': get: tags: - SSO Configs operationId: ListSsoConfigsForIdentity summary: List SSO configs directly and indirectly associated with an identity. description: | To list sso configs associated with an identity. This will return all SSO configs that have an association with the specified identity ID. Note that there may be duplicate SSO configs or an empty array in the response, but as long as there is a `page_token` pagination should continue. security: - BearerAuth: - 'sso-configs:read' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/identity_id' responses: '200': description: | The response will be a JSON object with keys for `sso_configs` and `total_size`. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: title: List Identities directly and indirectly associated with an SSO config. description: List Identities Directly and Indirectly Associated With an SSO Config. type: object properties: identities: type: array items: allOf: - $ref: '#/components/schemas/Identity' - properties: group_id: description: 'If the association is through a group, the group ID will be added to the response object.' type: string group_display_name: description: 'If the association is through a group, the group display name will be added to the response object.' type: string maxItems: 200 description: An unordered array of identities corresponding to the request. next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - identities - total_size '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/flow-type-config': get: tags: - Launch Mechanisms summary: Get flow type configuration description: Retrieves the flow type configuration for a tenant or creates a default configuration if one does not exist operationId: GetFlowTypeConfig security: - DirectoryAuth: - 'tenants:read' - 'realms:read' - 'flow-type:read' - 'flow-type:create' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/FlowTypeConfig' '400': description: | Bad request. If the request failed due to invalid fields, the error details will include a FieldViolations. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthenticated. content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: | Permission denied. The error details will include a ResourceInfo describing the authorization failure. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: | Not found. The error details will include a ResourceInfo describing the required resource that was not found. content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: | Already exists. The error details will include a ResourceInfo describing the conflicting resource. content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal. content: application/json: schema: $ref: '#/components/schemas/Error' patch: tags: - Launch Mechanisms summary: Update flow type configuration description: 'Updates the flow type configuration for a tenant, note that this will also create a default configuration if one does not exist' operationId: UpdateFlowTypeConfig security: - DirectoryAuth: - 'tenants:read' - 'realms:read' - 'flow-type:read' - 'flow-type:create' - 'flow-type:update' parameters: - $ref: '#/components/parameters/tenant_id' - $ref: '#/components/parameters/realm_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePlatformFlowTypeConfig' responses: '200': description: OK. content: application/json: schema: $ref: '#/components/schemas/FlowTypeConfig' '400': description: | Bad request. If the request failed due to invalid fields, the error details will include a FieldViolations. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthenticated. content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: | Permission denied. The error details will include a ResourceInfo describing the authorization failure. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: | Not found. The error details will include a ResourceInfo describing the required resource that was not found. content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: | Already exists. The error details will include a ResourceInfo describing the conflicting resource. content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal. content: application/json: schema: $ref: '#/components/schemas/Error' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:addGroups': post: tags: - SSO Configs operationId: AddGroupsToSsoConfig summary: Associate Groups with an SSOConfig description: | To associate groups to an sso config. The request must contain at least one and no more than 1000 group IDs. security: - BearerAuth: - 'sso-configs:update' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: title: Associate Groups with SSO Config description: Request for AddGroupsToSsoConfig. type: object properties: group_ids: description: IDs of the groups to be added to the sso config. type: array items: type: string minItems: 1 maxItems: 1000 required: - group_ids examples: Add Members: value: group_ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: The action was successful and the response body is empty. '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Parameters: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: group_ids description: array exceeds 1000 elements headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: Resource server not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:deleteGroups': post: tags: - SSO Configs operationId: DeleteGroupsFromSsoConfig summary: Delete Groups from an SSO Config description: | To delete groups from an sso config. The request must contain at least one and no more than 1000 group IDs. security: - BearerAuth: - 'sso-configs:update' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: $ref: '#/components/schemas/SsoConfigDeleteGroup' examples: Remove Members: value: group_ids: - e372db224c06e850 - 3a28d4f28b57cc93 responses: '200': description: The action was successful and the response body is empty. '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '404': description: Resource server not found. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}:listGroupAssociations': get: tags: - SSO Configs operationId: ListGroupsForSSOConfig summary: List Groups associated with an SSO config. description: | To list groups associated with an SSO config, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/sso-configs/$SSO_CONFIG_ID/groups`. security: - BearerAuth: - 'sso-configs:read' - 'groups:read' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' responses: '200': description: | The response will be a JSON object with keys for `groups` and `total_size`. `groups` will be set to an array of group objects. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: $ref: '#/components/schemas/SsoConfigListGroups' examples: Success: value: code: bad_request message: invalid parameters details: - type: FieldViolations field_violations: - field: identity_ids description: array exceeds 1000 elements '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/groups/{group_id}/sso-configs': get: tags: - SSO Configs operationId: ListSsoConfigsForGroup summary: List SSO Configs associated with a Group. description: | To list sso configs associated with a group. This will return all SSO configs that have an association with the specified group ID. security: - BearerAuth: - 'sso-configs:read' parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' - $ref: '#/components/parameters/group_id' responses: '200': description: | The response will be a JSON object with keys for `sso_configs` and `total_size`. `total_size` will be set to the total number of items matched by the list request. If there are more items to be returned by the requested query, the response will also contain a key called `next_page_token`. content: application/json: schema: title: List SSO configs directly and indirectly associated with an identity. description: List SSO configs directly and indirectly associated with an identity. type: object properties: sso_configs: type: array items: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/content/application~1json/schema/properties/sso_configs/items' total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - sso_configs - total_size '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}/is-group-assigned': post: summary: Check if any of the groups provided are associated with the SSO Config ID. description: Check if any of the groups provided are associated with the SSO Config ID. tags: - SSO Configs operationId: SSOIsGroupAssigned parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' requestBody: content: application/json: schema: type: object description: | A collection of group ids. properties: group_ids: type: array items: type: string description: A group id. required: true security: - BearerAuth: - 'sso-configs:read' responses: '200': description: Successful response. content: application/json: schema: type: object description: | Used to indicate if the result of a request is associated with an SSO Config. This could be through an Identity or a group depending on the endpoint used. required: - is_assigned_to_sso_config headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/applications/{application_id}/sso-configs-id': get: summary: Returns the ID of the SSO Config associated with the Application. description: Returns the ID of the SSO Config associated with the application. tags: - SSO Configs operationId: ApplicationIdToSSOConfigId parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/components/parameters/application_id' security: - BearerAuth: - 'sso-configs:read' responses: '200': description: Successful response. content: application/json: schema: $ref: '#/components/schemas/ApplicationSsoResponse' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/sso-configs/{sso_config_id}/test': post: summary: Tests an SSO Config. description: Tests an SSO Config. tags: - SSO Configs operationId: TestSsoConfig parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers/get/parameters/3' security: - BearerAuth: - 'sso-configs:read' responses: '200': description: The sso config has been tested. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: description: Represents an SSO config test response body. type: object required: - identity_providers - oidc_applications properties: identity_providers: type: array items: $ref: '#/components/schemas/IdentityProviderTestResponse' oidc_applications: type: array items: description: Represents an SSO config test response body. type: object required: - application_id - display_name - is_success - status_code properties: application_id: type: string display_name: type: string is_success: type: boolean status_code: type: string error_context: type: string example: identity_providers: - identity_provider_id: '123' display_name: Okta IDP is_successful: true status_code: 200 - identity_provider_id: '456' display_name: Ping IDP is_successful: false status_code: 500 error_context: | zeropw-rolling - Bad Request
400

Bad Request

Your request resulted in an error. The 'redirect_uri' parameter must be a Login redirect URI in the client app settings: https://zeropw-rolling-admin.oktapreview.com/admin/app/oidc_client/instance/0oa24fkg4hed8IxFK0h8#tab-general

Go to Homepage
END_USER_APP

Error: The 'redirect_uri' parameter must be a Login redirect URI in the client app settings: https://zeropw-rolling-admin.oktapreview.com/admin/app/oidc_client/instance/0oa24fkg4hed8IxFK0h8#tab-general


                          
'400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/identity-providers': get: operationId: listIdentityProviders tags: - Identity Provider summary: Lists Identity Providers by Realm. description: Lists Identity Providers by Realm. parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - name: sso_config_id in: path required: true description: A unique identifier of the sso configuration schema: type: string - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/page_token' responses: '200': description: The list operation was successful. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: $ref: '#/components/schemas/IdentityProviderListResponse' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' post: operationId: createIdentityProvider tags: - Identity Provider summary: Creates a new identity provider. description: Creates a new identity provider. parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' requestBody: content: application/json: schema: description: Represents an identity provider. type: object required: - protocol_config - display_name properties: id: description: | A unique identifier identifying an identity provider within a realm. This is automatically set on creation. This field is immutable and read-only. type: string readOnly: true tenant_id: type: string description: | A unique identifier for the identity's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001f1f460b1ace6 realm_id: type: string description: | A unique identifier for the identity's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 8f5bec58229e6f29 display_name: type: string description: | The human-readable name associated with the identity provider. protocol_config: description: | The kind of protocol we should use to communicate with the identity provider. allOf: - $ref: '#/components/schemas/IdentityProviderProtocolConfig' responses: '200': description: The identity provider has been created. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: $ref: '#/components/schemas/IdentityProviderProtocolConfigResponse' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '/v1/tenants/{tenant_id}/realms/{realm_id}/identity-providers/{identity_provider_id}': patch: operationId: updateIdentityProvider tags: - Identity Provider summary: Updates an identity provider. description: Updates an identity provider. parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers~1%7Bidentity_provider_id%7D/get/parameters/3' requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentityProviderUpdate' responses: '200': description: The identity provider has been updated. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: $ref: '#/components/schemas/IdentityProviderResponse' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' get: operationId: getIdentityProvider tags: - Identity Provider summary: Retrieves data about an Identity Provider. description: Retrieves data about an identity provider. parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - name: identity_provider_id in: path description: A unique identifier for an identity provider. required: true schema: type: string example: e372db224c06e850 responses: '200': description: The requested identity provider. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' content: application/json: schema: $ref: '#/components/schemas/IdentityProviderResponse' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' delete: operationId: deleteIdentityProvider tags: - Identity Provider summary: Deletes an Identity Provider. description: Deletes an identity provider. parameters: - $ref: '#/components/parameters/correlation_id' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/1' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/parameters/2' - $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1identity-providers~1%7Bidentity_provider_id%7D/get/parameters/3' responses: '200': description: The identity provider has been deleted. headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '400': description: The request is malformed. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '401': description: An invalid Authorization token has been supplied. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '403': description: The supplied authorization token doesn't allow the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' '500': description: Internal server error. content: application/json: schema: $ref: '#/components/schemas/Error' headers: x-correlation-id: $ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1sso-configs/get/responses/200/headers/x-correlation-id' components: parameters: tenant_id: name: tenant_id in: path description: A unique identifier for a tenant. required: true schema: type: string example: 000176d94fd7b4d1 realm_id: name: realm_id in: path description: A unique identifier for a realm. required: true schema: type: string example: 19a95130480dfa79 group_id: name: group_id in: path description: A unique identifier for a group. required: true schema: type: string example: 81490afab171aef0 identity_id: name: identity_id in: path description: A unique identifier for an identity. required: true schema: type: string example: e372db224c06e850 role_id: name: role_id in: path description: A unique identifier for a role. required: true schema: type: string example: fb785d40cbe4fc0d groups_page_size: name: groups_page_size in: query description: | Number of groups returned per page for ListRoleMembers. The response will include at most this many groups but may include fewer. If this value is omitted, the response will return the default number of groups allowed by ListRoleMembers. schema: type: integer format: uint32 minimum: 0 groups_skip: name: groups_skip in: query description: | Number of groups to skip for ListRoleMembers. This is the zero-based index of the first group result. schema: type: integer format: uint32 minimum: 0 default: 0 identities_page_size: name: identities_page_size in: query description: | Number of identities returned per page for ListRoleMembers. The response will include at most this many identities but may include fewer. If this value is omitted, the response will return the default number of identities allowed by ListRoleMembers. schema: type: integer format: uint32 minimum: 0 identities_skip: name: identities_skip in: query description: | Number of identities to skip for ListRoleMembers. This is the zero-based index of the first identity result. schema: type: integer format: uint32 minimum: 0 default: 0 resource_server_id_query: name: resource_server_id in: query description: The unique identifier of the resource server used to filter roles. schema: type: string minLength: 1 credential_id: name: credential_id in: path description: A unique identifier for a credential. required: true schema: type: string example: b5a31610800dda18 credential_binding_job_id: name: credential_binding_job_id in: path description: A unique identifier for a credential binding job. required: true schema: type: string example: 5c4137af5e70413a batch_credential_binding_job_id: name: batch_credential_binding_job_id in: path description: A unique identifier for a batch credential binding job. required: true schema: type: string example: c15e004f-a7bc-459b-b035-cec40e07f537 theme_id: name: theme_id in: path description: A unique identifier for a theme. required: true schema: type: string example: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47 application_id: name: application_id in: path description: A unique identifier for an application. required: true schema: type: string example: 38833c36-6f47-4992-9329-ea0a00915137 authenticator_config_id: name: authenticator_config_id in: path description: A unique identifier for an authenticator configuration. required: true schema: type: string example: 73731b7f-eb76-4143-9b4b-81a720385f5a resource_server_id: name: resource_server_id in: path description: A unique identifier for a resource server. required: true schema: type: string example: 84db69f5-48a8-4c11-8cda-1bae3a73f07e token_id: name: token_id in: path description: 'A unique identifier for a token. For JWS tokens, this corresponds to the value of the `jti` token claim.' required: true schema: type: string principal_id: name: principal_id in: query description: A unique identifier for a principal. This might be an application ID or an identity ID depending on the type of principal. required: false schema: type: string principal_type: name: principal_type in: query description: | Type of the principal. Allowable values are: - `application` - `identity` required: false schema: type: string filter: name: filter in: query description: | Filter to constrain the response. The response will only include resources matching this filter. Filters follow the SCIM grammar from [RFC-7644 Section 3.4.2.2](https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2). schema: type: string page_size: name: page_size in: query description: | Number of items returned per page. The response will include at most this many results but may include fewer. If this value is omitted, the response will return the default number of results allowed by the method. schema: type: integer format: uint32 minimum: 0 page_token: name: page_token in: query description: | Token to retrieve the subsequent page of the previous request. All other parameters to the list endpoint should match the original request that provided this token unless otherwise specified. schema: type: string skip: name: skip in: query description: | Number of items to skip. This is the zero-based index of the first result. schema: type: integer format: uint32 minimum: 0 default: 0 scim_user_id: name: user_id in: path description: ID of the user. This corresponds to the identity ID. required: true schema: type: string minLength: 1 scim_group_id: name: group_id in: path description: ID of the group. required: true schema: type: string minLength: 1 scim_filter: name: filter in: query description: | Filter for list methods. Filters follow the SCIM grammar from [RFC 7644 Section 3.4.2.2](https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2). schema: type: string scim_count: name: count in: query description: | Specifies the desired maximum number of query results per page. A negative value is treated as 0, which indicates that the response should not contain any resources. Note that the response may include fewer results than the requested count. schema: type: integer format: uint32 minimum: 0 default: 0 scim_start_index: name: startIndex in: query description: The 1-based index of the first query result. schema: type: integer format: uint32 minimum: 1 default: 1 correlation_id: name: x-correlation_id description: 'Correlation ID. If supplied with the request, the response must contain the same value. If not supplied with the request, it is generated by the server and returned in the response.' in: header required: true schema: type: string schemas: Tenant: title: Tenant type: object description: | A tenant represents an organization in the Beyond Identity Cloud. Tenants contain all data necessary for that organization to operate. properties: id: type: string description: | A unique identifier for the tenant. This is automatically generated on creation. This field is immutable and read-only. readOnly: true example: 000176d94fd7b4d1 display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the tenant. This name is used for display purposes. example: Test Tenant create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the tenant was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-01-28T12:00:02.423Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the tenant was last updated. This is automatically updated when the tenant is updated. This field is read-only. readOnly: true example: '2022-04-19T15:17:21.186Z' Realm: title: Realm type: object description: | A realm is a unique administrative domain within a tenant. Realms may be used to define multiple development environments or for isolated administrative domains. properties: id: type: string description: | A unique identifier for the realm. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the tenant. readOnly: true example: 19a95130480dfa79 tenant_id: type: string description: | A unique identifier of the realm's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001f1f460b1ace6 display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the realm. This name is used for display purposes. example: Test Realm classification: type: string description: Classification of the realm. Can be either SECURE_WORFORCE or SECURE_CUSTOMER example: SECURE_CUSTOMER create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the realm was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-05-18T18:00:01.167Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the realm was last updated. This is automatically updated when the realm is updated. This field is read-only. readOnly: true example: '2022-05-19T14:23:01.327Z' Group: title: Group type: object description: | A group is a logical collection of identities. Groups are commonly used as a predicate in a policy rule. properties: id: type: string description: | A unique identifier for a group. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 81490afab171aef0 realm_id: type: string description: | A unique identifier for the group's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 7df92e4a38ba0993 tenant_id: type: string description: | A unique identifier for the group's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001b42d80372976 display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the group. This name is used for display purposes. example: Realm Administrators description: type: string maxLength: 300 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A free-form text field to describe a group. example: A group of realm administrators. create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the group was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-03-14T03:42:52.905657Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the group was last updated. This is automatically updated when the group is updated. This field is read-only. readOnly: true example: '2022-06-14T05:55:23.823187Z' Identity: title: Identity type: object description: | An identity is a unique identifier that may be used by an end-user to gain access governed by Beyond Identity. properties: id: type: string description: | A unique identifier for the identity. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: e372db224c06e850 realm_id: type: string description: | A unique identifier for the identity's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 8f5bec58229e6f29 tenant_id: type: string description: | A unique identifier for the identity's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001f1f460b1ace6 display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the identity. This name is used for display purposes. example: Test Display create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the identity was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-04-12T05:53:07.119Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the identity was last updated. This is automatically updated when the identity is updated. This field is read-only. readOnly: true example: '2022-06-16T14:31:03.770Z' status: type: string description: | Indicator for the identity's administrative status. If 'active', the identity is able to generate passkeys and login. If 'suspended', the identity is unable to generate passkeys or login. example: active traits: description: | A collection of properties to describe an identity. All traits contain a `type` key which describes the specific traits schema. oneOf: - $ref: '#/components/schemas/Traits_v0' discriminator: propertyName: type mapping: traits_v0: '#/components/schemas/Traits_v0' enrollment_status: type: string enum: - ENROLLED - PENDING - INVITE_FAILED - UNENROLLED description: | Indicator for the identity's enrollment status. If 'ENROLLED', the identity has 1 or more active passkeys. If 'PENDING', the identity has no active passkeys and 1 or more pending enrollments. If 'INVITE_FAILED', the identity has no active passkeys, no pending enrollments, and 1 or more failed enrollments. If 'UNENROLLED', the identity is not enrolled in the organization. May be undefined. This field is output-only. example: ENROLLED readOnly: true Traits_v0: title: Traits_v0 description: Set of traits associated with an identity. type: object properties: type: type: string description: | The type of the traits schema. This value must be provided on all writes. example: traits_v0 username: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: 'A required, unique, case-insensitive username for an identity in the realm.' example: test primary_email_address: type: string description: Email address serving as primary contact for identity. example: test@example.com secondary_email_address: type: string description: | An additional email address for the user. external_id: type: string description: | An ID issued by the provisioning client. It is assumed that the value's uniqueness is controlled by the client setting the value. family_name: type: string description: | The family name or last name in most Western languages. given_name: type: string description: | The given name or first name in most Western languages. formatted_name: type: string description: | The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g. "Ms. Barbara Jane Jensen, III"). middle_name: type: string description: | The middle name of the user, if applicable. honorific_prefix: type: string description: | Honorifics like "Mr.", "Mrs.", "Dr.", etc. honorific_suffix: type: string description: | Suffixes such as "Jr.", "Sr.", "III", etc. nick_name: type: string description: | A nickname the user goes by. title: type: string description: | The user's job title. primary_phone: type: string description: | The primary contact phone number for the user. secondary_phone: type: string description: | An additional phone number for the user. profile_url: type: string description: | A URL to the user's profile. photo: type: string description: | A URL to the user's photo. preferred_language: type: string description: | The user's preferred language. locale: type: string description: | The locale of the user, typically in the format of language-region. timezone: type: string description: | The timezone of the user. formatted_address: type: string description: | The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. street_address: type: string description: | The full street address component, which may include house number, street name, P.O. box, and multi-line extended street address information. This attribute MAY contain newlines. locality: type: string description: | The locality or city of the user. region: type: string description: | The region or state of the user. postal_code: type: string description: | The zip code or postal code of the user. country: type: string description: | The country of the user. user_type: type: string description: | Used to identify the relationship between the organization and the user. Typical values used might be 'Contractor', 'Employee', 'Intern', 'Temp', 'External', and 'Unknown', but any value may be used. employee_number: type: string description: | The employee number assigned to the user, typically based on order of hire or association with an organization. cost_center: type: string description: | The cost center associated with the user. organization: type: string description: | The organization the user belongs to. division: type: string description: | The division of the organization the user belongs to. department: type: string description: | The department of the organization the user belongs to. manager_id: type: string description: | The unique identifier for the user's manager. manager_name: type: string description: | The name of the user's manager. required: - type Role: title: Role type: object description: | A role is a logical collection of scopes. Roles are commonly used to limit access control. The scopes belonging to a role are limited to its associated resource server. However, note that the resource server may change independently of the role. If scopes are added to or removed from a resource server, its associated roles must be manually updated using the AddRoleScopes or DeleteRoleScopes methods. properties: id: type: string description: | A unique identifier for a role. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: fb785d40cbe4fc0d resource_server_id: type: string description: | A unique identifier for the role's resource server. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 7b5a4325-00e0-4379-bd7b-3e5e7e30b09e realm_id: type: string description: | A unique identifier for the role's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: bb26e0e8ecdef843 tenant_id: type: string description: | A unique identifier for the role's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 00010036778ce59f display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the role. This name is used for display purposes. example: Help Desk description: type: string maxLength: 300 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A free-form text field to describe a role. example: Customer support personnel. create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the role was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2023-02-14T18:18:58.332247Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the role was last updated. This is automatically updated when the group is updated. This field is read-only. readOnly: true example: '2023-02-14T18:18:58.332247Z' ListRealmsResponse: title: List Realms Response description: Response for ListRealms. type: object properties: realms: type: array items: $ref: '#/components/schemas/Realm' maxItems: 200 description: An unordered array of realms corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - realms - total_size ListRolesResponse: title: List Roles Response description: Response for ListRoles. type: object properties: groups: type: array items: $ref: '#/components/schemas/Role' maxItems: 200 description: An unordered array of roles corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - roles - total_size ListRoleMembersResponse: title: List Role Members Response description: Response for ListRoleMembers. type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' maxItems: 200 description: An unordered array of groups corresponding to the request. total_groups_size: type: integer format: uint32 description: | Total number of group results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 identities: type: array items: $ref: '#/components/schemas/Identity' maxItems: 200 description: An unordered array of identities corresponding to the request. total_identities_size: type: integer format: uint32 description: | Total number of identity results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - groups - total_groups_size - identities - total_identities_size ListRoleScopesResponse: title: List Role Scopes Response description: Response for ListRoleScopes. type: object properties: scopes: type: array items: type: string maxItems: 200 description: An unordered array of scopes corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - scopes - total_size ListIdentitiesResponse: title: List Identities Response description: Response for ListIdentities. type: object properties: identities: type: array items: $ref: '#/components/schemas/Identity' maxItems: 200 description: An unordered array of identities corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - identities - total_size ListIdentityGroupsResponse: title: List Identity Groups Response description: Response for ListIdentityGroups. type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' maxItems: 200 description: An unordered array of groups corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - groups - total_size ListIdentityRolesResponse: title: List Identity Roles Response description: Response for ListIdentityRoles. type: object properties: roles: type: array items: $ref: '#/components/schemas/Role' maxItems: 200 description: An unordered array of roles corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - roles - total_size ListGroupsResponse: title: List Groups Response description: Response for ListGroups. type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' maxItems: 200 description: An unordered array of groups corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - groups - total_size ListGroupMembersResponse: title: List Group Members Response description: Response for ListGroupMembers. type: object properties: identities: type: array items: $ref: '#/components/schemas/Identity' maxItems: 200 description: An unordered array of identities corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - identities - total_size ListGroupRolesResponse: title: List Group Roles Response description: Response for ListGroupRoles. type: object properties: roles: type: array items: $ref: '#/components/schemas/Role' maxItems: 200 description: An unordered array of roles corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - roles - total_size Credential: title: Credential description: | A credential is also known as a passkey. This is the public-private key pair that belongs to an identity. type: object properties: id: type: string description: | A unique identifier for a credential. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: f3e87aa26a696372 identity_id: type: string description: | A unique identifier for the credential's identity. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 4a2719e73d6d972d realm_id: type: string description: | A unique identifier for the credential's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: d65cc516f7f22fdd tenant_id: type: string description: | A unique identifier for the credential's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: f1a7309c1e3d1e85 state: type: string enum: - ACTIVE - REVOKED description: | A string representing the current state of the credential. The value `ACTIVE` indicates that the credential can be used to authenticate with Beyond Identity. The value `REVOKED` indicates that the credential has been revoked and cannot be used to authenticate with Beyond Identity. readOnly: true example: ACTIVE csr_type: type: string enum: - JWT - WEBAUTHN - FIDO2 description: | A string representing the type of certificate signing request that created this credential. The value `JWT` indicates that the CSR was delivered in the form of a JWT. The value `WEBAUTHN` indicates that the CSR was delivered in the form of a WebAuthn attestation response. `FIDO2` indicates that `raw` contains a FIDO2 WebAuthn (Level 2 at the time of writing) attestation response object. readOnly: true example: JWT jwk_json: type: string description: | The public key of the Credential in JWK format, as specified by RFC-7517. This field is immutable and read-only. readOnly: true example: '{"crv":"P-256","kty":"EC","x":"2MRhz05PJPq3BUfB18AT3HqgWEkI3VpWUg1MWi8rz1g","y":"YtvLYwGEqYQaoDVok2fVziJT4fu7DFPz3hy96FTAelQ"}' jwk_thumbprint: type: string description: | The base64 URL encoding of the JWK thumbprint of the public key, as specified by RFC-7638. This field is immutable and read-only. readOnly: true example: UW-uVNL0mP1vcLjHrTBxibNgCEe_PD0HIsE3FrbYjPA= create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the credential was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the credential was last updated. This is automatically updated when the credential is updated. This field is read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' CredentialBindingJob: title: CredentialBindingJob description: | A credential binding job defines the state of binding a new credential to an identity. The state includes creation of the credential binding job to delivery of the credential binding method to completion of the credential binding. type: object properties: id: type: string description: | A unique identifier for a credential binding job. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 86b4f51481f09321 identity_id: type: string description: | A unique identifier for the credential binding job's identity. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 3d227b0d5949969d realm_id: type: string description: | A unique identifier for the credential binding job's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 9602e246c2ead9b2 tenant_id: type: string description: | A unique identifier for the credential binding job's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: ce5ace5fc7e14d6a credential_id: type: string description: | A unique identifier for the credential that was bound via the credential binding job. This field will only be populated if the credential binding job has successfully been used to bind a credential to an identity. example: 9802966246819b35 batch_id: type: string description: | A unique identifier for the batch that this credential binding job is associated with. This field is immutable and read-only. This field will only be populated if the credential binding job was created as part of a batch. readOnly: true example: 9802966246819b35 delivery_method: type: string enum: - RETURN - EMAIL description: | The method by which a credential binding link is delivered to the target authenticator or identity. The value `RETURN` indicates that a credential binding link will be returned to the caller upon creation of the credential binding job. The value `EMAIL` indicates that a credential binding link will be sent to the email address associated with the identity. state: type: string enum: - LINK_SENT - LINK_OPENED - REQUEST_DELIVERED - COMPLETE - EXPIRED - FAILED_TO_SEND - REVOKED description: | The current state of the credential binding job. `LINK_SENT` indicates that the credential binding link associated with the job was sent to its target authenticator or identity. `LINK_OPENED` indicates that the credential binding link associated with the job was opened by its target identity. `REQUEST_DELIVERED` indicates that the credential binding request has been successfully delivered to its target authenticator. `COMPLETE` indicates that a credential was successfully bound to an identity. `EXPIRED` indicates that the credential binding job has expired. `FAILED_TO_SEND` indicates that the credential binding request failed to send via email. `REVOKED` indicates that the credential binding job has been revoked. readOnly: true example: COMPLETE post_binding_redirect_uri: type: string description: | The URI to which the caller will be redirected after successfully binding a credential to an identity. This field is optional. If not specified, the authenticator will not attempt to redirect to a new location after binding. example: 'http://example.com/callback' authenticator_config: type: object description: | Representation of an authenticator configuration. This prescribes how an identity may authenticate themselves with Beyond Identity. properties: config: description: | An object specifying the settings for the supported authenticator type. The Hosted Web authenticator configuration is not supported in this field. It must be created separately and then referenced by its ID in the `authenticator_config_id` field. oneOf: - $ref: '#/components/schemas/AuthenticatorConfig/properties/config/oneOf/0' - $ref: '#/components/schemas/AuthenticatorConfig/properties/config/oneOf/2' authenticator_config_id: type: string description: | The ID of the authenticator configuration to be used to build the credential binding job. This field is immutable. example: 76e9eab521a8b734 expire_time: type: string format: date-time description: | A timestamp that represents when the credential binding link associated with the credential binding job will expire. This field is immutable and read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the credential binding job was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the credential binding job was last updated. This is automatically updated when the credential binding job is updated. This field is read-only. readOnly: true example: '2022-05-12T20:29:47.636497Z' ListCredentialsResponse: title: List Credentials Response description: Response for ListCredentials. type: object properties: credentials: type: array items: $ref: '#/components/schemas/Credential' maxItems: 200 description: | An unordered array of credentials corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - credentials - total_size ListCredentialBindingJobsResponse: title: List Credential Binding Jobs Response description: Response for ListCredentialBindingJobs. type: object properties: credential_binding_jobs: type: array items: $ref: '#/components/schemas/CredentialBindingJob' maxItems: 200 description: | An unordered array of credential binding jobs corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - credential_binding_jobs - total_size Theme: title: Theme description: | A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email. type: object properties: id: type: string description: | A unique identifier for a theme. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47 tenant_id: type: string description: | A unique identifier for the theme's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001b42d80372976 realm_id: type: string description: | A unique identifier for the theme's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 7df92e4a38ba0993 create_time: type: string format: date-time description: | Timestamp of when the theme was created. This field is immutable and read-only. readOnly: true example: '2022-07-28T18:00:00.000Z' update_time: type: string format: date-time description: | Timestamp of when the theme was last updated. This field is read-only. readOnly: true example: '2022-07-30T16:00:00.000Z' email_realm_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: Realm name that is used in email templates. example: Realm Administrators logo_url_light: type: string description: URL for resolving the logo image for light mode. example: 'https://example.com/logo_url_light.png' logo_url_dark: type: string description: URL for resolving the logo image for dark mode. example: 'https://example.com/logo_url_dark.png' support_url: type: string format: url description: URL for the customer support portal. example: 'https://example.com/support' button_color: type: string description: Hexadecimal color code to use for buttons. example: '#4673D3' button_text_color: type: string description: Hexadecimal color code to use for button text. example: '#FFFFFF' Confidentiality: description: | The confidentiality of the client, as prescribed by OAuth 2.0 and OIDC. Confidentiality is based on a client's ability to authenticate securely with the authorization server (i.e., ability to maintain the confidentiality of their client credentials). Allowable values are: - `confidential`: Clients capable of maintaining the confidentiality of their credentials (e.g., client implemented on a secure server with restricted access to the client credentials), or capable of secure client authentication using other means. - `public`: Clients incapable of maintaining the confidentiality of their credentials (e.g., clients executing on the device used by the resource owner, such as an installed native application or a web browser-based application), and incapable of secure client authentication via any other means. type: string enum: - confidential - public example: confidential GrantType: type: array items: type: string enum: - authorization_code - client_credentials example: authorization_code description: | Grant types supported by this application's `token` endpoint. Allowable values are: - `authorization_code`: The authorization code grant type defined in OAuth 2.0, Section 4.1. Namely, the client may authorize to the `token` endpoint with a grant code which it obtains via the `authorize` endpoint. - `client_credentials`: The client credentials grant type defined in OAuth 2.0, Section 4.4. Namely, the client may authorize to the `token` endpoint with a client credentials tuple of `client_id` and `client_secret`. TokenConfiguration: description: Properties of a token issued for an application. type: object required: - expires_after properties: expires_after: type: integer format: uint32 description: | Time after minting, in seconds, for which the token will be considered valid. minimum: 0 example: 86400 token_signing_algorithm: type: string enum: - RS256 description: | Signing algorithm to use for an application token. The only allowable value at present is `RS256`. default: RS256 example: RS256 subject_field: type: string enum: - id - email - username description: | Property of a principal which is used to fill the subject of a token issued for this application. default: id example: id PkceConfig: type: string enum: - disabled - plain - s256 description: | PKCE code challenge methods supported for applications, as defined by [RFC-7636](https://datatracker.ietf.org/doc/html/rfc7636). Allowable values are: - `disabled` : PKCE is disabled for this application. This is the default state if the `pkce` field is left blank. Please note that public OIDC and OAuth2 configured applications MUST enable PKCE support. Confidential clients can leave PKCE disabled if they choose. - `plain` : PKCE is enabled for this application. The server will correlate the `code_challenge` and `code_verifier` between the `authorize` and `token` requests. In this configuration, those fields are required to be identical. This is the lower security option for PKCE support and should only be used by legacy clients, or clients that don't support `s256`. - `s256` : PKCE is enabled for this application, and the server will correlate the `code_challenge` and `code_verifier` between the `authorize` and `token` requests. In this configuration, those fields are required to equate as follows: `code_challenge` = `base64url(sha256(ascii(code_verifier)))`. This is the higher security option and should always be preferred if it is supported by the client. example: s256 SubjectField: description: | Defines which field should be used to populate the subject field of an id token. - `id` - The user ID is used. - `email` - The user email is used. - `username` - The username is used. type: string enum: - id - email - username - external_id TokenEndpointAuthMethod: description: | Indicator of the requested authentication method for the token endpoint. Allowable values are: - `client_secret_post`: The client uses the HTTP POST parameters as defined in OAuth 2.0, Section 2.3.1. Namely, `client_id` and `client_secret` are sent in the body of the POST request. - `client_secret_basic`: The client uses HTTP Basic as defined in OAuth 2.0, Section 2.3.1. Namely, `client_id` and `client_secret` are sent in the Basic Authorization header. - `none`: The `client_secret` is not part of the request body and there is no authorization header. This endpoint authentication method is only allowed if the application has `confidentiality` set to `confidential`. Deprecation Notice: This field is deprecated. The API will ignore the value of this field in requests. In responses, confidential applications will always have `client_secret_basic` and public applications will always have `none`. On authentication, confidential applications may use both `client_secret_post` and `client_secret_basic`. Public applications may only use `none`. **This field is scheduled for removal on August 1, 2023** type: string deprecated: true enum: - client_secret_basic - client_secret_post - none example: client_secret_basic Application: title: Application type: object description: | An application represents a client application that uses Beyond Identity for authentication. This could be a native app, a single-page application, regular web application, or machine-to-machine application credentials. properties: id: type: string description: | A unique identifier for an application. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 38833c36-6f47-4992-9329-ea0a00915137 realm_id: type: string description: | A unique identifier for the application's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: caf2ff640497591a tenant_id: type: string description: | A unique identifier for the application's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 00011f1183c67b69 resource_server_id: type: string description: | A unique identifier for the application's resource server. At present, the only available resource server is for the Beyond Identity Management API. Referencing this resource server from an application will allow that application to grant access to Beyond Identity's APIs. When not present, this application may provide authentication (identity) but not authorization (access). example: 84db69f5-48a8-4c11-8cda-1bae3a73f07e authenticator_config_id: type: string description: | A unique identifier for the application's authenticator configuration. This field is unused for `oidc` and `oauth2` applications when `grant_type=client_credentials`. example: 73731b7f-eb76-4143-9b4b-81a720385f5a display_name: type: string description: | A human-readable name for the application. This name is used for display purposes. example: Pet Application is_managed: type: boolean description: | A boolean indicating whether the application is managed by Beyond Identity. Managed applications may not be modified by the user. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: false protocol_config: description: Represents an application protocol configuration. oneOf: - title: OAuth 2.0 description: OAuth2 protocol configuration. type: object required: - type properties: type: type: string enum: - oauth2 allowed_scopes: type: array items: type: string example: 'pets:read' description: | Scopes to which this application can grant access. If this application references a resource server, this set of scopes must be a subset of the resource server's available scopes. If this application does not reference a resource server, then this application can only be used for authentication and thereby `scopes` must necessarily be empty. client_id: type: string description: | The client ID for this application. This is automatically set on creation. This field is output-only. readOnly: true example: AYYNcuOSpfqIf33JeegCzDIT client_secret: type: string description: | The client secret to authenticate as this application; typically, as a Basic Authorization header. This is automatically set on creation. This field is output-only. This field is present only when confidentiality is `confidential`. readOnly: true example: wWD4mPzdsjms1LPekQSo0v9scOHLWy5wmMtKAR2JNhJPAKXv confidentiality: $ref: '#/components/schemas/Confidentiality' token_endpoint_auth_method: $ref: '#/components/schemas/TokenEndpointAuthMethod' grant_type: $ref: '#/components/schemas/GrantType' redirect_uris: type: array items: type: string example: 'https://auth.mypetapp.com/callback' description: | A list of valid URIs to redirect the resource owner's user-agent to after completing its interaction with the authorization server. See https://datatracker.ietf.org/doc/html/rfc6749#section-3.1.2 for more information. token_configuration: $ref: '#/components/schemas/TokenConfiguration' pkce: $ref: '#/components/schemas/PkceConfig' token_format: description: | Allowed access token formats for this application. token type. Allowable values are: - `self_contained`: token in JWT format. - `referential`: Encoded token which requires /introspect call in order to retrieve token claims. type: string enum: - self_contained - referential example: self_contained default: self_contained - title: OIDC description: OIDC protocol configuration. type: object required: - type properties: type: type: string enum: - oidc allowed_scopes: type: array items: type: string example: 'pets:read' description: | Scopes to which this application can grant access. If this application references a resource server, this set of scopes must be a subset of the resource server's available scopes. If this application does not reference a resource server, then this application can only be used for authentication and thereby `scopes` must necessarily be empty. Note that OIDC requests may accept OpenID Connect standard scopes as well as resource server scopes, but the OpenID Connect scopes should not be defined on the application itself. Currently, the only OpenID Connect supported scope is `openid`. client_id: type: string description: | The client ID for this application. This is automatically set on creation. This field is output-only. readOnly: true example: AYYNcuOSpfqIf33JeegCzDIT client_secret: type: string description: | The client secret to authenticate as this application; typically, as a Basic Authorization header. This is automatically set on creation. This field is output-only. This field is present only when confidentiality is `confidential`. readOnly: true example: wWD4mPzdsjms1LPekQSo0v9scOHLWy5wmMtKAR2JNhJPAKXv confidentiality: $ref: '#/components/schemas/Confidentiality' token_endpoint_auth_method: $ref: '#/components/schemas/TokenEndpointAuthMethod' grant_type: $ref: '#/components/schemas/GrantType' redirect_uris: type: array items: type: string example: 'https://auth.mypetapp.com/callback' description: | A list of valid URIs to redirect the resource owner's user-agent to after completing its interaction with the authorization server. See https://datatracker.ietf.org/doc/html/rfc6749#section-3.1.2 for more information. token_configuration: $ref: '#/components/schemas/TokenConfiguration' pkce: $ref: '#/components/schemas/PkceConfig' token_format: $ref: '#/components/schemas/Application/properties/protocol_config/oneOf/0/properties/token_format' - $ref: '#/components/schemas/SsoConfigPayload/oneOf/4' AuthenticatorConfig: title: Authenticator Configuration type: object description: | Representation of an authenticator configuration. This prescribes how an identity may authenticate themselves with Beyond Identity. properties: id: type: string description: | A unique identifier for an authenticator configuration. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 73731b7f-eb76-4143-9b4b-81a720385f5a realm_id: type: string description: | A unique identifier for the authenticator configuration's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: caf2ff640497591a tenant_id: type: string description: | A unique identifier for the authenticator configuration's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 00011f1183c67b69 display_name: type: string description: | A human-readable name for the authenticator configuration. This name is used for display purposes. example: Pet Authenticator Configuration config: description: | An object specifying the settings for the supported authenticator type. oneOf: - title: Embedded SDK Authenticator description: Configuration options for the embedded SDK authenticator. type: object required: - type - invoke_url - trusted_origins properties: invocation_type: default: automatic description: | The method used to invoke the `invoke_url` in the embedded authenticator config type. The two methods available are: The value `automatic` indicates that this invocation type automatically redirects you to your native or web app using the Invoke URL with a challenge that your app will need to sign. The value `manual` indicates that this invocation type will cause the challenge to be returned to you as part of a JSON response. It will then be up to you to get it to your native/web app any way you see fit. This is useful for flows where you require a lot more control when redirecting to your native/web app. Since the challenge is packaged as part of a URL, following the URL will result in the same behavior as if an Invocation Type of "automatic" were selected. enum: - automatic - manual type: string invoke_url: description: URL to invoke during the authentication flow. example: 'http://localhost:8092' type: string trusted_origins: description: | Trusted origins are URLs that will be allowed to make requests from a browser to the Beyond Identity API. This is used with Cross-Origin Resource Sharing (CORS). These may be in the form of ` "://" [ ":" ]`, such as `https://auth.your-domain.com` or `http://localhost:3000`. items: example: 'http://localhost:8092' type: string type: array type: enum: - embedded type: string authentication_methods: items: properties: type: description: | Within our hosted web product, an array of values determines the client-side authentication workflows: The value `webauthn_passkey` triggers a workflow that generates a hardware key within your device's trusted execution environment (TEE). If webauthn passkeys are not supported in the browser, specifying one of the other two authentication methods will result in a fallback to that mechanism. The value `software_passkey` activates a workflow where a passkey is securely created within the browser's context. The value `email_one_time_password` enables a workflow that verifies identity via an email of a one-time password. enum: - email_one_time_password - software_passkey - webauthn_passkey type: string required: - type title: AuthenticationMethod type: object type: array - title: Hosted Web Authenticator description: | Configuration options for the hosted web experience. This authenticator is maintained by Beyond Identity and allows the caller to customize authentication methods. type: object required: - type - authentication_methods - trusted_origins properties: authentication_methods: items: $ref: '#/components/schemas/AuthenticatorConfig/properties/config/oneOf/0/properties/authentication_methods/items' type: array trusted_origins: description: | Trusted origins are URLs that will be allowed to make requests from a browser to the Beyond Identity API. This is used with Cross-Origin Resource Sharing (CORS). These may be in the form of ` "://" [ ":" ]`, such as `https://auth.your-domain.com` or `http://localhost:3000`. items: example: 'http://localhost:8092' type: string type: array type: enum: - hosted_web type: string - title: Console Authenticator description: | Configuration options for credential enrollment, enabling an identity to access the Beyond Identity Console. These options support both IDP-authorized flows and non-verified enrollment pathways. type: object required: - type - onboarding_configuration properties: type: enum: - console type: string onboarding_configuration: title: Console Onboarding Configuration description: Configuration options for the console onboarding experience. type: object required: - verification_method properties: verification_method: oneOf: - title: Console Verification Method IDP description: Configures IDP verification for identities onboarding. type: object required: - type - idp_id properties: type: description: |- The type of verification method to be used for credential onboarding. Currently only `idp` or `none` are supported options. If set to `none` there will be no verification step performed for the identity selected for credential onboarding. type: string enum: - idp idp_id: description: The id of the IDP to use to verify the identity during the onboarding process. type: string format: uuid - title: Console Verification Method None description: An onboarding configuration with no verification configured. Identities will not be verified during the onboarding operation. type: object required: - type properties: type: description: |- The type of verification method to be used for credential onboarding. Currently only `idp` or `none` are supported options. If set to `none` there will be no verification step performed for the identity selected for credential onboard. type: string enum: - none - title: Platform Authenticator description: Configuration options for the platform authenticator. type: object required: - type properties: type: type: string enum: - platform trusted_origins: description: 'Trusted origins are URLs that will be allowed to make requests from a browser to the Beyond Identity API. This is used with Cross-Origin Resource Sharing (CORS). These may be in the form of ` "://" [ ":" ],` such as `https://auth.your-domain.com` or `http://localhost:3000`.' type: array items: type: string nullable: true roaming_auth_config: description: The roaming_auth_config offers advanced configuration options for the roaming auth feature. title: RoamingAuthConfig type: object required: - enabled - allow_unknow_user properties: enabled: description: 'If false, roaming auth is never offered as an available flow during authentication on this Authenticator Config.' type: boolean allow_unknown_user: description: 'If a login_hint is not provided or the login_hint does not match for exactly one user in the directory, the user will be considered "unknown" and the value of allow_unknown_user will be used to determine whether or not to offer roaming auth.' type: boolean allowed_source_ips: description: 'If allowed_source_ips is not null and not empty, roaming auth will only be offered to users who begin the authentication from a specified IP address or range.' type: array items: type: string allowed_user_group_ids: description: 'If allowed_user_group_ids is not nil and not empty, roaming auth will only be offered to users if they are part of one of those user groups. Note that the user is determined _before_ authentication using a best effort lookup by login_hint, if provided. If a login_hint is not provided or the login_hint does not match for exactly one user in the directory, the user will be considered \"unknown\" and the value of allow_unknown_user will be used to determine whether or not to offer roaming auth.' type: array items: type: string allowed_user_ids: description: 'If allowed_user_ids is not nil and not empty, roaming auth will only be offered to specified users. Note that the user is determined _before_ authentication using a best effort lookup by login_hint, if provided. If a login_hint is not provided or the login_hint does not match for exactly one user in the directory, the user will be considered \"unknown\" and the value of allow_unknown_user will be used to determine whether or not to offer roaming auth.' type: array items: type: string ListApplicationsResponse: title: List Applications Response description: Response for ListApplications. type: object properties: applications: type: array items: $ref: '#/components/schemas/Application' maxItems: 100 description: | An unordered array of applications corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - applications - total_size ListAuthenticatorConfigsResponse: title: List Authenticator Configurations Response description: Response for ListAuthenticatorConfigs. type: object properties: authenticator_configs: type: array items: $ref: '#/components/schemas/AuthenticatorConfig' maxItems: 100 description: | An unordered array of authenticator configurations corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - authenticator_configs - total_size ListResourceServersResponse: title: List Resource Servers Response description: Response for ListResourceServers. type: object properties: resource_servers: type: array items: $ref: '#/components/schemas/ResourceServer' maxItems: 100 description: | An unordered array of resource servers corresponding to the request. total_size: type: integer format: uint32 description: | Total number of results returned by the operation. This value may be larger than the number of resources returned, such as when returning a single page where multiple pages are available. example: 1000 next_page_token: type: string description: | Token used to fetch the next set of results. If this field is omitted, there are no subsequent pages. required: - resource_servers - total_size ResourceServer: title: Resource Server type: object description: | A resource server represents an API server that hosts a set of protected resources and is capable of accepting and responding to protected resource requests using access tokens. Clients can enable these APIs to be consumed from authorized applications. properties: id: type: string description: | A unique identifier for a resource server. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 84db69f5-48a8-4c11-8cda-1bae3a73f07e realm_id: type: string description: | A unique identifier for the resource server's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: caf2ff640497591a tenant_id: type: string description: | A unique identifier for the resource server's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 00011f1183c67b69 display_name: type: string description: | A human-readable name for the resource server. This name is used for display purposes. example: Pet API is_managed: type: boolean description: | A boolean indicating whether the resource server is managed by Beyond Identity. Managed resource servers may not be modified by the user. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: false identifier: type: string description: | The identifier of this resource server entity. This value should be unique per realm and is often presented as a URI, as it should be a unique identifier for an API to which access is being gated. This identifier will be returned in the `audience` claim of all tokens minted that provide access to scopes owned by this resource server. The client is responsible for validating tokens are intended for them via this `audience` claim. Tokens minted for the Beyond Identity Management API will use the audience `beyondidentity`, which is reserved and may not be used for any other resource servers. example: 'https://api.mypetapp.com' scopes: type: array items: type: string example: 'pets:read' description: | The list of scopes supported by this resource server. For the Beyond Identity Management API, this will include scopes for all publicly available endpoints. Note that applications may not provide access to scopes that are not defined on a resource server that they reference; this is the superset of all allowable application scopes in a given realm. SCIMUser: title: User description: | A user represents a human entity as defined by [RFC 7643 Section 4.1](https://www.rfc-editor.org/rfc/rfc7643#section-4.1). A user cooresponds to the identity resource in Beyond Identity. type: object properties: schemas: type: array description: | The list of schemas used to define the user. This must contain only the core User schema ("urn:ietf:params:scim:schemas:core:2.0:User"). items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:User' id: type: string description: | The unique ID of the user. This is automatically generated on creation. This field is immutable and output-only. minLength: 1 readOnly: true example: ed9fcce6-ec82-458e-ae58-e2d975cfc32d externalId: type: string description: The provisioning client's unique identifier for the resource. example: external-id-abcdef userName: type: string minLength: 1 description: | The unique username of the user. example: test_user displayName: type: string minLength: 1 description: | Display name of the User. This name is used for display purposes. example: Test User active: type: boolean description: | Indicator for the user's administrative status. If true, the user has administrative capabilities. example: true emails: type: array description: The list containing the user's emails. items: type: object description: Definition of an email. properties: primary: type: boolean description: | Indicator for the primary or preferred email address. Only the primary email address is included on the response. All other provided email addresses will be ignored. example: true value: type: string description: The email address. example: test@test.com name: type: object description: Definition of the user's name. properties: givenName: type: string description: | The given name of the user, or first name in most Western languages. example: Barbara familyName: type: string description: | The family name of the user, or last name in most Western languages. example: Jensen 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': title: EnterpriseUserExtension description: | Defines attributes commonly used in representing users that belong to, or act on behalf of, a business or enterprise. The enterprise User extension is identified using the following schema URI: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User". type: object properties: employeeNumber: type: string description: | A string identifier, typically numeric or alphanumeric, assigned to a person, typically based on order of hire or association with an organization as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). costCenter: type: string description: | Identifies the name of a cost center as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). organization: type: string description: | Identifies the name of an organization as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). department: type: string description: | Identifies the name of a department as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). division: type: string description: | Identifies the name of a division as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). manager: type: object properties: value: type: string description: | The "id" of the SCIM resource representing the user's manager as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). displayName: type: string description: | The displayName of the user's manager. This attribute is OPTIONAL, and mutability is "readOnly" as defined in [RFC 7643](https://datatracker.ietf.org/doc/html/rfc7643#section-4.3). meta: title: Meta description: | Resource metadata as defined in [RFC 7643 Section 3.1](https://www.rfc-editor.org/rfc/rfc7643#section-3.1). This attribute is only populated on responses and is ignored on requests. type: object properties: resourceType: type: string description: The name of the resource type of the resource. example: Group created: type: string format: date-time description: Timestamp of when the resource was created. readOnly: true example: '2022-04-07T07:23:33Z' lastModified: type: string format: date-time description: Timestamp of when the resource was last updated. readOnly: true example: '2023-03-30T07:00:14Z' location: type: string description: The URI of the resource being returned. readOnly: true example: Groups/ed9fcce6-ec82-458e-ae58-e2d975cfc32d version: type: string description: | The version of the resource being returned. This is always "W/0". readOnly: true example: W/0 required: - resourceType - created - lastModified - location - version required: - schemas SCIMGroup: title: Group description: | A group is a collection of users corresponding to [RFC 7643 Section 4.2](https://www.rfc-editor.org/rfc/rfc7643#section-4.2). type: object properties: schemas: type: array description: | The list of schemas used to define the group. This must contain the core Group schema ("urn:ietf:params:scim:schemas:core:2.0:Group") and may include the custom Beyond Identity Group schema extension ("urn:scim:schemas:extension:byndid:1.0:Group"). items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:Group' id: type: string description: | The unique ID of the group. This is automatically generated on creation. This field is immutable and output-only. minLength: 1 readOnly: true example: ed9fcce6-ec82-458e-ae58-e2d975cfc32d displayName: type: string minLength: 1 description: | The unique display name of the group. This name is used for display purposes. example: Help Desk meta: $ref: '#/components/schemas/SCIMUser/properties/meta' required: - schemas SCIMResourceType: title: ResourceType description: | A resource type specifies the metadata about a resource type, as defined in [RFC 7643 Section 6](https://www.rfc-editor.org/rfc/rfc7643#section-6). type: object properties: schemas: type: array description: | The list of schemas used to define the resource type. This only contains the core ResourceType schema ("urn:ietf:params:scim:schemas:core:2.0:ResourceType"). items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:ResourceType' id: type: string description: | ID of the resource type. This corresponds to the name of the type. minLength: 1 readOnly: true example: User name: type: string minLength: 1 description: Name of the resource type. readOnly: true example: User description: type: string description: Description of the resource type. readOnly: true example: User Account endpoint: type: string description: The relative base URL of the resource type. readOnly: true example: /Users schema: type: string description: The schema defining the resource type. readOnly: true example: 'urn:ietf:params:scim:schemas:core:2.0:User' schemaExtensions: type: array description: Schema extensions for the resource type. items: type: object properties: required: type: boolean description: | Indicator specifying whether the extension is required for the resource type. If true, the extension is required. readOnly: true example: false schema: type: string description: URN of the schema extension. readOnly: true example: 'urn:scim:schemas:extension:byndid:1.0:Group' required: - required - schema readOnly: true required: - schemas - id - name - description - endpoint - schema - schemaExtensions SCIMSchema: title: Schema description: | Definition of a schema which indicates what attributes are supported. This resource corresponds to [RFC 7643 Section 7](https://www.rfc-editor.org/rfc/rfc7643#section-7). type: object properties: id: type: string description: | ID of the schema defined as a URN. minLength: 1 readOnly: true example: 'urn:ietf:params:scim:schemas:core:2.0:User' name: type: string minLength: 1 description: Name of the resource type. readOnly: true example: User description: type: string description: Description of the resource type. readOnly: true example: User resource attributes: type: array description: List of attributes supported for this schema. items: type: object description: The definition of an attribute. properties: name: type: string description: The attribute's name. readOnly: true example: id type: type: string description: The attribute's type. enum: - string - boolean - decimal - integer - dateTime - reference - complex readOnly: true example: string subAttributes: type: array description: | A list of sub-attributes. This is defined only for complex attributes. Each sub-attribute is defined with the same schema as an attribute. items: type: object readOnly: true multiValued: type: boolean description: Indicator for the attribute's plurality. readOnly: true example: true description: type: string description: The attribute's human-readable description. readOnly: true example: The display name of the user. required: type: boolean description: Indicator for whether the attribute is required. readOnly: true example: true caseExact: type: boolean description: | Indicator for whether the attribute is case-sensitive. This only applies for string attributes. readOnly: true example: true mutability: type: string description: Definition of the attribute's mutability. enum: - readOnly - readWrite - immutable - writeOnly readOnly: true example: readOnly returned: type: string description: Definition of when the attribute is returned. enum: - always - never - default - request readOnly: true example: default uniqueness: type: string description: Definition of the attribute's uniqueness. enum: - none - server - global readOnly: true example: none referenceTypes: type: array description: | The list of types that may be referenced by this attribute. This only applies to attributes of type "reference". items: type: string example: User readOnly: true required: - name - type - multiValued - description - required - mutability - returned readOnly: true required: - id - name - description - attributes SCIMServiceProviderConfig: title: ServiceProviderConfig description: | The service provider configuration, as defined in [RFC 7643 Section 5](https://www.rfc-editor.org/rfc/rfc7643#section-5). type: object properties: schemas: type: array description: | The list of schemas used to define the resource type. This only contains the core ServiceProviderConfig schema ("urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"). items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig' documentationUri: type: string description: | URL pointing to the service provider's human-consumable help documentation. readOnly: true patch: type: object properties: supported: type: boolean description: | Indicator specifying whether PATCH operations are supported. The Beyond Identity SCIM server supports PATCH operations. example: true readOnly: true required: - supported bulk: type: object description: Configuration for bulk operations. properties: supported: type: boolean description: | Indicator specifying whether PATCH operations are supported. The Beyond Identity SCIM server does not support bulk operations. example: false readOnly: true maxOperations: type: integer format: uint32 description: Maximum number of operations allowed per bulk operation. example: 1000 readOnly: true maxPayloadSize: type: integer format: uint32 description: Maximum payload size in bytes. example: 1048576 readOnly: true required: - supported - maxOperations - maxPayloadSize filter: type: object description: Configuration for query filters. properties: supported: type: boolean description: | Indicator specifying whether filters are supported for querying. The Beyond Identity SCIM server supports filters for querying. example: true readOnly: true maxResults: type: integer format: uint32 description: Maximum number of resources returned in a response. example: 1000 readOnly: true required: - supported - maxResults changePassword: type: object description: Configuration for password support. properties: supported: type: boolean description: | Indicator specifying whether changing a password is supported. The Beyond Identity SCIM server does not support passwords. example: true readOnly: true required: - supported sort: type: object description: Configuration for sort support in queries. properties: supported: type: boolean description: | Indicator specifying whether sorting is supported for querying. The Beyond Identity SCIM server does not support sorting. example: false readOnly: true required: - supported etag: type: object description: Configuration for ETag support. properties: supported: type: boolean description: | Indicator specifying whether ETags are supported. The Beyond Identity SCIM server does not support ETags. example: true readOnly: true required: - supported authenticationSchemes: type: array description: Supported authentication schemes. items: type: object properties: type: type: string description: The authentication scheme. enum: - oauth - oauth2 - oauthbearertoken - httpbasic - httpdigest readOnly: true example: oauthbearertoken name: type: string description: The common authentication scheme name. readOnly: true description: type: string description: A description of the authentication scheme. readOnly: true specUri: type: string description: URL pointing to the authentication scheme specification. readOnly: true documentationUri: type: string description: | URL pointing to the authentication scheme's usage documentation. readOnly: true required: - type - name - description - specUri - documentationUri readOnly: true required: - schemas - documentationUri - patch - bulk - filter - changePassword - sort - etag - authenticationSchemes SCIMError: type: object properties: schemas: type: array description: | The list of schemas used to define the error. This only contains the Error schema ("urn:ietf:params:scim:api:messages:2.0:Error"). items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' status: type: string description: The HTTP status code of the error expressed as a JSON string. scimType: type: string description: | A SCIM detail error keyword corresponding to [RFC 7644 Section 3.12](https://datatracker.ietf.org/doc/html/rfc7644#section-3.12). detail: type: string description: A detailed human-readable message. required: - schemas - status ApplicationSsoResponse: type: object properties: sso_config_id: type: string description: | This is the id of the SSO Config object that is associated with the provided application id. If this is missing it means that the application isn't associated with an SSO config. SsoConfigAddIdentities: title: Associate Identities with SSO Config description: Request for AddIdentitiesToSsoConfig. type: object properties: identity_ids: description: IDs of the identities to be added to the sso config. type: array items: type: string minItems: 1 maxItems: 1000 required: - identity_ids SsoConfigBookmarkPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' login_link: type: string icon: type: string is_tile_visible: type: boolean SsoConfigBookmark: type: object required: - type - login_link properties: type: $ref: '#/components/schemas/SsoConfigType' login_link: type: string icon: type: string is_tile_visible: type: boolean SsoConfigDeleteGroup: title: Delete Groups from SSO Config description: Request for DeleteGroupsToSsoConfig. type: object properties: group_ids: description: IDs of the groups to be removed from the sso config. type: array items: type: string minItems: 1 maxItems: 1000 required: - group_ids SsoConfigEntraIdAuthMethodPartial: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: default: null type: array items: type: string inbound_scim: default: null type: object discover_endpoint: default: null $ref: '#/components/schemas/SsoConfigEntraIdExternalAuthMethod/properties/discover_endpoint' SsoConfigEntraIdExternalAuthMethod: type: object required: - type - redirect_uris - discover_endpoint properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: default: null type: array items: type: string inbound_scim: default: null type: object discover_endpoint: description: | Describes the type of discovery endpoint for the entra_id_external_auth_methods sso config. type: string enum: - global_azure - azure_us_government - microsoft_azure_vianet SsoConfigEnvelope: description: Represents an SSO config as a request body. type: object required: - sso_config properties: sso_config: $ref: '#/components/schemas/SsoConfig' SsoConfigGenericOidcIdpPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string nullable: true pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' id_token_scopes: default: null type: array items: type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' authorization_endpoint: type: string nullable: true token_endpoint: type: string jwks_endpoint: type: string SsoConfigGenericOidcPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: default: null type: array items: type: string scopes: default: null type: array items: type: string trusted_origins: default: null type: array items: type: string login_link: type: string icon: type: string is_tile_visible: type: boolean confidentiality: default: null allOf: - $ref: '#/components/schemas/Confidentiality' pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' inbound_scim: default: null type: object SsoConfigGenericOidc: type: object required: - type - redirect_uris - scopes - confidentiality - pkce properties: type: $ref: '#/components/schemas/SsoConfigType' redirect_uris: default: null type: array items: type: string scopes: default: null type: array items: type: string trusted_origins: default: null type: array items: type: string login_link: type: string icon: type: string is_tile_visible: type: boolean confidentiality: default: null allOf: - $ref: '#/components/schemas/Confidentiality' pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' inbound_scim: default: null type: object SsoConfigListGroups: title: List Groups associated with an SSO config. description: List Groups associated with an SSO config. type: object properties: groups: type: array items: $ref: '#/components/schemas/SsoGroupWithMemberCount' SsoConfigOidcIdp: type: object required: - type - client_id - identifying_claim_name - identity_attribute - authorization_endpoint - token_endpoint - jwks_endpoint properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' authorization_endpoint: type: string nullable: true token_endpoint: type: string jwks_endpoint: type: string SsoConfigOktaBiIdpPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' okta_registration: description: Represents a list of Resource Servers as a response body. type: object properties: domain: description: The domain Url inside of Okta. type: string okta_token: description: An okta token used for accessing the okta API. type: string attribute_name: description: |- The name of the attribute within okta that we are going to set to true. type: string is_enabled: description: If the integration is enabled. type: boolean inbound_scim: default: null type: object SsoConfigOktaBiIdp: type: object required: - type - pkce - okta_registration properties: type: $ref: '#/components/schemas/SsoConfigType' pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' okta_registration: description: Represents a list of Resource Servers as a response body. type: object properties: domain: description: The domain Url inside of Okta. type: string okta_token: description: An okta token used for accessing the okta API. type: string attribute_name: description: |- The name of the attribute within okta that we are going to set to true. type: string is_enabled: description: If the integration is enabled. type: boolean inbound_scim: default: null type: object SsoConfigPartialUpdatePayload: oneOf: - $ref: '#/components/schemas/SsoConfigBookmarkPartialUpdate' - $ref: '#/components/schemas/SsoConfigEntraIdAuthMethodPartial' - $ref: '#/components/schemas/SsoConfigGenericOidcPartialUpdate' - $ref: '#/components/schemas/SsoConfigGenericOidcIdpPartialUpdate' - $ref: '#/components/schemas/SsoConfigSamlPartialUpdate' - type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string nullable: true pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' id_token_scopes: default: null type: array items: type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' okta_domain: type: string inbound_scim: default: null type: object - $ref: '#/components/schemas/SsoConfigOktaBiIdpPartialUpdate' - $ref: '#/components/schemas/SsoConfigRealityCheckPartialUpdate' - $ref: '#/components/schemas/SsoConfigWsFedPartialUpdate' SsoConfigPartialUpdate: description: Represents an sso config as an update request body. type: object required: - sso_config properties: sso_config: $ref: '#/components/schemas/SsoConfigPartialUpdatePayload' SsoConfigPayload: oneOf: - $ref: '#/components/schemas/SsoConfigBookmark' - $ref: '#/components/schemas/SsoConfigEntraIdExternalAuthMethod' - $ref: '#/components/schemas/SsoConfigGenericOidc' - $ref: '#/components/schemas/SsoConfigOidcIdp' - type: object required: - type - acs_url - override_recipient_and_destination - audience_url - default_relay_state - name_format - authentication_context - subject_user_name_attribute - sign_envelope - sign_assertions - signature_algorithm - digest_algorithm - encrypt_assertions - assertion_validity_duration_seconds - sp_signature_certificates - enable_single_log_out - validate_signed_requests - additional_user_attributes - single_logout_sign_request_and_response properties: type: type: string enum: - saml acs_url: description: | Location where the SAML Response is sent via HTTP-POST. Often referred to as the SAML Assertion Consumer Service (ACS) URL. type: string example: 'https://example.com/saml/acs' override_recipient_and_destination: description: | When this is true, the `recipient_url` and the `destination_url` are used for SAML Response. When this is false, both the `recipient_url` and the `destination_url` are omitted and the `acs_url` is used instead. type: boolean example: true recipient_url: description: | If `override_recipient_and_destination` is set to `true`, this field is utilized for the SAML Response. If it is `false`, this field is unused. The location where the application may present the SAML assertion. This is usually the same location as the Single Sign-On URL. type: string example: 'https://example.com/saml/recipient' destination_url: description: | If `override_recipient_and_destination` is set to `true`, this field is utilized for the SAML Response. If it is `false`, this field is unused. Identifies the location where the SAML response is intended to be sent inside of the SAML assertion. type: string example: 'https://example.com/saml/destination' audience_url: description: | The intended audience of the SAML assertion. Often referred to as the service provider Entity ID. type: string example: 'https://example.com/saml/audience' default_relay_state: description: | Identifies a specific application resource in an IDP initiated Single Sign-On scenario. In most instances this is blank. type: string example: defaultRelayState name_format: description: | Name format of the assertion's subject statement. Processing rules and constraints can be applied based on selection. Default value is "unspecified" unless SP explicitly requires differently. type: string enum: - unspecified - email_address - x509_subject_name - persistent - transient - entity - kerberos - windows_domain_qualified_name example: unspecified authentication_context: description: | The SAML Authentication Context Class for the assertion's authentication statement. Default value is "X509". type: string enum: - x509 - integrated_windows_federation - kerberos - password - password_protected_transport - tls_client - unspecified - refeds_mfa example: x509 subject_user_name_attribute: description: | Determines the default value for a user's application username. The application username will be used for the assertion's subject statement. type: string enum: - user_name - email - email_prefix - external_id - display_name - custom - none example: user_name sign_envelope: description: | Determines whether the SAML authentication response message is digitally signed by the IdP or not. A digital signature is required to ensure that only your IdP generated the response message. type: boolean example: true sign_assertions: description: All of the assertions should be signed by the IdP. type: boolean example: true signature_algorithm: description: | The algorithm used for signing the SAML assertions. type: string enum: - rsa_sha256 - rsa_sha1 - rsa_sha384 - rsa_sha512 example: rsa_sha256 digest_algorithm: description: | The algorithm used to encrypt the SAML assertion. type: string enum: - sha256 - sha1 - sha384 - sha512 example: sha256 encrypt_assertions: description: | This is the flag that determines if the SAML assertion is encrypted. If this flag is set to `true`, there **MUST** be a SAML encryption certificate uploaded. Encryption ensures that nobody but the sender and receiver can understand the assertion. type: boolean example: false assertion_validity_duration_seconds: description: | The amount of time SAML assertions are valid for in seconds. type: integer format: int32 example: 300 assertion_encryption_algorithm: description: | The algorithm used for the digest in SAML assertions. type: string enum: - aes256_cbc - aes256_gcm - aes128_cbc - aes128_gcm example: aes256_cbc assertion_key_transport_algorithm: description: | The algorithm used for key transport in SAML assertions. type: string enum: - rsa_oaep - rsa1_5 example: rsa_oaep assertion_encryption_public_key: description: | The public key used to encrypt the SAML assertion. This is required if `encrypt_assertions` is true. type: string example: | -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3Q4ebLzciJlVf4QDQ2u 0Y2CfX9z4rMdG6MQSDW2NFQF0kM16Zzsz0p2gMOnp7YOz8OZqkU2XgUN3kQ8zC1h q+um2mU5K45f9Idoq8gE7/kmlZG1zS1mrDS36lM5Sc+E5hVgXJkNw3kEJ7OnhHHu ZG0EvTlGjqntCGXxrpX5sS1a9z7HeemEos6Xlw8I8Q8txJTeHgkRmZkMy5ndRbWa sMyV8A1tk0Z5bLpoZBxn8Hh/M4v8HkV8O7lH91kB9D+4O+CZ4WcG4Fj8UOJW5m1M nsCfYvzpEzeLoB2xD3CEmonGzZC+Ij1ZhrWu5V6mnmx6dzUMjOZchRQtfnJZzQ1U 2QIDAQAB -----END PUBLIC KEY----- sp_signature_certificates: $ref: '#/components/schemas/SsoConfigSamlPartialUpdate/properties/sp_signature_certificates/items' enable_single_log_out: description: | Enables single logout. Single Logout (SLO) is a feature that allows users to be logged out from multiple service providers (SPs) and the identity provider (IdP) with a single logout action. type: boolean example: false single_log_out_url: description: | The location where the single logout response will be sent. This is only enabled if `enable_single_log_out` is true. type: string example: 'https://example.com/saml/logout' single_log_out_issuer_url: description: | The issuer ID for the service provider when handling a Single Logout. This is only enabled if `enable_single_log_out` is true. type: string example: 'https://example.com/saml/issuer' single_log_out_binding: description: | The SAML binding used for SAML messages. type: string enum: - post - redirect example: post single_logout_sign_request_and_response: description: | If enabled, Single Logout requests must bbe signed and Single Logout responses will also be signed. type: boolean example: false validate_signed_requests: description: | Select this to validate all SAML requests using the SP Signature Certificate. type: boolean example: true other_sso_urls: type: object description: | For use with SP-initiated sign-in flows. Enter the ACS URLs for any other requestable SSO nodes used by your app integration. This option enables applications to choose where to send the SAML Response. Specify a URL and an index that uniquely identifies each ACS URL endpoint. Some SAML AuthnRequest messages don't specify an index or URL. In these cases, the SAML Response is sent to the ACS specified in the Single sign on URL field. When you enable Signed Requests, Beyond Identity deletes any previously defined static SSO URLs and reads the SSO URLs from the signed SAML request instead. You can't have both static SSO URLs and dynamic SSO URLs. This can only be set if `validate_signed_requests` is set to false. required: - index - url properties: index: description: The index that this URL may be referenced by. type: integer format: int16 example: 1 url: description: | This is a URL that may be used to replace the ACS URL. type: string example: 'https://example.com/saml/acs1' additional_user_attributes: description: | This structure describes additional attributes that can be attached to SAML assertion. type: array items: type: object required: - name - name_format - value properties: name: description: The SAML attribute name. type: string example: firstName name_format: $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' value: description: The value to attach to the SAML value. $ref: '#/components/schemas/SsoConfigSamlPartialUpdate/properties/additional_user_attributes/items' custom_value: description: | The custom static string value when value is set to `custom_static_string`. type: string example: customString identity_provider_certs: description: | The X509 certificates of the identity provider (Beyond Identity). These are the certificates that is in our IDP metadata, and that the upstream services use to validate our SAML assertion. type: array readOnly: true items: type: object description: | The BI Identity Provider Certificate for this SAML connection. required: - id - created_at - expires_at - is_active - idp_public_certificate properties: id: description: The id of the certificate. type: string example: 3cb717d1-88ff-440a-b5ee-86c00ce63dbf created_at: description: Timestamp of when the certificate was created. type: string format: date-time example: '2022-05-12T20:29:47.636Z' expires_at: description: Timestamp of when the certificate expires. type: string format: date-time example: '2022-05-12T20:29:47.636Z' is_active: description: Indicates whether the certificate is active. type: boolean example: true idp_public_certificate: description: | Beyond Identity's public signing key wrapped in a certificate. Stored as a base64 encoded DER format. type: string example: | -----BEGIN CERTIFICATE----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3Q4ebLzciJlVf4QDQ2u 0Y2CfX9z4rMdG6MQSDW2NFQF0kM16Zzsz0p2gMOnp7YOz8OZqkU2XgUN3kQ8zC1h q+um2mU5K45f9Idoq8gE7/kmlZG1zS1mrDS36lM5Sc+E5hVgXJkNw3kEJ7OnhHHu ZG0EvTlGjqntCGXxrpX5sS1a9z7HeemEos6Xlw8I8Q8txJTeHgkRmZkMy5ndRbWa sMyV8A1tk0Z5bLpoZBxn8Hh/M4v8HkV8O7lH91kB9D+4O+CZ4WcG4Fj8UOJW5m1M nsCfYvzpEzeLoB2xD3CEmonGzZC+Ij1ZhrWu5V6mnmx6dzUMjOZchRQtfnJZzQ1U 2QIDAQAB -----END CERTIFICATE----- use_short_url: default: false type: boolean description: Changes the EntityID in the SAML response to a shorter version. This is to support applications with URL restrictions. - type: object required: - type - client_id - identifying_claim_name - identity_attribute - okta_domain properties: type: $ref: '#/components/schemas/SsoConfigType' client_id: description: The client ID for the idp application. type: string client_secret: description: The client secret to authenticate as the idp application. type: string nullable: true pkce: default: null allOf: - $ref: '#/components/schemas/PkceConfig' id_token_scopes: default: null type: array items: type: string identifying_claim_name: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' okta_domain: type: string inbound_scim: default: null type: object - $ref: '#/components/schemas/SsoConfigOktaBiIdp' - $ref: '#/components/schemas/SsoConfigRealityCheck' - $ref: '#/components/schemas/SsoConfigWsFed' SsoConfigRealityCheckPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' company_identifier: default: null type: string SsoConfigRealityCheck: type: object required: - type - company_identifier properties: type: $ref: '#/components/schemas/SsoConfigType' company_identifier: default: null type: string SsoConfigSamlPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' acs_url: description: | Location where the SAML Response is sent via HTTP-POST. Often referred to as the SAML Assertion Consumer Service (ACS) URL. type: string override_recipient_and_destination: description: | When this is true, the `recipient_url` and the `destination_url` are used for SAML Response. When this is false, both the `recipient_url` and the `destination_url` are omitted and the acs_url is used instead. type: boolean recipient_url: description: | If `override_recipient_and_destination` is set to true, this field is utilized for the SAML Response. If it is false, this field is unused. The location where the application can present the SAML assertion. This is usually the Single Sign-On (SSO) URL. type: string destination_url: description: | If `override_recipient_and_destination` is set to true, this field is utilized for the SAML Response. If it is false, this field is unused. The location to send the SAML Response, as defined in the SAML assertion. type: string audience_url: description: | The intended audience of the SAML assertion. Often referred to as the service provider Entity ID. type: string default_relay_state: description: | Identifies a specific application resource in an IDP initiated Single Sign-On scenario. In most instances this is blank. type: string name_format: description: The format of the SAML NameID. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' authentication_context: description: The context for SAML authentication. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/authentication_context' subject_user_name_attribute: description: The attribute to use for the subject's username. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/subject_user_name_attribute' sign_envelope: description: | Determines whether the SAML authentication response message is digitally signed by the IdP or not. A digital signature is required to ensure that only your IdP generated the response message. type: boolean sign_assertions: description: All of the assertions are signed by the IdP. type: boolean signature_algorithm: description: The algorithm used for signing the SAML assertions. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/signature_algorithm' digest_algorithm: description: The algorithm used for the digest in SAML assertions. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/digest_algorithm' encrypt_assertions: description: | This is the flag that determines if the SAML assertion is encrypted. If this flag is set to `true`, there MUST be a SAML encryption certificate uploaded. Determines whether the SAML assertion is encrypted or not. Encryption ensures that nobody but the sender and receiver can understand the assertion. type: boolean assertion_validity_duration_seconds: description: | The amount of time assertions are valid for in seconds. type: integer format: int32 assertion_encryption_algorithm: description: The algorithm used to encrypt the SAML assertion. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/assertion_encryption_algorithm' assertion_key_transport_algorithm: description: The algorithm used for key transport in SAML assertions. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/assertion_key_transport_algorithm' assertion_encryption_public_key: description: | The public key used to encrypt the SAML assertion. This is required if `encrypt_assertions` is true. type: string sp_signature_certificates: description: | The PEM encoded X509 key certificate of the Service Provider used to verify SAML AuthnRequests. type: array items: description: | The PEM encoded X509 key certificate of the Service Provider used to verify SAML AuthnRequests. type: array items: type: object required: - sp_public_signing_key properties: sp_public_signing_key: type: string example: - | -----BEGIN CERTIFICATE----- MIIDdzCCAl+gAwIBAgIEbF2LTTANBgkqhkiG9w0BAQsFADBoMQswCQYDVQQGEwJV UzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbiBGcmFuY2lzY28xEjAQBgNVBAoT CU9rdGEsIEluYy4xHzAdBgNVBAMTFm9rdGEuZXhhbXBsZS5jb20gQ0EgUm9vdDAe Fw0yMDA2MTkwMDAwMDBaFw0yMTA2MTkyMzU5NTlaMG0xCzAJBgNVBAYTAlVTMQsw CQYDVQQIEwJDQTEVMBMGA1UEBxMMU2FuIEZyYW5jaXNjbzESMBAGA1UEChMJb2t0 Pbg6vGfJnxYYibTwLlXhgxl0tT+NMQFZ5GQslLh2sB3AWBzjZtFzFS7lDi0n4Fz5 y9x6U1hUS54fScJmSVSTT9v/qAD0ccjvlPj3M6PENq2X7TwrOqSTgx5TPOpA5Myl MtwPbU3wn/pA5Cp9kWvlYbBfTS4Hx14FQyg3GAAkMrzrhKhpIfhz6iH0H8kDxFId 6KjXy4TvoUM/tH7c6v2HS6D4TD7TfYOv/8A7E1Lj6WKwjtghTAh3Rb5tbyxRBcw gg== -----END CERTIFICATE----- enable_single_log_out: description: Enable single logout. type: boolean single_log_out_url: description: | The location where the logout response will be sent. Only enabled if `enable_single_log_out` is true. type: string single_log_out_issuer_url: description: | The issuer ID for the service provider. When handling a Single Log Out. Only enabled if `enable_single_log_out` is true. type: string single_log_out_binding: description: The binding used for single logout messages. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/single_log_out_binding' single_logout_sign_request_and_response: description: | If we should expect the LogoutRequest to be signed and if we should sign the LogoutResponse. type: boolean validate_signed_requests: description: | Select this to validate all SAML requests using the Signature Certificate. The payload from the SAML request is validated, and Okta dynamically reads any single sign-on (SSO) URLs from the request. This checkbox appears after you upload a Signature Certificate. When Signed Requests is enabled, the SAML Request must include a NameIDPolicy. type: boolean other_sso_urls: description: | For use with SP-initiated sign-in flows. Enter the ACS URLs for any other requestable SSO nodes used by your app integration. This option enables applications to choose where to send the SAML Response. Specify a URL and an index that uniquely identifies each ACS URL endpoint. Some SAML AuthnRequest messages don't specify an index or URL. In these cases, the SAML Response is sent to the ACS specified in the Single sign on URL field. When you enable Signed Requests, Okta deletes any previously defined static SSO URLs and reads the SSO URLs from the signed SAML request instead. You can't have both static SSO URLs and dynamic SSO URLs. This can only be set if validate_signed_requests is set to false. type: object required: - index - url properties: index: description: The index that this URL may be referenced by. type: integer format: int16 url: description: | This is a URL that may be used to replace the ACS URL. type: string additional_user_attributes: description: Any additional attributes to attach to the SAML assertion. type: array items: description: | The value of the SAML attribute. It will correspond to a directory attribute of the user. type: string enum: - email - user_name - external_id - display_name - custom_static_string example: email icon: description: The URL or data URI of the icon representing the SSO configuration. type: string is_tile_visible: description: Indicates if the SSO configuration tile is visible to the user. type: boolean inbound_scim: default: null type: object use_short_url: default: false type: boolean description: Changes the EntityID in the SAML response to a shorter version. This is to support applications with URL restrictions. SsoConfigType: description: | Describes the type of sso config. type: string enum: - bookmark - entra_id_external_auth_methods - generic_oidc - generic_oidc_idp - generic_saml - okta_idp - okta_sso_bi_idp - scim - ws_fed SsoConfigWsFedPartialUpdate: type: object required: - type properties: type: $ref: '#/components/schemas/SsoConfigType' acs_url: description: | This is where to redirect too. This is also known as the SP SSO url. type: string audience_url: description: The Recipient/Audience of the RSTR. type: string expiration_time_seconds: description: The amount of time in seconds that the RSTR should be valid for. type: integer format: int32 digest_algorithm: description: The algorithm used to create a digest inside of the token within the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/digest_algorithm' signature_algorithm: description: The algorithm used to create a signature inside of the token within the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/signature_algorithm' name_format: description: The format that should be used to identify the user that is logging into the system. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' subject_user_name_attribute: description: | The attribute on the identity that's used to uniquely identify the user. This is also the source for the user name inside of the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/subject_user_name_attribute' authentication_context: description: | The SAML Authentication Context Class for the assertion's authentication statement. Default value is "X509". $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/authentication_context' additional_user_attributes: description: Any additional attributes to attach to the assertion. type: array items: $ref: '#/components/schemas/SsoConfigWsFed/properties/additional_user_attributes/items' icon: description: The URL or data URI of the icon representing the SSO configuration. type: string is_tile_visible: description: Indicates if the SSO configuration tile is visible to the user. type: boolean inbound_scim: default: null type: object SsoConfigWsFed: type: object required: - type - acs_url - audience_url - expiration_time_seconds - digest_algorithm - signature_algorithm - name_format - subject_user_name_attribute - authentication_context - additional_user_attributes properties: type: description: The type of the SSO configuration. $ref: '#/components/schemas/SsoConfigType' acs_url: description: | This is where to redirect to. This is also known as the SP SSO url. type: string audience_url: description: The Recipient/Audience of the RSTR. type: string expiration_time_seconds: description: The amount of time in seconds that the RSTR should be valid for. type: integer format: int32 digest_algorithm: description: The algorithm used to create a digest inside of the token within the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/digest_algorithm' signature_algorithm: description: The algorithm used to create a signature inside of the token within the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/signature_algorithm' name_format: description: The format that should be used to identify the user that is logging into the system. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' subject_user_name_attribute: description: | The attribute on the identity that's used to uniquely identify the user. This is also the source for the user name inside of the RSTR. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/subject_user_name_attribute' authentication_context: description: | The SAML Authentication Context Class for the assertion's authentication statement. Default value is "X509". $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/authentication_context' additional_user_attributes: description: Any additional attributes to attach to the assertion. type: array items: description: | This structure describes additional attributes that can be attached to SAML assertion inside of WS-Fed token. type: object required: - name - name_format - value properties: name: description: The SAML attribute name. type: string name_format: description: The format that the attribute has. $ref: '#/components/schemas/SsoConfigPayload/oneOf/4/properties/name_format' value: description: The value to attach to the SAML value. $ref: '#/components/schemas/SsoConfigSamlPartialUpdate/properties/additional_user_attributes/items' namespace: type: string description: | This is an XML namespace that is applied the attribute and all of its children. icon: description: The URL or data URI of the icon representing the SSO configuration. type: string is_tile_visible: description: Indicates if the SSO configuration tile is visible to the user. type: boolean inbound_scim: default: null type: object SsoConfig: description: Represents an SSO config as a request body. type: object required: - display_name - payload properties: is_migrated: description: Indicates that the SSO Config was added by a script such as fast migrate type: boolean display_name: description: A human-readable name for the application. This name is used for display purposes. type: string payload: $ref: '#/components/schemas/SsoConfigPayload' SsoGroupWithMemberCount: title: Group with count of members type: object description: | A group is a logical collection of identities. Groups are commonly used as a predicate in a policy rule. properties: id: type: string description: | A unique identifier for a group. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm. readOnly: true example: 81490afab171aef0 realm_id: type: string description: | A unique identifier for the group's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 7df92e4a38ba0993 tenant_id: type: string description: | A unique identifier for the group's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001b42d80372976 display_name: type: string minLength: 1 maxLength: 64 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A human-readable name for the group. This name is used for display purposes. example: Realm Administrators description: type: string maxLength: 300 pattern: '^[^{}[\]<>;:?\\/|*^%$#=~`!]*$' description: | A free-form text field to describe a group. example: A group of realm administrators. create_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the group was created. This is automatically generated on creation. This field is read-only. readOnly: true example: '2022-03-14T03:42:52.905Z' update_time: type: string format: date-time description: | A time value given in ISO8601 combined date and time format that represents when the group was last updated. This is automatically updated when the group is updated. This field is read-only. readOnly: true example: '2022-06-14T05:55:23.823Z' member_count: type: integer format: uint32 description: | Total number of members of this group. example: 1000 IdentityProviderUpdate: description: Represents an identity provider. type: object properties: identity_provider: type: object description: The identity provider object. properties: id: description: | A unique identifier identifying an identity provider. This is automatically set on creation. This field is immutable and read-only. type: string readOnly: true tenant_id: type: string description: | A unique identifier for the identity provider's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001f1f460b1ace6 realm_id: type: string description: | A unique identifier for the identity provider's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 8f5bec58229e6f29 display_name: type: string description: | The human-readable name associated with the identity provider. protocol_config: description: | The kind of protocol we should use to communicate with the identity provider. allOf: - $ref: '#/components/schemas/IdentityProviderUpdateProtocolConfig' IdentityProviderProtocolConfigOidcIdp: description: | OIDC protocol configuration for connecting to an identity provider, and validating the token we received. type: object required: - client_id - client_secret - token_scopes - identity_attribute - pkce - jwks_url - token_url - authorize_url - identifying_claim_name - type properties: type: type: string enum: - oidc_idp client_id: description: | The OIDC client id. This value is from the identity provider. type: string client_secret: description: | The OIDC client secret. This value is from the identity provider. type: string token_scopes: description: | The scopes which to assign to the generated Access token. Scopes will be checked against the identity before validating. type: array items: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' pkce: $ref: '#/components/schemas/PkceConfig' jwks_url: description: | The URL that points to the ".well-known/jwks.json" of the identity provider. Must be a URL. type: string token_url: description: | The URL that points to the "/token" endpoint of the identity provider. Must be a URL. type: string authorize_url: description: | The "/authorize" URL to authenticate against inside of the identity provider. Must be a URL. type: string identifying_claim_name: description: | The name of the claim that specifies the user's identity inside of a token. type: string IdentityProviderProtocolConfig: description: | Represents the protocol configuration that is used by the identity provider. oneOf: - $ref: '#/components/schemas/IdentityProviderProtocolConfigOidcIdp' IdentityProviderUpdateProtocolConfig: description: | Represents the protocol configuration that is used by the identity provider. oneOf: - $ref: '#/components/schemas/IdentityProviderUpdateProtocolConfigOidcIdp' discriminator: propertyName: type IdentityProviderUpdateProtocolConfigOidcIdp: description: | OIDC protocol configuration for connecting to an identity provider, and validating the token we received. type: object required: - type properties: type: type: string enum: - oidc_idp client_id: description: | The OIDC client id. This value is from the identity provider. type: string client_secret: description: | The OIDC client secret. This value is from the identity provider. type: string token_scopes: description: | The scopes which to assign to the generated Access token. Scopes will be checked against the identity before validating. type: array items: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' pkce: $ref: '#/components/schemas/PkceConfig' jwks_url: description: | The URL that points to the ".well-known/jwks.json" of the identity provider. Must be a URL. type: string token_url: description: | The URL that points to the "/token" endpoint of the identity provider. Must be a URL. type: string authorize_url: description: | The "/authorize" URL to authenticate against inside of the identity provider. Must be a URL. type: string identifying_claim_name: description: | The name of the claim that specifies the user's identity inside of a token. type: string IdentityProviderListResponse: description: Represents a list of identity providers as a response body. type: object required: - identity_providers - total_size properties: identity_providers: description: The identity providers that are in the list. type: array items: $ref: '#/components/schemas/IdentityProviderResponse' total_size: description: The total number of identity providers contained by the Realm. type: integer format: uint minimum: 0 next_page_token: description: The value to be passed as the page_token parameter to retrieve the next page. type: string nullable: true IdentityProviderProtocolConfigOidcIdpResponse: description: | OIDC protocol configuration for connecting to an identity provider, and validating the token we received. type: object required: - client_id - client_secret - token_scopes - identity_attribute - pkce - jwks_url - token_url - authorize_url - redirect_url - identifying_claim_name - type properties: type: type: string enum: - oidc_idp client_id: description: | The OIDC client id. This value is from the identity provider. type: string client_secret: description: | The OIDC client secret. This value is from the identity provider. type: string token_scopes: description: | The scopes to assign to the generated Access token. Scopes will be checked against the identity before validating. type: array items: type: string identity_attribute: $ref: '#/components/schemas/SubjectField' pkce: $ref: '#/components/schemas/PkceConfig' jwks_url: description: | The URL that points to the ".well-known/jwks.json" of the identity provider. Must be a URL. type: string token_url: description: | The URL that points to the "/token" endpoint of the identity provider. Must be a URL. type: string authorize_url: description: | The "/authorize" URL to authenticate against inside of the identity provider. Must be a URL. type: string redirect_url: description: | Redirect URL provided by Beyond Identity that the IdP can redirect end users to after successful authorize call. This is an OIDC-compliant callback. type: string identifying_claim_name: description: | The name of the claim that specifies the user's identity inside of a token. type: string IdentityProviderProtocolConfigResponse: description: | Represents the protocol configuration that is used by the identity provider. oneOf: - $ref: '#/components/schemas/IdentityProviderProtocolConfigOidcIdpResponse' IdentityProviderResponse: description: Represents an identity provider. type: object required: - id - tenant_id - realm_id - protocol_config - display_name properties: id: description: | A unique identifier identifying an identity provider within a realm. This is automatically set on creation. This field is immutable and read-only. type: string readOnly: true tenant_id: type: string description: | A unique identifier for the identity provider's tenant. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 0001f1f460b1ace6 realm_id: type: string description: | A unique identifier for the identity provider's realm. This is automatically set on creation. This field is immutable and read-only. readOnly: true example: 8f5bec58229e6f29 display_name: type: string description: | The human-readable name associated with the identity provider. protocol_config: $ref: '#/components/schemas/IdentityProviderProtocolConfigResponse' IdentityProviderTestResponse: description: Represents an SSO config test response body. type: object required: - identity_provider_id - display_name - is_success - status_code properties: identity_provider_id: type: string display_name: type: string is_success: type: boolean status_code: type: string error_context: type: string FlowTypeConfig: title: FlowTypeConfig description: Flow type configuration for a tenant type: object properties: id: type: string description: | ID of the flow type configuration. This is automatically generated on creation. This field is immutable and output-only. minLength: 1 readOnly: true tenant_id: type: string description: ID of the tenant this configuration belongs to readOnly: true realm_id: type: string description: ID of the realm this configuration belongs to readOnly: true create_time: type: string format: date-time description: Timestamp when the flow type configuration was created readOnly: true update_time: type: string format: date-time description: Timestamp when the flow type configuration was last updated readOnly: true platform_config: $ref: '#/components/schemas/PlatformFlowTypeConfig' required: - id - tenant_id - realm_id - create_time - update_time - platform_config PlatformFlowTypeConfig: title: PlatformFlowTypeConfig description: Platform-specific flow type configurations type: object properties: android: $ref: '#/components/schemas/FlowTypeSet' macos: $ref: '#/components/schemas/FlowTypeSet' ios: $ref: '#/components/schemas/FlowTypeSet' windows: $ref: '#/components/schemas/FlowTypeSet' web: $ref: '#/components/schemas/FlowTypeSet' linux: $ref: '#/components/schemas/FlowTypeSet' chromeos: $ref: '#/components/schemas/FlowTypeSet' chromeosweb: $ref: '#/components/schemas/FlowTypeSet' required: - android - macos - ios - windows - web - linux - chromeos - chromeosweb FlowTypeSet: title: FlowTypeSet description: Set of flow type configurations for a platform type: object properties: unknown: $ref: '#/components/schemas/FlowTypeConfiguration' scheme: $ref: '#/components/schemas/FlowTypeConfiguration' embedded: $ref: '#/components/schemas/FlowTypeConfiguration' copy: $ref: '#/components/schemas/FlowTypeConfiguration' roaming_auth: $ref: '#/components/schemas/FlowTypeConfiguration' android_autofill: $ref: '#/components/schemas/FlowTypeConfiguration' android_accessibility: $ref: '#/components/schemas/FlowTypeConfiguration' pipe: $ref: '#/components/schemas/FlowTypeConfiguration' localhost: $ref: '#/components/schemas/FlowTypeConfiguration' universal_link: $ref: '#/components/schemas/FlowTypeConfiguration' safari_extension: $ref: '#/components/schemas/FlowTypeConfiguration' layered_auth_qr_code: $ref: '#/components/schemas/FlowTypeConfiguration' secure_localhost: $ref: '#/components/schemas/FlowTypeConfiguration' required: - unknown - scheme - embedded - copy - roaming_auth - android_autofill - android_accessibility - pipe - localhost - universal_link - safari_extension - layered_auth_qr_code - secure_localhost FlowTypeConfiguration: title: FlowTypeConfiguration description: Configuration for a specific flow type type: object properties: enabled: type: boolean description: Whether the this flow type is allowed to be used. valid: type: boolean description: Whether the flow type is valid and expected on a given platform required: - enabled - valid UpdatePlatformFlowTypeConfig: title: UpdatePlatformFlowTypeConfig description: Platform-specific flow type configurations for updates type: object properties: android: $ref: '#/components/schemas/UpdateFlowTypeSet' macos: $ref: '#/components/schemas/UpdateFlowTypeSet' ios: $ref: '#/components/schemas/UpdateFlowTypeSet' windows: $ref: '#/components/schemas/UpdateFlowTypeSet' web: $ref: '#/components/schemas/UpdateFlowTypeSet' linux: $ref: '#/components/schemas/UpdateFlowTypeSet' chromeos: $ref: '#/components/schemas/UpdateFlowTypeSet' chromeosweb: $ref: '#/components/schemas/UpdateFlowTypeSet' UpdateFlowTypeSet: title: UpdateFlowTypeSet description: Set of flow type configurations for a platform (update version) type: object properties: unknown: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' scheme: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' embedded: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' copy: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' roaming_auth: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' android_autofill: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' android_accessibility: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' pipe: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' localhost: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' universal_link: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' safari_extension: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' layered_auth_qr_code: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' secure_localhost: $ref: '#/components/schemas/UpdateFlowTypeConfiguration' UpdateFlowTypeConfiguration: title: UpdateFlowTypeConfiguration description: Configuration for a specific flow type (update version) type: object properties: enabled: type: boolean description: Whether the customer allows this flow type to be used. valid: type: boolean description: Whether the flow type is valid and expected on a given platform Error: type: object properties: code: type: string description: | Human-readable HTTP status code name, stylized as lower snake case (e.g. bad_request). message: type: string description: | Human-readable message describing the error. details: type: array items: $ref: '#/components/schemas/ErrorDetail' required: - code - message ErrorDetail: title: Error Detail description: | Additional details for errors designed to support client applications. type: object discriminator: propertyName: type properties: type: type: string description: Type of the error detail. required: - type FieldViolations: title: Field Violations description: Invalid request fields. allOf: - $ref: '#/components/schemas/ErrorDetail' - type: object properties: field_violations: type: array items: type: object properties: field: type: string description: The name of the field specifying an invalid value. description: type: string description: A description of the field violation. required: - field - description minItems: 1 ResourceInfo: title: Resource Information description: Resource information. allOf: - $ref: '#/components/schemas/ErrorDetail' - type: object properties: resource_type: type: string description: The type of the resource. id: type: string description: The ID of the resource. description: type: string description: | A description of the failure as it relates to this resource. For example, this may indicate that the resource is not found or that a precondition failed. required: - resource_type - id - description securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT description: | See the [Authentication](#section/Authentication) section for details. security: - BearerAuth: []