> ## Documentation Index > Fetch the complete documentation index at: https://docs.plainid.io/llms.txt > Use this file to discover all available pages before exploring further. # User Access Token > The User Access Token API call is an open-ended question for a specific user, returning the list of allowed Assets and their associated actions for a specific application. The API presents a generic request based primarily on the Identity and will return all requested Assets and Actions that are configured for this user in a single token. This API enables the scope to cache the list of authorized Assets for a user within the Application session, thus reducing the overall performance involved in enforcing access.
Refer to the headers below to modify your cURL sample. Check if the following headers are in the sample, if not, ensure you add it to your cURL sample before pasting into your API tool.
| Header | Value | cURL Line |
|---|---|---|
| Accept | application/json | 'accept: application/json' |
| Content-Type | application/json | 'content-type: application/json' |
In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right under the Try It\* or the Code Sample tabs. They will then appear in the cURL sample in the correct format to use in your API tool.
\*Try It function coming soon.
## OpenAPI
````json POST /api/runtime/token/v3
{
"openapi": "3.0.3",
"info": {
"title": "Authorization APIs",
"version": "1.0",
"description": "Applications, services, and authorizers use the Authorization APIs to receive the PlainID Access Decision from the PDP",
"contact": {
"name": "PlainID",
"url": "https://plainid.com",
"email": "contact@plainid.com"
},
"termsOfService": "https://plainid.com/terms",
"license": {
"name": "Commercial",
"url": "https://plainid.com/license"
}
},
"servers": [
{
"description": "United States",
"url": "https://tenant-name.us1.plainid.io"
},
{
"description": "Europe",
"url": "https://tenant-name.eu1.plainid.io"
},
{
"description": "Canada",
"url": "https://tenant-name.ca1.plainid.io"
},
{
"description": "Local PAA",
"url": "https://your-paa.acme.local"
}
],
"tags": [
{
"name": "runtime",
"description": "runtime"
},
{
"name": "Cache Management",
"description": "Cache invalidation operations for Runtime service"
}
],
"paths": {
"/api/runtime/token/v3": {
"post": {
"tags": [
"runtime"
],
"summary": "User Access Token",
"operationId": "UserAccessTokenPOST",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"$ref": "#/components/schemas/tokenResponse"
},
{
"$ref": "#/components/schemas/assetContextTokenResponse"
}
]
},
"examples": {
"Default Response": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "72xQ9i",
"attributes": {
"Path": [
"72xQ9i"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "05mZ1f",
"attributes": {
"Path": [
"05mZ1f"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
]
}
],
"contextData": {
"attribute": [
"ex1",
"ex2"
]
}
}
},
"includeAccessPolicy": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"permission": "Manage consumers accounts in branch",
"permissionId": "p1",
"action": "View"
}
]
},
{
"path": "72xQ9i",
"attributes": {
"Path": [
"72xQ9i"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"permission": "Manage consumers accounts in branch",
"permissionId": "p1",
"action": "View"
}
]
},
{
"path": "05mZ1f",
"attributes": {
"Path": [
"05mZ1f"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"permission": "Manage consumers accounts in branch",
"permissionId": "p1",
"action": "View"
}
]
}
]
}
],
"contextData": null
}
},
"includeAssetAttributes - False": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "72xQ9i",
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "05mZ1f",
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
]
}
],
"contextData": null
}
},
"includeIdentity": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "72xQ9i",
"attributes": {
"Path": [
"72xQ9i"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "05mZ1f",
"attributes": {
"Path": [
"05mZ1f"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
]
}
],
"identity": {
"type": "02a89b66-0a15-4b8e-be6d-84cb99da9b13",
"typeName": "User",
"attributes": {
"First_Name": [
"Araldo"
],
"uid": [
"xB724129"
],
"User_Branch": [
"San Jose"
],
"Last_Name": [
"Baudou"
],
"ID": [
"xB724129"
],
"title": [
"Teller"
],
"User_Type": [
"Internal"
]
}
},
"contextData": null
}
},
"includeContext": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "72xQ9i",
"attributes": {
"Path": [
"72xQ9i"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
},
{
"path": "05mZ1f",
"attributes": {
"Path": [
"05mZ1f"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
]
}
],
"contextData": {
"partner_id": "724f9f9b-af24-42fc-b97d-b399042ef00d"
}
}
},
"includeCacheInfo - Freshly Calculated": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
],
"additionalResponseInfo": {
"cacheUsageInformation": {
"usedCachedResponse": false,
"responseCachePeriodSeconds": 300,
"usedCachedIdentityData": []
}
}
}
],
"contextData": null
}
},
"includeCacheInfo - Served From Response Cache": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
],
"additionalResponseInfo": {
"cacheUsageInformation": {
"usedCachedResponse": true,
"responseCachePeriodSeconds": 300,
"usedCachedIdentityData": []
}
}
}
],
"contextData": null
}
},
"includeCacheInfo - Partial Identity Data Cache Hit": {
"value": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "27iX3j",
"attributes": {
"Path": [
"27iX3j"
],
"Account Type": [
"private"
],
"Account Branch": [
"San Jose"
]
},
"resourceType": "Bank Accounts",
"actions": [
{
"action": "View"
}
]
}
],
"additionalResponseInfo": {
"cacheUsageInformation": {
"usedCachedResponse": false,
"responseCachePeriodSeconds": 300,
"usedCachedIdentityData": [
{
"sourceId": "hr-system",
"cachePeriodSeconds": 60
}
]
}
}
}
],
"contextData": null
}
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
},
"examples": {
"400 Bad Request": {
"value": {
"bank_users1 is not a valid identity type": null
}
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
},
"examples": {
"401 Unauthorized - MissingSecret": {
"value": {
"Missing secret": null
}
}
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
},
"examples": {
"403 Forbidden - InvalidSecret": {
"value": {
"Invalid secret": null
}
}
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {}
},
"examples": {
"500 - Request ": {
"value": {
"Asset provider is missing in config": "Accounts"
}
}
}
}
}
},
"501": {
"$ref": "#/components/responses/genericErrors"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"x-examples": {
"example-1": {
"entityId": "angela_bell",
"clientId": "string",
"clientSecret": "string",
"listOfResources": [
{
"array": null
}
],
"resourceTypes": [
{
"array": null
}
],
"action": "string",
"path": "string",
"entityTypeId": "string",
"entityAttributes": [
{
"array": null
}
],
"contextData": null,
"environment": {
"{array}": [
{
"list": null
}
]
},
"remoteIp": "string",
"timeZoneOffset": 0,
"includeDetails": false,
"includeIdentity": false,
"includeAccessPolicy": false,
"includeAccessPolicyId": false,
"includeAssetAttributes": false,
"accessTokenFormat": "JSON",
"useCache": true
}
},
"properties": {
"entityId": {
"type": "string",
"minLength": 1,
"description": "Unique identifier of the Identity"
},
"clientId": {
"type": "string",
"minLength": 1,
"description": "Client ID of the Scope Refer to the headers below to modify your cURL sample. Check if the following headers are in the sample, if not, ensure you add it to your cURL sample before pasting into your API tool. In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right under the Try It\\* or the Code Sample tabs. They will then appear in the cURL sample in the correct format to use in your API tool. ",
"x-internal": false,
"parameters": [
{
"schema": {
"type": "string"
},
"name": "X-Client-Id",
"in": "header",
"description": "Client ID of the Scope
The Client ID is **required**, ensure that it is defined either in the header as `X-Client-Id` or in the body as `clientId`."
},
"clientSecret": {
"type": "string",
"minLength": 1,
"description": "Client Secret ID of the Scope.
You can also authenticate with an Authorization Token (in your API tool). Note that the X-Client-Id is still required, whether in the header or the body. Refer to [Setting up an Authentication Method](https://docs.plainid.io/v1/docs/managing-scope-authentication#setting-up-an-authentication-method-in-the-scope) for more information."
},
"entityTypeId": {
"type": "string",
"minLength": 1,
"description": "Identity Template ID"
},
"entityAttributes": {
"type": "object",
"description": "List of Identity Attributes and their values.\n\nIf not defined, Dynamic groups based on virtual attributes will not be considered in the Access Decision.",
"properties": {
"string": {
"type": "array",
"items": {}
}
}
},
"contextData": {
"type": "object",
"description": "Identity Context data for this request.\n\nWhen specifying this parameter, you are requesting information based on a specific parameter and its value.\n\nFor example, Location where the contextData equals a specific branch.\n\nIf not defined, Dynamic groups based on context data will not be considered in the Access Decision.",
"properties": {
"string": {
"type": "array",
"items": {}
}
}
},
"environment": {
"type": "object",
"description": "Environmental parameters need to be defined in policies as request.Notice
When accessing the Authorization APIs, the URL base/prefix, according to your PlainID PDP Location
For more information on which Asset Types to use with your PAA or Cloud PDP, refer to Managing Asset Types.\n
\nImportant note about headers
Headers
*Required Header Value cURL Line Accept application/json'accept: application/json'Content-Type application/json'content-type: application/json'
\n\ncURL Sample Guidelines
\\*Try It function coming soon.
The clientId is **required**, ensure that it is defined either in the header as `X-Client-Id` or in the body as `clientId`.",
"required": false
},
{
"schema": {
"type": "string"
},
"name": "X-Client-Secret",
"in": "header",
"description": "Client Secret ID of the Scope.
You can also authenticate with an Authorization Token (in your API tool). Note that the X-Client-Id is still required, whether in the header or the body. Refer to [Setting up an Authentication Method](https://docs.plainid.io/v1/docs/managing-scope-authentication#setting-up-an-authentication-method-in-the-scope) for more information.",
"required": false
}
]
}
}
},
"components": {
"schemas": {
"tokenResponse": {
"type": "object",
"x-examples": {
"Example 1": {
"tokenValidity": 0,
"response": [
{
"access": [
{
"path": "Transfer_Bank_US",
"attributes": {
"account_number": [
"us123353"
],
"state": [
"US"
],
"balance": [
7000
],
"type": [
"private"
]
},
"resourceType": "Bank_Accounts",
"actions": [
{
"action": "approve"
}
]
},
{
"path": "/orders",
"attributes": {
"customer_type": [
"private"
],
"order_type": [
"credit card"
]
},
"resourceType": "Orders",
"actions": [
{
"action": "approve"
}
]
}
],
"contextData": {
"branch_id": [
"512"
]
}
}
]
}
},
"properties": {
"tokenValidity": {
"type": "integer"
},
"response": {
"type": "array",
"items": {
"type": "object",
"properties": {
"access": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"attributes": {
"type": "object"
},
"resourceType": {
"type": "string"
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"permission": {
"type": "string"
},
"permissionId": {
"type": "string"
},
"permissionMetadata": {
"$ref": "#/components/schemas/permissionMetadata"
}
}
}
}
}
}
}
}
}
},
"counters": {
"description": "Access token response authorized resources counters",
"type": "object",
"properties": {
"totalAuthorizedResources": {
"description": "Total count of authorized resources",
"type": "integer"
},
"byResourceType": {
"description": "An array of counters for each resource type",
"type": "array",
"items": {
"type": "object",
"properties": {
"resourceType": {
"description": "Resource type name",
"type": "string"
},
"total": {
"description": "A counter for resource type",
"type": "integer"
},
"byActions": {
"description": "An array of counters for each resource type action",
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"description": "Resource type action name",
"type": "string"
},
"count": {
"description": "A counter for resource type action",
"type": "integer"
}
}
}
}
}
}
}
}
},
"contextData": {
"type": "object",
"properties": {
"attribute": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"identity": {
"$ref": "#/components/schemas/identityResponse"
},
"additionalIdentities": {
"type": "array",
"items": {
"$ref": "#/components/schemas/identityResponse"
}
},
"additionalResponseInfo": {
"$ref": "#/components/schemas/additionalResponseInfoResponse"
}
}
},
"assetContextTokenResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"assetContext": {
"type": "object",
"anyOf": [
{
"$ref": "#/components/schemas/assetContextResponseItem"
},
{
"$ref": "#/components/schemas/assetContextMergedResponseItem"
}
]
},
"output": {
"type": "object",
"properties": {
"accessResponse": {
"$ref": "#/components/schemas/tokenResponse"
},
"error": {
"type": "string"
}
}
}
}
}
}
}
},
"additionalIdentitiesInput": {
"type": "array",
"description": "A list of additional Identities to be considered in the Access Decision. If all identities are defined in this parameter, the root-level `entityId`, `entityTypeId`, and `entityAttributes` parameters can be omitted.",
"items": {
"type": "object",
"properties": {
"entityId": {
"type": "string",
"description": "Unique identifier of the Identity (e.g. UID)"
},
"entityTypeId": {
"type": "string",
"description": "Identity Template ID"
},
"entityAttributes": {
"description": "List of Identity Attributes and their values.",
"type": "object",
"properties": {
"string": {
"type": "array",
"items": {}
}
}
}
}
}
},
"assetListInput": {
"type": "array",
"description": "Contains a list of the Asset's unique identifier and attributes",
"items": {
"type": "object",
"properties": {
"template": {
"type": "string",
"description": "Asset Template ID"
},
"path": {
"type": "string",
"description": "Asset Unique Identifier"
},
"assetAttributes": {
"description": "",
"type": "object",
"properties": {
"attribute_1": {
"type": "array",
"items": {
"type": "string"
}
},
"attribute_2": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
},
"resourceTypesInput": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Resource Type is the Asset Template ID. This can be found in the Asset Type Settings."
},
"attributeList": {
"type": "array",
"description": "A list of Attributes. This can be found in the Asset Type Settings. The list of Attributes are applied on each resourceType in the request, and if applicable, will be part of the response. If no Attributes are specified, Attributes are not included in the response,.
Ensure that the `includeAssetAttributes` parameter is set to `true` for the `attributeList` parameter to work. If set to `false`, Attributes are not returned.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "The name of the Action/s. This can be found in the Asset Type Settings. The list of Actions are applied on each `resourceType` in the request, and if applicable, will be part of the response. If no Actions are specified, all Actions for each `resourceType` are included in the response.",
"items": {
"type": "string"
}
},
"dataPropertyKey": {
"type": "string",
"default": "path",
"description": "For Data Instructions requests. The key is in use in the properties calculation of the Data Instructions."
}
},
"required": [
"name"
]
},
"description": "This parameter enables you to decrease the payload size by including a list of Asset Types, their Attributes, and/or associated Actions, which also return in the response. If not specified, all resources from all Resource Types will be included. Ensure you are sending either `resourceTypes` or `allResourceTypes` in the request. Sending both will result in an error. "
},
"allResourceTypesInput": {
"type": "object",
"properties": {
"attributeList": {
"type": "array",
"description": "A list of Attributes. This can be found in the Asset Type Settings. The list of Attributes are applied on each `resourceType` in the request, and if applicable, will be part of the response. If no Attributes are specified, all Attributes for each resourceType are included in the response.
Ensure that the `includeAssetAttributes` parameter is set to `true` for the `attributeList` parameter to work. If set to `false`, Attributes are not returned.",
"items": {
"type": "string"
}
},
"actions": {
"type": "array",
"description": "The name of the Action/s. This can be found in the Asset Type Settings. The list of Actions are applied on each `resourceType` in the request, and if applicable, will be part of the response. If no Actions are specified, all Actions for each `resourceType` are included in the response.",
"items": {
"type": "string"
}
}
},
"description": "This parameter enables you to decrease the payload size by including a list of Asset Types, their Attributes, and/or associated Actions, which also return in the response. If not specified, all resources from all Resource Types will be included. Ensure you are sending either `allResourceTypes` or `resourceTypes` in the request. Sending both will result in an error. "
},
"assetContextRequestItem": {
"type": "object",
"required": [
"resourceType"
],
"properties": {
"key": {
"type": "string",
"description": "An auto-generated key to set the correlation between the requested object and the response object (optional). When working with a single assetContext object, use the “singleObjectResponse” value to align to the original structure response."
},
"resourceType": {
"type": "string"
},
"path": {
"type": "string"
},
"action": {
"type": "string"
},
"assetAttributes": {
"description": "",
"type": "object",
"properties": {
"attribute_1": {
"type": "array",
"items": {
"type": "string"
}
},
"attribute_2": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"identitySourcesFilterByIDs": {
"allOf": [
{
"$ref": "#/components/schemas/operationalFilter"
},
{
"type": "object",
"properties": {
"filterProperties": {
"type": "object",
"required": [
"filterAction",
"objectsList"
],
"properties": {
"filterAction": {
"type": "string",
"enum": [
"INCLUDE",
"EXCLUDE"
]
},
"objectsList": {
"type": "array",
"items": {
"type": "string",
"description": "Input your sourceID/s here. For information on the sourceID parameter and where to locate it, check out Managing Attribute Sources in the PlainID documentation."
}
}
}
}
}
}
]
},
"permissionMetadata": {
"type": "object",
"minProperties": 1,
"description": "Additional response metadata. This response is only returned when the `includeAccessPolicy` is set to true, and when the `permissionMetadata` object contains one or more properties. "
},
"identityResponse": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"typeName": {
"type": "string"
},
"attributes": {
"type": "object"
}
}
},
"additionalResponseInfoResponse": {
"type": "object",
"properties": {
"identitySources": {
"type": "object",
"properties": {
"skipped": {
"type": "array",
"items": {
"$ref": "#/components/schemas/identitySourceInfo"
}
},
"failed": {
"type": "array",
"items": {
"$ref": "#/components/schemas/identitySourceInfo"
}
}
}
},
"cacheUsageInformation": {
"type": "object",
"description": "Appears only when the request sets `includeCacheInfo=true`.",
"properties": {
"usedCachedResponse": {
"type": "boolean",
"description": "`true` when the entire response was served from the response (scope) cache.
`false` when the response was freshly calculated: a cache miss, `useCache=false`, no response-cache TTL configured for the scope or a request sent right after the response cache was invalidated."
},
"responseCachePeriodSeconds": {
"type": "integer",
"description": "The scope's configured response-cache TTL in seconds."
},
"usedCachedIdentityData": {
"type": "array",
"description": "The identity sources whose attribute data was served from the identity cache during this request's identity retrieval. Empty when the whole response came from the response cache (identity retrieval never ran, see `usedCachedResponse`), when every identity source configured for this request had caching disabled, or when every source was fetched fresh (including a partial fetch after a source's cache entry expired or was invalidated). ",
"items": {
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"description": "The Identity Source ID"
},
"sourceName": {
"type": "string",
"description": "The Identity Source's name."
},
"cachePeriodSeconds": {
"type": "integer",
"description": "The Source's own configured identity-cache TTL, in seconds. Sources with identity caching disabled do not appear here."
}
}
}
}
}
}
}
},
"assetContextResponseItem": {
"type": "object",
"anyOf": [
{
"properties": {
"key": {
"type": "string",
"description": "An auto-generated key to set the correlation between the requested object and the response object (optional). When working with a single assetContext object, use the “singleObjectResponse” value to align to the original structure response."
}
}
},
{
"properties": {
"resourceType": {
"type": "string"
},
"path": {
"type": "string"
},
"action": {
"type": "string"
},
"assetAttributes": {
"description": "",
"type": "object",
"properties": {
"attribute_1": {
"type": "array",
"items": {
"type": "string"
}
},
"attribute_2": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
]
},
"assetContextMergedResponseItem": {
"type": "object",
"properties": {
"resources": {
"type": "array",
"items": {
"$ref": "#/components/schemas/assetContextResponseItem"
}
}
}
},
"GenericErrorsArray": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"uniqueItems": true,
"minItems": 1,
"items": {
"$ref": "#/components/schemas/GenericError"
}
}
},
"required": [
"errors"
],
"x-examples": {
"example-1": {
"errors": [
{
"id": "XXXX",
"code": "YYYY",
"message": "Invalid request"
}
]
}
}
},
"operationalFilter": {
"type": "object",
"required": [
"filterType"
],
"properties": {
"filterType": {
"type": "string"
}
},
"discriminator": {
"propertyName": "filterType"
}
},
"identitySourceInfo": {
"type": "object",
"properties": {
"sourceId": {
"type": "string"
},
"sourceName": {
"type": "string"
},
"message": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"GenericError": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"code": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"message": {
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"code",
"message",
"name"
]
}
},
"responses": {
"genericErrors": {
"description": "Example response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GenericErrorsArray"
},
"examples": {
"generic_error_skeleton": {
"value": {
"errors": [
{
"id": "XXXX",
"code": "YYYY",
"name": "ZZZZ",
"message": "Invalid request"
}
]
}
}
}
}
}
}
}
}
}
````