

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Access Control API (Deprecated)",
    "description": "<b>This set of endpoints are deprecated.</b> Please use the new [endpoints](/access-resource-policy) for managing resource policies.\n\nThis service allows customers and administrators to restrict project and player read/write access for gaming services.\n",
    "version": "1.0.0",
    "contact": {
      "name": "Unity Support",
      "url": "https://support.unity.com/"
    }
  },
  "servers": [
    {
      "url": "https://services.api.unity.com"
    }
  ],
  "tags": [
    {
      "name": "ProjectPolicy",
      "description": "Project Policy Operations"
    },
    {
      "name": "PlayerPolicy",
      "description": "Player Policy Operations"
    }
  ],
  "paths": {
    "/access/v1/projects/{projectId}/environments/{environmentId}/resource-policy": {
      "get": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.project_resource_policy.get"
            ]
          }
        ],
        "tags": [
          "ProjectPolicy"
        ],
        "summary": "Get a project based policy",
        "description": "This endpoint is deprecated, please use the new [get policy](/access-resource-policy#tag/ProjectPolicy/operation/getPolicy) endpoint.\n\nA policy consists of multiple policy statements. This endpoint will return a Policy object containing an array of all non-expired policy statements in that policy.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          }
        ],
        "operationId": "getPolicy",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Policy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      },
      "patch": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.project_resource_policy.update"
            ]
          }
        ],
        "tags": [
          "ProjectPolicy"
        ],
        "description": "This endpoint is deprecated, please use the new [upsert policy](/access-resource-policy#tag/ProjectPolicy/operation/upsertPolicy) endpoint.\n\nCreate or update a project based policy. A maximum of 500 non-expired statements per policy can be created/updated.\n",
        "summary": "Create or update a project based policy",
        "operationId": "upsertPolicy",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Policy"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK",
            "headers": {
              "Content-Location": {
                "schema": {
                  "type": "string"
                },
                "description": "Contains API path to fetch project based policy"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ValidationError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      }
    },
    "/access/v1/projects/{projectId}/environments/{environmentId}/resource-policy:delete-statements": {
      "post": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.project_resource_policy.update"
            ]
          }
        ],
        "tags": [
          "ProjectPolicy"
        ],
        "summary": "Delete policy statement(s)",
        "description": "This endpoint is deprecated, please use the new [delete policy statements](/access-resource-policy#tag/ProjectPolicy/operation/deletePolicyStatements) endpoint.\n\nDelete policy statement(s) for project-based policy.\n",
        "operationId": "deletePolicyStatements",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteOptions"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/ValidationError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      }
    },
    "/access/v1/projects/{projectId}/environments/{environmentId}/players/{playerId}/resource-policy": {
      "get": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.player_resource_policy.get"
            ]
          }
        ],
        "tags": [
          "PlayerPolicy"
        ],
        "summary": "Get a player based policy",
        "description": "This endpoint is deprecated, please use the new [get player policy](/access-resource-policy#tag/PlayerPolicy/operation/getPlayerPolicy) endpoint.\n\nA policy consists of multiple policy statements. This endpoint will return a Policy object containing an array of all non-expired policy statements in that policy.\n",
        "operationId": "getPlayerPolicy",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          },
          {
            "$ref": "#/components/parameters/PlayerId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerPolicy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      },
      "patch": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.player_resource_policy.update"
            ]
          }
        ],
        "tags": [
          "PlayerPolicy"
        ],
        "description": "This endpoint is deprecated, please use the new [upsert player policy](/access-resource-policy#tag/PlayerPolicy/operation/upsertPlayerPolicy) endpoint.\n\nCreate or update a player based policy. A maximum of 500 non-expired statements per policy can be created/updated.\n",
        "summary": "Create or update a player based policy",
        "operationId": "upsertPlayerPolicy",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayerPolicyUpsert"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          },
          {
            "$ref": "#/components/parameters/PlayerId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK",
            "headers": {
              "Content-Location": {
                "schema": {
                  "type": "string"
                },
                "description": "Contains API path to fetch player based policy"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ValidationError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      }
    },
    "/access/v1/projects/{projectId}/environments/{environmentId}/players/{playerId}/resource-policy:delete-statements": {
      "post": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.player_resource_policy.update"
            ]
          }
        ],
        "tags": [
          "PlayerPolicy"
        ],
        "summary": "Delete policy statement(s)",
        "description": "This endpoint is deprecated, please use the new [delete player policy statements](/access-resource-policy#tag/PlayerPolicy/operation/deletePlayerPolicyStatements) endpoint.\n\nDelete policy statement(s) for player-based policy.\n",
        "operationId": "deletePlayerPolicyStatements",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteOptions"
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          },
          {
            "$ref": "#/components/parameters/PlayerId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/ValidationError"
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      }
    },
    "/access/v1/projects/{projectId}/environments/{environmentId}/players/resource-policy": {
      "get": {
        "deprecated": true,
        "security": [
          {
            "ServiceAccount": [
              "unity.player_resource_policy.get"
            ]
          }
        ],
        "tags": [
          "PlayerPolicy"
        ],
        "summary": "Get all player based policies in project",
        "description": "This endpoint is deprecated, please use the new [get all player policies](/access-resource-policy#tag/PlayerPolicy/operation/getAllPlayerPolicies) endpoint.\n\nThis endpoint returns all player based policies which belong to a specific project and environment.\n\nBy default, the API returns 5 results per page. The number of results per page can be customized by including the limit query parameter in the request. To retrieve subsequent pages of results, pass the next query parameter, the value of which will be provided in the response body of the first paginated response.",
        "operationId": "getAllPlayerPolicies",
        "parameters": [
          {
            "$ref": "#/components/parameters/ProjectId"
          },
          {
            "$ref": "#/components/parameters/EnvironmentId"
          },
          {
            "in": "query",
            "name": "limit",
            "description": "max results per page - is ignored if `next` query parameter is provided",
            "schema": {
              "type": "integer"
            },
            "example": 5
          },
          {
            "in": "query",
            "name": "next",
            "description": "pagination token for requesting next page of results",
            "schema": {
              "type": "string",
              "format": "base64"
            },
            "example": "eyJuZXh0IjoiNTliZDIwYjItMWE5My00Y2YxLWJhZWYtYWY3ZTJiNThmZGY2IiwibGltaXQiOjN9"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerPolicies"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/AuthenticationError"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "ProjectId": {
        "name": "projectId",
        "in": "path",
        "description": "ID of the project",
        "required": true,
        "schema": {
          "type": "string"
        },
        "example": "8bdacc33-6eef-4577-beb0-633c86259f0b"
      },
      "EnvironmentId": {
        "schema": {
          "type": "string"
        },
        "name": "environmentId",
        "in": "path",
        "description": "ID of the environment",
        "required": true,
        "example": "8bdacc33-6eef-4577-beb0-633c86259f0a"
      },
      "PlayerId": {
        "schema": {
          "type": "string"
        },
        "name": "playerId",
        "in": "path",
        "description": "ID of the player",
        "required": true,
        "example": "8bdacc33-6eef-4577-beb0-633c86259f0c"
      }
    },
    "securitySchemes": {
      "ServiceAccount": {
        "type": "http",
        "scheme": "basic",
        "description": "## Authentication\nTo get started with Authentication, please visit the [Service Account Authentication section](https://services.docs.unity.com/docs/service-account-auth).\n\nFor this API, you will need to add the following role(s) to your service account :\n| Role Type | Role Name | Permissions |\n| --- | --- | --- |\n| Project Level Role | Project Resource Policy Reader | <ul><li> unity.project_resource_policy.get </li></ul> |\n| Project Level Role | Project Resource Policy Editor | <ul><li> unity.project_resource_policy.get </li><li> unity.project_resource_policy.update </li><li> unity.project_resource_policy.delete </li></ul> |\n| Project Level Role | Player Resource Policy Reader | <ul><li> unity.player_resource_policy.get </li></ul> |\n| Project Level Role | Player Resource Policy Editor | <ul><li> unity.player_resource_policy.get </li><li> unity.player_resource_policy.update </li><li> unity.player_resource_policy.delete </li></ul> |"
      }
    },
    "schemas": {
      "Policy": {
        "title": "Policy",
        "description": "A Policy consists of an array of Policy statements that make up the Resource Policy",
        "type": "object",
        "properties": {
          "statements": {
            "title": "statements",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectStatement"
            }
          }
        }
      },
      "PlayerPolicy": {
        "title": "PlayerPolicy",
        "type": "object",
        "description": "A player policy consists of an array of Policy statements that make up the Resource Policy for a player",
        "properties": {
          "playerId": {
            "type": "string",
            "example": "HgIZuzj0MwDwPO062o0BSVxAcFAV"
          },
          "statements": {
            "title": "statements",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlayerStatement"
            }
          }
        },
        "required": [
          "playerId",
          "statements"
        ]
      },
      "PlayerPolicyUpsert": {
        "title": "PlayerPolicyUpsertSchema",
        "description": "A schema for upserting player policy",
        "type": "object",
        "properties": {
          "statements": {
            "title": "statements",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlayerStatement"
            }
          }
        }
      },
      "ProjectStatement": {
        "title": "Statement",
        "type": "object",
        "description": "A Statement is a single set of rules for accessing a resource",
        "properties": {
          "Sid": {
            "type": "string",
            "description": "Statement ID. Consists of alphanumeric characters and hyphen, and must be of length between 6 and 60 chars.",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{5,59}$",
            "example": "statement_id1"
          },
          "Action": {
            "type": "array",
            "description": "User action against which the policy statement will be applicable. Allowable values are \"Read\", \"Write\", \"*\", \"Vivox:JoinMuted\", \"Vivox:JoinAllMuted, \"Vivox:JoinWithConsent\", \"Vivox:JoinWithConsent\".",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "x-unity-extensible-enum": [
                "Read",
                "Write",
                "*",
                "Vivox:JoinMuted",
                "Vivox:JoinAllMuted",
                "Vivox:JoinWithConsent"
              ]
            }
          },
          "Effect": {
            "description": "Effect of the policy statement. Allowable values are \"Allow\" and \"Deny\"",
            "type": "string",
            "x-unity-extensible-enum": [
              "Allow",
              "Deny"
            ]
          },
          "Principal": {
            "x-unity-extensible-enum": [
              "Player",
              "Unauthenticated"
            ],
            "type": "string",
            "description": "The principal the statement applies to, Allowed values are \"Player\" and \"Unauthenticated\""
          },
          "Resource": {
            "type": "string",
            "description": "Uniform resource name of the resource(s) being targeted by the policy. The format is `urn:ugs:<service-name>:/<path>`. For example, `urn:ugs:*` targets all services. Some other examples are <ul><li>`urn:ugs:cloud-code:/v1/projects/*/scripts/*`</li> <li>`urn:ugs:economy:/*`</li></ul>",
            "pattern": "^urn:ugs:(([a-z-]*:){1}[*/]*[/a-z0-9-*]*|\\*{1})",
            "example": "urn:ugs:cloud-save:*"
          },
          "ExpiresAt": {
            "type": "string",
            "example": "2020-07-20T18:30:51.243Z",
            "description": "UTC time (ISO 8601 extended format) when the policy expires",
            "format": "date-time"
          },
          "Version": {
            "type": "string"
          }
        },
        "required": [
          "Sid",
          "Action",
          "Effect",
          "Principal",
          "Resource"
        ],
        "x-examples": {
          "Example 1": {
            "Sid": "DenyAccessToAllServices",
            "Action": [
              "*"
            ],
            "Effect": "Deny",
            "Principal": "Player",
            "Resource": "urn:ugs:*",
            "ExpiresAt": "2020-07-20T18:30:51.243Z",
            "Version": "string"
          },
          "Example 2": {
            "Sid": "AllowAccessToCloudSave",
            "Action": [
              "*"
            ],
            "Effect": "Allow",
            "Principal": "Player",
            "Resource": "urn:ugs:cloud-save:*",
            "ExpiresAt": "2020-07-20T18:30:51.243Z",
            "Version": "string"
          }
        }
      },
      "PlayerStatement": {
        "title": "Statement",
        "type": "object",
        "description": "A Statement is a single set of rules for accessing a resource",
        "properties": {
          "Sid": {
            "type": "string",
            "description": "Statement ID. Consists of alphanumeric characters and hyphen, and must be of length between 6 and 60 chars.",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{5,59}$",
            "example": "statement_id1"
          },
          "Action": {
            "type": "array",
            "description": "User action against which the policy statement will be applicable. Allowable values are \"Read\", \"Write\", \"*\", \"Vivox:JoinMuted\", \"Vivox:JoinAllMuted\", \"Vivox:JoinWithConsent\".",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "x-unity-extensible-enum": [
                "Read",
                "Write",
                "*",
                "Vivox:JoinMuted",
                "Vivox:JoinAllMuted",
                "Vivox:JoinWithConsent"
              ]
            }
          },
          "Effect": {
            "description": "Effect of the policy statement. Allowable values are \"Allow\" and \"Deny\"",
            "type": "string",
            "x-unity-extensible-enum": [
              "Allow",
              "Deny"
            ]
          },
          "Principal": {
            "x-unity-extensible-enum": [
              "Player"
            ],
            "type": "string",
            "description": "The principal the statement applies to, Allowed value is \"Player\""
          },
          "Resource": {
            "type": "string",
            "description": "Uniform resource name of the resource(s) being targeted by the policy. The format is `urn:ugs:<service-name>:/<path>`. For example, `urn:ugs:*` targets all services. Some other examples are <ul><li>`urn:ugs:cloud-code:/v1/projects/*/scripts/*`</li> <li>`urn:ugs:economy:/*`</li></ul>",
            "pattern": "^urn:ugs:(([a-z-]*:){1}[*/]*[/a-z0-9-*]*|\\*{1})",
            "example": "urn:ugs:cloud-save:*"
          },
          "ExpiresAt": {
            "type": "string",
            "example": "2020-07-20T18:30:51.243Z",
            "description": "UTC time (ISO 8601 extended format) when the policy expires",
            "format": "date-time"
          },
          "Version": {
            "type": "string"
          }
        },
        "required": [
          "Sid",
          "Action",
          "Effect",
          "Principal",
          "Resource"
        ],
        "x-examples": {
          "Example 1": {
            "Sid": "DenyAccessToAllServices",
            "Action": [
              "*"
            ],
            "Effect": "Deny",
            "Principal": "Player",
            "Resource": "urn:ugs:*",
            "ExpiresAt": "2020-07-20T18:30:51.243Z",
            "Version": "string"
          },
          "Example 2": {
            "Sid": "AllowAccessToCloudSave",
            "Action": [
              "*"
            ],
            "Effect": "Allow",
            "Principal": "Player",
            "Resource": "urn:ugs:cloud-save:*",
            "ExpiresAt": "2020-07-20T18:30:51.243Z",
            "Version": "string"
          }
        }
      },
      "PlayerPolicies": {
        "type": "object",
        "description": "Contains an array of Player Policies and a pagination token",
        "properties": {
          "next": {
            "type": "string",
            "format": "base64",
            "example": "eyJuZXh0IjoiNTliZDIwYjItMWE5My00Y2YxLWJhZWYtYWY3ZTJiNThmZGY2IiwibGltaXQiOjN9"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlayerPolicy"
            }
          }
        },
        "required": [
          "results"
        ],
        "x-examples": {
          "Example 1": {
            "next": "eyJuZXh0IjoiNTliZDIwYjItMWE5My00Y2YxLWJhZWYtYWY3ZTJiNThmZGY2IiwibGltaXQiOjN9",
            "results": [
              {
                "playerId": "string",
                "statements": [
                  {
                    "Sid": "statement_id1",
                    "Action": [
                      "Read"
                    ],
                    "Effect": "Allow",
                    "Principal": "Player",
                    "Resource": "urn:ugs:cloud-save:*",
                    "ExpiresAt": "2020-07-20T18:30:51.243Z",
                    "Version": "string"
                  }
                ]
              }
            ]
          }
        },
        "title": "Player Policies"
      },
      "DeleteOptions": {
        "title": "DeleteOptions",
        "type": "object",
        "description": "Options for deleting project policy statements",
        "properties": {
          "statementIDs": {
            "type": "array",
            "description": "Array of statement IDs which are to be deleted from the policy",
            "minItems": 1,
            "example": [
              "statementId1",
              "statementId2"
            ],
            "items": {
              "type": "string",
              "description": "Statement ID. Consists of alphanumeric characters and hyphen, and must be of length between 6 and 60 chars.",
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{5,59}$"
            }
          }
        },
        "required": [
          "statementIDs"
        ]
      }
    },
    "responses": {
      "ValidationError": {
        "description": "Bad Request",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "ValidationError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Bad Request"
                },
                "status": {
                  "type": "integer",
                  "example": 400
                },
                "detail": {
                  "type": "string",
                  "example": "Something is wrong"
                },
                "details": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "example": {
                      "code": "ERROR_CODE_123",
                      "path": "nested.value",
                      "message": "Invalid value"
                    }
                  }
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "AuthenticationError": {
        "description": "Unauthorized",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "AuthenticationError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Unauthorized"
                },
                "status": {
                  "type": "integer",
                  "example": 401
                },
                "detail": {
                  "type": "string",
                  "example": "Something is wrong"
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "AuthorizationError": {
        "description": "Forbidden",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "AuthorizationError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Forbidden"
                },
                "status": {
                  "type": "integer",
                  "example": 403
                },
                "detail": {
                  "type": "string",
                  "example": "Something is wrong"
                },
                "code": {
                  "type": "integer",
                  "description": "Gateway Error Code",
                  "example": 56
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "NotFoundError": {
        "description": "Not Found",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "NotFoundError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Not Found"
                },
                "status": {
                  "type": "integer",
                  "example": 404
                },
                "detail": {
                  "type": "string",
                  "example": "Something is wrong"
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "TooManyRequestsError": {
        "description": "Too Many Requests",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "TooManyRequestsError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Too Many Requests"
                },
                "status": {
                  "type": "integer",
                  "example": 429
                },
                "detail": {
                  "type": "string",
                  "example": "Something is wrong"
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server Error",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "InternalServerError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Internal Server Error"
                },
                "status": {
                  "type": "integer",
                  "example": 500
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      },
      "ServiceUnavailableError": {
        "description": "Service Unavailable",
        "content": {
          "application/problem+json": {
            "schema": {
              "title": "ServiceUnavailableError",
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Service Unavailable"
                },
                "status": {
                  "type": "integer",
                  "example": 503
                },
                "requestId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "Request correlation ID",
                  "example": "aad109f8-033f-4a24-8b77-5032eb3a6158"
                }
              }
            }
          }
        }
      }
    }
  }
}
```