{
  "openapi": "3.0.0",
  "info": {
    "title": "Account Management API",
    "version": "2"
  },
  "paths": {
    "/.well-known/openid-configuration": {
      "get": {
        "operationId": "FetchOpenIDConfiguration",
        "description": "Fetches the information about the OpenID provider's configuration. For more details, see https://openid.net/specs/openid-connect-discovery-1_0.html.",
        "x-optionalSecurity": true,
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/openidConfiguration"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/accounts/forgot_link": {
      "get": {
        "operationId": "GetForgotLink",
        "description": "Get forgot password link by login.\n*WARNING.* Endpoint is disabled.",
        "x-optionalSecurity": true,
        "parameters": [
          {
            "name": "login",
            "description": "User login.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "User login.",
              "example": "mylogin@acronis.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/forgot_link"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/applications": {
      "get": {
        "operationId": "FetchApplications",
        "description": "Fetches a list of all registered applications.",
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/applicationsList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/applications/{application_id}": {
      "get": {
        "operationId": "FetchApplication",
        "description": "Fetches the information about the application by ID.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/application"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/applications/{application_id}/bindings/tenants/{tenant_id}": {
      "post": {
        "operationId": "TurnOnTenantApplication",
        "description": "Turns the application on for the tenant.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Application was successfully turned on.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "TurnOffTenantApplication",
        "description": "Turns the application off for the tenant.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Application was successfully turned off.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/applications/{application_id}/settings/tenants/{tenant_id}/{setting_name}": {
      "delete": {
        "operationId": "DeleteTenantApplicationSetting",
        "description": "Deletes own setting of the tenant's application.\nThe setting will be inherited from parent tenants when deleted.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "setting_name",
            "description": "A name of the application's setting.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "A name of the application's setting.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Own application setting was successfully deleted.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateTenantApplicationSetting",
        "description": "Updates a setting of the tenant's application.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "setting_name",
            "description": "A name of the application's setting.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "A name of the application's setting.",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/settingPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Own setting was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/setting"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchTenantApplicationSetting",
        "description": "Fetches a setting of the tenant's application.",
        "parameters": [
          {
            "name": "application_id",
            "description": "Application ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Application ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "setting_name",
            "description": "A name of the application's setting.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "A name of the application's setting.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/setting"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/clients": {
      "post": {
        "operationId": "CreateClient",
        "description": "Creates a new client.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clientPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Client was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clientPostResult"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin",
              "urn:acronis.com::account-server::replication_manager",
              "urn:acronis.com::account-server::managed_clients_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchClientsBatch",
        "description": "Fetches a batch of clients.",
        "parameters": [
          {
            "name": "uuids",
            "description": "A filter by comma-separated list of client's UUIDs.",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of client's UUIDs.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(,[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})*",
              "minLength": 36
            }
          },
          {
            "name": "origin_id",
            "description": "A filter by clients origin ID. Can be used together with uuids or separately.",
            "in": "query",
            "schema": {
              "description": "A filter by clients origin ID. Can be used together with uuids or separately.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed",
              "type": "string"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, info for deleted clients may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, info for deleted clients may be returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clientBatch"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/clients/{client_id}": {
      "delete": {
        "operationId": "DeleteClient",
        "description": "Deletes a client by ID.",
        "parameters": [
          {
            "name": "client_id",
            "description": "Client ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Client ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Client was successfully deleted.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin",
              "urn:acronis.com::account-server::replication_manager",
              "urn:acronis.com::account-server::managed_clients_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateClient",
        "description": "Updates a client by ID.",
        "parameters": [
          {
            "name": "client_id",
            "description": "Client ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Client ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clientPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Client was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin",
              "urn:acronis.com::account-server::replication_manager",
              "urn:acronis.com::account-server::managed_clients_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchClient",
        "description": "Fetches a client by ID.",
        "parameters": [
          {
            "name": "client_id",
            "description": "Client ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Client ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/client"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/idp/token": {
      "post": {
        "operationId": "RequestTokens",
        "description": "Requests an access token, an ID token and, optionally, a refresh token.\n\nTo additionally request a refresh token, refer to [OpenID Connect Core 1.0 Section 11](https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.11).",
        "x-optionalSecurity": true,
        "parameters": [
          {
            "name": "Authorization",
            "description": "Used to send the base64-encoded \"client_id:client_secret\" credentials.\nMay be required depending on the grant type and 'token_endpoint_auth_method'",
            "in": "header",
            "schema": {
              "description": "Used to send the base64-encoded \"client_id:client_secret\" credentials.\nMay be required depending on the grant type and 'token_endpoint_auth_method'",
              "example": "Basic QUJDMTIz=",
              "type": "string",
              "pattern": "^Basic [0-9a-zA-Z\\-\\._~+/]*=$"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "grant_type"
                ],
                "properties": {
                  "grant_type": {
                    "description": "The following authorization grant types are supported:\n\n- `password` grant type implementation is in accordance with [RFC6749 Section 4.3](https://datatracker.ietf.org/doc/html/rfc6749#section-4.3).\n- `md5_password` grant type is the same as `password` grant type, but password provided as MD5 hashsum.\n- `authorization_code`, `refresh_token` and `client_credentials` grant types implementation is in accordance with [OpenID Connect Core 1.0 Section 3.1.3](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).\n- `authorization_code` grant type implementation also supports PKCE extension in accordance with [RFC7636](https://datatracker.ietf.org/doc/html/rfc7636)\n- `urn:ietf:params:oauth:grant-type:device_code` grant type implementation is in accordance with [RFC8628](https://datatracker.ietf.org/doc/html/rfc8628).\n- `urn:ietf:params:oauth:grant-type:jwt-bearer` grant type implementation is in accordance with [RFC7523](https://datatracker.ietf.org/doc/html/rfc7523).",
                    "enum": [
                      "password",
                      "md5_password",
                      "authorization_code",
                      "refresh_token",
                      "client_credentials",
                      "urn:ietf:params:oauth:grant-type:device_code",
                      "urn:ietf:params:oauth:grant-type:jwt-bearer"
                    ],
                    "type": "string"
                  },
                  "client_id": {
                    "description": "OAuth 2.0 / OpenID Connect client's identifier (UUID).\n\nRequired for the `urn:ietf:params:oauth:grant-type:device_code` grant type.\n\nRequired for `authorization_code` and `client_credentials` grant types if the client was created with `token_endpoint_auth_method` set to `client_secret_post`.",
                    "type": "string"
                  },
                  "client_secret": {
                    "description": "OAuth 2.0 / OpenID Connect clients secret.\n\nRequired for `authorization_code` and `client_credentials` grant types if the client was created with `token_endpoint_auth_method` set to `client_secret_post`.",
                    "type": "string"
                  },
                  "username": {
                    "description": "Required for the `password` and `md5_password` grant types.",
                    "type": "string"
                  },
                  "password": {
                    "description": "Required for the `password` and `md5_password` grant types.",
                    "type": "string"
                  },
                  "refresh_token": {
                    "description": "Required for the `refresh_token` grant type.",
                    "type": "string"
                  },
                  "code": {
                    "description": "Required for the `authorization_code` grant type.",
                    "type": "string"
                  },
                  "scope": {
                    "description": "Not used for the `authorization_code` grant type. Optional for all other supported grant types.",
                    "type": "string",
                    "pattern": "^[\\w_]+(\\s+[\\w_]+)*$"
                  },
                  "assertion": {
                    "description": "Required for the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant type.",
                    "type": "string"
                  },
                  "device_code": {
                    "description": "Required for the `urn:ietf:params:oauth:grant-type:device_code` grant type.",
                    "type": "string"
                  },
                  "totp_code": {
                    "description": "Required for the `password` grant type with TOTP authentication.",
                    "type": "string"
                  },
                  "code_verifier": {
                    "description": "A cryptographically random string that is used to correlate the authorization request to the token request.\n\nRequired for the `authorization_code` grant type if `code_challenge` was provided during the authorization request.",
                    "type": "string",
                    "pattern": "^[A-Za-z0-9\\-\\._~]{43,128}$"
                  },
                  "not_required_introspection": {
                    "description": "Determines what kind of the access token will be issued: that require introspection or that do not require it.\n\nTokens that require introspection we call \"hybrid\" because we use combined approach to work with them: one part of the tokens' data could be obtained from the token itself but another part requires making a request to the introspection endpoint.\nThey contain not the full list of associated access policies in the scope and their introspection is required by the resource server for proper authorization.\n\nIf `not_required_introspection` is set to `true`, the issued token will contain all associated access policies in the scope and its introspection will not be required.\nSuch JWT token has `\"nri\": 1` in the header section (\"nri\" - not required introspection).\n\nIf `not_required_introspection` is not set or set to `false`, Account Server will decide whether to issue a \"hybrid\" token or not based on the its internal logic and roles configuration.\nNon \"hybrid\" JWT token has `\"nri\": 0` in the header section or does not have this field at all.",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authentication was successful and the tokens were issued.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/token"
                }
              }
            }
          },
          "400": {
            "description": "Failed authentication factors check and when `redirect_uri` form parameter is not defined.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          },
          "401": {
            "description": "Failed authentication factors check and when `redirect_uri` form parameter is not defined.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          },
          "403": {
            "description": "Requested scope is not allowed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/idp/revoke_token": {
      "post": {
        "operationId": "RevokeToken",
        "description": "Revokes an access token and, if any, a refresh token in accordance with [RFC7009](https://datatracker.ietf.org/doc/html/rfc7009).\n\nConfidential clients must either follow Basic authentication scheme or provide credentials in the request body.\n\nPublic clients must provide `client_id` in the request body.\n\nIf `access_token` revocation is requested, the refresh token, if any, issued together with provided access token will also be revoked.\n\nIf `refresh_token` revocation is requested, the access token issued together with provided refresh token will also be revoked.",
        "x-optionalSecurity": true,
        "parameters": [
          {
            "name": "Authorization",
            "description": "Used to send the base64-encoded \"client_id:client_secret\" credentials.",
            "in": "header",
            "schema": {
              "description": "Used to send the base64-encoded \"client_id:client_secret\" credentials.",
              "example": "Basic QUJDMTIz=",
              "type": "string",
              "pattern": "^Basic [0-9a-zA-Z\\-\\._~+/]*=$"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "description": "The token that the client wants to revoke.",
                    "type": "string"
                  },
                  "token_type_hint": {
                    "description": "A hint about the token type submitted for revocation.",
                    "enum": [
                      "access_token",
                      "refresh_token"
                    ],
                    "type": "string"
                  },
                  "client_id": {
                    "description": "OAuth 2.0 / OpenID Connect client's identifier (UUID).\nRequired for public clients.",
                    "type": "string"
                  },
                  "client_secret": {
                    "description": "OAuth 2.0 / OpenID Connect clients secret.\nCan be used by confidential clients for authentication.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authentication was successful and the token was revoked.",
            "content": {}
          },
          "400": {
            "description": "Invalid request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revokeError"
                }
              }
            }
          },
          "401": {
            "description": "Failed authentication factors check.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/revokeError"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/idp/introspect_token": {
      "post": {
        "operationId": "IntrospectToken",
        "description": "Introspect an access token in accordance with [RFC7662](https://datatracker.ietf.org/doc/html/rfc7662).",
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "description": "The token that the client wants to introspect.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authentication and authorization were successful and the token's was introspected.\n\nNote if the token from the request body is invalid (signature verification failed, token is expired, or something else), 200 HTTP code will be returned, but the response body will contain `{\"active\": false}`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenIntrospectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::token_introspector"
            ]
          }
        ]
      }
    },
    "/idp/ott": {
      "post": {
        "operationId": "RequestOneTimeToken",
        "description": "Available in cloud version only and this method can be accessed only by OAuth 2.0 / OpenID Connect client.\n\nRequests a one-time token for authentication on behalf of the specified user.\nEither user external ID or Acronis user login or Acronis user UUID can be supplied.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/idpOttPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "One-time token was successfully issued.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/idpOtt"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::user_admin"
            ]
          }
        ]
      }
    },
    "/idp/ott/login": {
      "post": {
        "operationId": "LogInWithOneTimeToken",
        "description": "Authenticates to the platform using one-time token and provides the IdP session cookie.\n\nAvailable in cloud version only.",
        "x-optionalSecurity": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/idpOttLoginPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authentication with one-time token was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/idp/logout": {
      "get": {
        "operationId": "Logout",
        "description": "Performs a logout from the platform.",
        "responses": {
          "200": {
            "description": "User was successfully logged out.",
            "content": {
              "text/html": {
                "schema": {
                  "example": "<body onload=\"window.location.replace('/')\">\r\n<h5>Please wait...</h5>\r\n\r\n<img src=\"https://cloud.example.com/fc/signout\" />\r\n\r\n<img src=\"https://cloud.example.com/signout\" />\r\n\r\n</body>\r\n"
                }
              }
            }
          }
        }
      }
    },
    "/idp/device_authorization": {
      "post": {
        "description": "Registers device codes and issues device and user codes.",
        "x-optionalSecurity": true,
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "client_id",
                  "scope"
                ],
                "properties": {
                  "client_id": {
                    "description": "OAuth 2.0 / OpenID Connect client's identifier (UUID).",
                    "type": "string"
                  },
                  "display_name": {
                    "description": "Device display name (machine name, cluster ID, etc.).",
                    "type": "string"
                  },
                  "scope": {
                    "description": "Scopes requested or authorized by the end user for the client.\nSupported scopes:\n- urn:acronis.com:tenant-id:<uuid>:backup_agent_admin - For backup agent registration\n- urn:acronis.com:tenant-id:<uuid>:cyber_frame_registrator - For Cyber Frame Connector registration",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^urn:acronis\\.com:tenant-id:(?:[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})?:(?:backup_agent_admin|cyber_frame_registrator)$"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Device code successfully registered.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/deviceAuthorizationResponse"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/idp/device_authorization/approval": {
      "get": {
        "operationId": "DeviceAuthorizationApproval_0",
        "description": "Returns information about existing device authorization by the user code.",
        "parameters": [
          {
            "name": "code",
            "description": "The end-user verification code.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "The end-user verification code.",
              "type": "string"
            }
          },
          {
            "name": "tenant_uuid",
            "description": "Personal tenant UUID for which the device code will be approved.",
            "in": "query",
            "schema": {
              "description": "Personal tenant UUID for which the device code will be approved.",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device authorization exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/deviceAuthorizationApprovalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters, device code expired or associated public client not found.\nScoped tenant or its owner not satisfied the requirements.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.\nCurrent user has no access to the scoped tenant.\nUser code is invalid or the related device code already deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::backup::backup_user",
              "urn:acronis.com::backup::protection_admin",
              "urn:acronis.com::files_cloud::sync_share_user"
            ]
          }
        ]
      },
      "post": {
        "operationId": "DeviceAuthorizationApproval_1",
        "description": "Approves existing device code.\nIn case of setting tenant_uuid parameter in the request body or in the scope\nthe current user and target tenant should satisfy next requirements:\nuser should be a partner_admin,\nuser should have RW access to the target tenant,\ntarget tenant should be personal,\ntarget tenant's owner should have protection_admin or backup_user roles.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/deviceAuthorizationApprovalRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Device code successfully approved.",
            "content": {}
          },
          "400": {
            "description": "Invalid request parameters, device code expired or associated public client not found.\nScoped tenant or its owner not satisfied the requirements.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.\nCurrent user has no access to the scoped tenant.\nUser code is invalid or the related device code already deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tokenError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::backup::backup_user",
              "urn:acronis.com::backup::protection_admin",
              "urn:acronis.com::files_cloud::sync_share_user"
            ]
          }
        ]
      }
    },
    "/idp/external-login": {
      "get": {
        "operationId": "FetchOneTimeTokenLoginPage",
        "description": "Fetches an HTML page that handles the login flow from external systems with one-time tokens and redirects users to the provided\n`targetURI`. The legacy way to provide one-time token and target URI is via the following URL fragment parameters:\n\n- `ott` - a URL-encoded one-time token.\n- `targetURI` - a URI the user should be redirected to on successful authentication.\n\nExample: `/idp/external-login#ott=dG9rZW4gd2l0aCBzYWZlIGVuY29kaW5n&targetURI=https://example.com/app`.\n\nPlease use the query parameters instead to access up-to-date features like branding.",
        "parameters": [
          {
            "name": "ott",
            "description": "a URL-encoded one-time token.",
            "in": "query",
            "schema": {
              "description": "a URL-encoded one-time token.",
              "example": "T1RUAQAAAIAAAAAAAAAAcumYC1v_T9C054zvFPGlQg%3D%3D",
              "type": "string"
            }
          },
          {
            "name": "targetURI",
            "description": "a URI the user should be redirected to on successful authentication.",
            "in": "query",
            "schema": {
              "description": "a URI the user should be redirected to on successful authentication.",
              "example": "https%3A%2F%2Fexample.com",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "text/html": {
                "schema": {
                  "example": "<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n</head>\r\n<script language=\"JavaScript\">\r\n    window.onload = function() {\r\n        let params = window.location.hash.substr(1).split('&').reduce(function (result, item) {\r\n            let parts = item.split('=');\r\n            result[parts[0]] = parts[1];\r\n            return result;\r\n        }, {});\r\n\r\n        let xhr = new XMLHttpRequest();\r\n        xhr.open('post', '/api/2/idp/ott/login');\r\n        xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n        xhr.setRequestHeader(\"X-Acronis-API\", \"1\")\r\n\r\n        xhr.onreadystatechange = function () {\r\n            if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {\r\n                window.location.replace(params['targetURI']);\r\n            }\r\n        };\r\n        xhr.send(JSON.stringify({ott: decodeURIComponent(params['ott'])}));\r\n    };\r\n</script>\r\n<body>\r\n    <h5>{{ _('Please wait...') }}</h5>\r\n    <img src=\"/mc/logout\"/>\r\n    <img src=\"/bc/logout\"/>\r\n</body>\r\n</html>"
                }
              }
            }
          }
        }
      }
    },
    "/infra": {
      "get": {
        "operationId": "FetchInfrastructuresBatch",
        "description": "Fetches batch of infrastructure components.",
        "parameters": [
          {
            "name": "uuids",
            "description": "Comma-separated list of infrastructures' UUIDs.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Comma-separated list of infrastructures' UUIDs.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/infraBatch"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin",
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "post": {
        "operationId": "RegisterInfrastructure",
        "description": "Registers a new infrastructure component.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/infraPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Infrastructure component was successfully registered.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/infra"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      }
    },
    "/infra/{infra_id}": {
      "delete": {
        "operationId": "UnregisterInfrastructure",
        "description": "Unregisters infrastructure component.",
        "parameters": [
          {
            "name": "force",
            "description": "If true, existing usage will be ignored in case there are no customer tenants having offering items associated with this infrastructure component turned on.\n",
            "in": "query",
            "schema": {
              "description": "If true, existing usage will be ignored in case there are no customer tenants having offering items associated with this infrastructure component turned on.\n",
              "type": "boolean"
            }
          },
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "infra_id",
            "description": "Infrastructure component ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructure component ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Infrastructure component was successfully unregistered.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateInfrastructure",
        "description": "Updates infrastructure component.",
        "parameters": [
          {
            "name": "infra_id",
            "description": "Infrastructure component ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructure component ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/infraPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Infrastructure component was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/infra"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchInfrastructure",
        "description": "Fetches infrastructure component.",
        "parameters": [
          {
            "name": "infra_id",
            "description": "Infrastructure component ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructure component ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/infra"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/locations": {
      "get": {
        "operationId": "FetchInfrastructuresLocationsBatch",
        "description": "Fetches a batch of infrastructure locations.",
        "parameters": [
          {
            "name": "uuids",
            "description": "Comma-separated list of infrastructures locations' UUIDs.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Comma-separated list of infrastructures locations' UUIDs.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/locationBatch"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      },
      "post": {
        "operationId": "CreateInfrastructuresLocation",
        "description": "Creates a new infrastructures location.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/locationPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Infrastructure location was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/location"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      }
    },
    "/locations/{location_id}": {
      "delete": {
        "operationId": "DeleteInfrastructuresLocation",
        "description": "Deletes an infrastructure location by ID.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "location_id",
            "description": "Infrastructures location ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructures location ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Infrastructure location was successfully removed.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateInfrastructuresLocation",
        "description": "Updates an infrastructure location by ID.",
        "parameters": [
          {
            "name": "location_id",
            "description": "Infrastructures location ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructures location ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/locationPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Infrastructure location was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/location"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchInfrastructuresLocation",
        "description": "Fetches an infrastructure location by ID.",
        "parameters": [
          {
            "name": "location_id",
            "description": "Infrastructures location ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructures location ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/location"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/locations/{location_id}/infra": {
      "get": {
        "operationId": "FetchLocationInfrastructures",
        "description": "Fetches batch of infrastructure components of the provided location.",
        "parameters": [
          {
            "name": "location_id",
            "description": "Infrastructures location ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Infrastructures location ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/infraList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/registration_tokens": {
      "get": {
        "operationId": "FetchRegistrationTokens_0",
        "description": "*DEPRECATED.* Use `/api/2/tenants/{tenant_id}/registration_tokens`.\n\nFetches a list of registration tokens.\n",
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/registrationTokensList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::oauth2_client_admin"
            ]
          }
        ]
      },
      "post": {
        "operationId": "CreateRegistrationToken_0",
        "description": "*DEPRECATED.* Use /api/2/tenants/<tenant_uuid>/registration_tokens.\n\nCreates a registration token.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/registrationTokenPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Registration token was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/registrationToken"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::oauth2_client_admin"
            ]
          }
        ]
      }
    },
    "/registration_tokens/{token_id}": {
      "delete": {
        "operationId": "DeleteRegistrationToken",
        "description": "Deletes a registration token by ID.",
        "parameters": [
          {
            "name": "token_id",
            "description": "Registration Token ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Registration Token ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Registration token was removed.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::oauth2_client_admin"
            ]
          }
        ]
      }
    },
    "/reports": {
      "post": {
        "operationId": "CreateReport",
        "description": "Creates a new usage report.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reportPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Usage report was successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/report"
                }
              }
            }
          },
          "400": {
            "description": "Usage history is not ready and shouldn't be ready yet (from 1 to 6 am).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "500": {
            "description": "Usage history is not ready but should be available already (after 6 am).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin"
            ]
          }
        ]
      }
    },
    "/reports/{report_id}": {
      "delete": {
        "operationId": "DeleteReport",
        "description": "Deletes a usage report by ID.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "report_id",
            "description": "Report ID (UUID)",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Report ID (UUID)",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Usage report was successfully deleted.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateReport",
        "description": "Updates a usage report configuration. Only scheduled reports can be updated.",
        "parameters": [
          {
            "name": "report_id",
            "description": "Report ID (UUID)",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Report ID (UUID)",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reportPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Usage report was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/report"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchReport",
        "description": "Fetches a usage report configuration.",
        "parameters": [
          {
            "name": "report_id",
            "description": "Report ID (UUID)",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Report ID (UUID)",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/report"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/reports/{report_id}/stored": {
      "get": {
        "operationId": "FetchStoredReports",
        "description": "Fetches all stored reports related to the usage report.",
        "parameters": [
          {
            "name": "report_id",
            "description": "Report ID (UUID)",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Report ID (UUID)",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/storedReportParams"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/reports/{report_id}/stored/{stored_report_id}": {
      "get": {
        "operationId": "DownloadStoredReport",
        "description": "Downloads stored report data.",
        "parameters": [
          {
            "name": "report_id",
            "description": "Report ID (UUID)",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Report ID (UUID)",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "stored_report_id",
            "description": "Stored usage report ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Stored usage report ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A file in the format that was used to generate the stored report.",
            "content": {
              "application/octet-stream": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/search": {
      "get": {
        "operationId": "Search",
        "description": "Searches for tenants and users.\n\nTenants are searched by `name`, `custom_id`, `first_name`, `last_name` and `email` from contact info.\n\nUsers are searched by `login`, `email`, `first_name` and `last_name`.\n\nSearch is case-insensitive.",
        "parameters": [
          {
            "name": "tenant",
            "description": "An ID of the tenant where the search will be performed.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "An ID of the tenant where the search will be performed.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed",
              "type": "string"
            }
          },
          {
            "name": "text",
            "description": "Search in all available properties for the supplied text.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Search in all available properties for the supplied text.",
              "example": "acronis",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Limit the number of found objects.",
            "in": "query",
            "schema": {
              "description": "Limit the number of found objects.",
              "default": 10,
              "type": "integer"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted tenants and users may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted tenants and users may be returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/global_search"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants": {
      "get": {
        "operationId": "FetchTenantsBatch",
        "description": "Available in cloud version only.\n\nFetches details about multiple tenants specified by their UUIDs or about child tenants of a specific tenant specified by its UUID.",
        "parameters": [
          {
            "name": "uuids",
            "description": "A filter by comma-separated list of tenants' UUIDs. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_id` and `parent_id`.\n",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of tenants' UUIDs. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_id` and `parent_id`.\n",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(,[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})*",
              "minLength": 36
            }
          },
          {
            "name": "parent_id",
            "description": "The UUID of a tenant which child tenants will be fetched.\nIs mutually exclusive with `subtree_root_id` and `uuids`.\n",
            "in": "query",
            "schema": {
              "description": "The UUID of a tenant which child tenants will be fetched.\nIs mutually exclusive with `subtree_root_id` and `uuids`.\n",
              "example": "370b7f6a-43ce-4028-ad69-ea47f7b04ee4",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "subtree_root_id",
            "description": "Filter to fetch tenants hierarchy starting from (including) the specified one. Sorting by tenant level is always assumed.\nIs mutually exclusive with `uuids` and `parent_id`.\n",
            "in": "query",
            "schema": {
              "description": "Filter to fetch tenants hierarchy starting from (including) the specified one. Sorting by tenant level is always assumed.\nIs mutually exclusive with `uuids` and `parent_id`.\n",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "updated_since",
            "description": "A filter by tenants that were updated after the specified RFC3339 timestamp in UTC time zone.",
            "in": "query",
            "schema": {
              "description": "A filter by tenants that were updated after the specified RFC3339 timestamp in UTC time zone.",
              "example": "2016-02-28T16:41:41.090Z",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "description": "Number of elements to return in current offering items page of the response.",
            "in": "query",
            "schema": {
              "description": "Number of elements to return in current offering items page of the response.",
              "default": 5000,
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "after",
            "description": "Cursor to fetch the next tenants page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
            "in": "query",
            "schema": {
              "description": "Cursor to fetch the next tenants page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
              "type": "string"
            }
          },
          {
            "name": "lod",
            "description": "A predefined level of details for the tenant object to return.\n\nThe following levels of details can be specified:\n-   `stamps` - includes `id`, `parent_id`, `version`, `created_at`, `updated_at`, `deleted_at`, `contacts`, `offering_items`.\n-   `basic` - includes all stamps fields plus `name`, `kind`, `enabled`.\n-   `full` - includes all basic fields plus `customer_type`, `customer_id`, `brand_id`, `brand_uuid`, `brand_enabled`, `barrier`, `internal_tag`, `language`, `owner_id`, `has_children`, `default_idp_id`, `update_lock`, `ancestral_access`, `mfa_status`, `pricing_mode`, `contact`, `external_operation_status`, `production_start_date`.",
            "in": "query",
            "schema": {
              "description": "A predefined level of details for the tenant object to return.\n\nThe following levels of details can be specified:\n-   `stamps` - includes `id`, `parent_id`, `version`, `created_at`, `updated_at`, `deleted_at`, `contacts`, `offering_items`.\n-   `basic` - includes all stamps fields plus `name`, `kind`, `enabled`.\n-   `full` - includes all basic fields plus `customer_type`, `customer_id`, `brand_id`, `brand_uuid`, `brand_enabled`, `barrier`, `internal_tag`, `language`, `owner_id`, `has_children`, `default_idp_id`, `update_lock`, `ancestral_access`, `mfa_status`, `pricing_mode`, `contact`, `external_operation_status`, `production_start_date`.",
              "default": "full",
              "enum": [
                "stamps",
                "basic",
                "full"
              ],
              "type": "string"
            }
          },
          {
            "name": "with_contacts",
            "description": "If true, all tenants' referencing contacts will be returned in the response.",
            "in": "query",
            "schema": {
              "description": "If true, all tenants' referencing contacts will be returned in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "with_offering_items",
            "description": "If true, only tenants with count offering items will be returned in the response.",
            "in": "query",
            "schema": {
              "description": "If true, only tenants with count offering items will be returned in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "with_infra_offering_items",
            "description": "If true, only tenants with infra offering items will be returned in the response.",
            "in": "query",
            "schema": {
              "description": "If true, only tenants with infra offering items will be returned in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "expand_offering_items",
            "description": "If true, all tenants' offering items will be returned in the response.",
            "in": "query",
            "schema": {
              "description": "If true, all tenants' offering items will be returned in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "include_relative_path",
            "description": "If true, fetches the hierarchy of tenants starting from (and including) the trustee tenant up to the tenants with the specified UUIDs. Only tenants in the path between the trustee and the target tenants will be returned.\nIs mutually exclusive with `subtree_root_id` and `parent_id`.\n",
            "in": "query",
            "schema": {
              "description": "If true, fetches the hierarchy of tenants starting from (and including) the trustee tenant up to the tenants with the specified UUIDs. Only tenants in the path between the trustee and the target tenants will be returned.\nIs mutually exclusive with `subtree_root_id` and `parent_id`.\n",
              "type": "boolean"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted tenants may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted tenants may be returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenantBatch"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "post": {
        "operationId": "CreateTenant",
        "description": "Creates a new tenant.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Tenant was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/applications": {
      "get": {
        "operationId": "FetchTenantsApplicationsBatch",
        "description": "Fetches a batch of applications' UUIDs for the provided list of tenants.",
        "parameters": [
          {
            "name": "tenants",
            "description": "A filter of applications by comma-separated list of tenants' UUIDs.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "A filter of applications by comma-separated list of tenants' UUIDs.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(,[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})*",
              "minLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/batchApplicationList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/offering_items": {
      "get": {
        "operationId": "FetchTenantOfferingItemsBatch",
        "description": "Fetches a batch of the offering items with their states and associated quotas.",
        "parameters": [
          {
            "name": "subtree_root_tenant_id",
            "description": "A filter by tenants tree starting from the specified tenant ID. Sorting by tenant level is always assumed.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "A filter by tenants tree starting from the specified tenant ID. Sorting by tenant level is always assumed.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "usage_names",
            "description": "A filter of offering items by comma-separated list of usage names.",
            "in": "query",
            "schema": {
              "description": "A filter of offering items by comma-separated list of usage names.",
              "example": "storage,local_storage",
              "type": "string"
            }
          },
          {
            "name": "editions",
            "description": "A filter of offering items by comma-separated list of editions.",
            "in": "query",
            "schema": {
              "description": "A filter of offering items by comma-separated list of editions.",
              "example": "standard,advanced,disaster_recovery",
              "type": "string"
            }
          },
          {
            "name": "offering_items",
            "description": "A filter of offering items by comma-separated offering item names.",
            "in": "query",
            "schema": {
              "description": "A filter of offering items by comma-separated offering item names.",
              "example": "vms,workstations",
              "type": "string"
            }
          },
          {
            "name": "updated_since",
            "description": "A filter by offering items that were updated after the specified RFC3339 timestamp in UTC time zone.",
            "in": "query",
            "schema": {
              "description": "A filter by offering items that were updated after the specified RFC3339 timestamp in UTC time zone.",
              "example": "2016-02-28T16:41:41.090Z",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "description": "Number of elements to return in current offering items page of the response.",
            "in": "query",
            "schema": {
              "description": "Number of elements to return in current offering items page of the response.",
              "default": 5000,
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "after",
            "description": "Cursor to fetch the next offering items page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
            "in": "query",
            "schema": {
              "description": "Cursor to fetch the next offering items page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
              "type": "string"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted offering items may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted offering items may be returned.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offeringItemList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/usages": {
      "get": {
        "operationId": "FetchTenantsUsagesBatch",
        "description": "Fetches a batch of usages of the tenant.",
        "parameters": [
          {
            "name": "tenants",
            "description": "A filter of usages by comma-separated list of tenants' UUIDs.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "A filter of usages by comma-separated list of tenants' UUIDs.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed,248c535a-0ebe-11e7-a80e-bbdaa1d60c7c",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(,[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})*",
              "minLength": 36
            }
          },
          {
            "name": "usage_names",
            "description": "A filter of usages by comma-separated list of usage names.",
            "in": "query",
            "schema": {
              "description": "A filter of usages by comma-separated list of usage names.",
              "example": "storage,local_storage",
              "type": "string"
            }
          },
          {
            "name": "editions",
            "description": "A filter of usages by comma-separated list of editions.",
            "in": "query",
            "schema": {
              "description": "A filter of usages by comma-separated list of editions.",
              "example": "standard,advanced,disaster_recovery",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/batchUsageList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateTenantsUsages",
        "description": "Updates the values of the usages specified in `usage_type` or\nassociated with the offering items specified in `offering_item`.\n\nDepending on the combination of provided fields, the usage may be\nreported either per tenant or per resource. See the descriptions of\nthe fields for more details.\n\nTrustee is restricted either to be registered within root tenant kind or to have configured\nCyberApp (origin_id) with fully provisioned auth-consents through Application Manager\nAccount server applications (not to be confused with CyberApps) are restricted \nto the enablement of offering items with nested usage types marked with the acc-app (origin_id)\n\nIn case of failure the response body will contain a not-empty \"error\" field for each failed item.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/usagePut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/usagePutResult"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::accounts::licensing_admin",
              "urn:acronis.com::accounts::usage_reporter"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}": {
      "delete": {
        "operationId": "DeleteTenant",
        "description": "Deletes a tenant by ID.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tenant was successfully deleted.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateTenant",
        "description": "Updates a tenant by ID.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tenant was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchTenant",
        "description": "Fetches a tenant by ID.",
        "parameters": [
          {
            "name": "embed_path",
            "description": "If true, tenant path will be embedded in the result.",
            "in": "query",
            "schema": {
              "description": "If true, tenant path will be embedded in the result.",
              "type": "boolean"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted tenant may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted tenant may be returned.",
              "type": "boolean"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/offering_items": {
      "get": {
        "operationId": "FetchTenantOfferingItems",
        "description": "Fetches a list offering items with state and associated quotas.",
        "parameters": [
          {
            "name": "infra_uuid",
            "description": "A filter by infrastructure UUID.",
            "in": "query",
            "schema": {
              "description": "A filter by infrastructure UUID.",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "available_only",
            "description": "If true, return only infrastructures and offering items available for the enablement according to internal business rules.\n",
            "in": "query",
            "schema": {
              "description": "If true, return only infrastructures and offering items available for the enablement according to internal business rules.\n",
              "example": "true, false, 0, 1",
              "type": "string"
            }
          },
          {
            "name": "for_ui",
            "description": "If true, the list of offering items will be returned in a form that is appropriate for the UI. Currently, offering items on a grace period will be filtered out.\n",
            "in": "query",
            "schema": {
              "description": "If true, the list of offering items will be returned in a form that is appropriate for the UI. Currently, offering items on a grace period will be filtered out.\n",
              "type": "boolean"
            }
          },
          {
            "name": "edition",
            "description": "A filter of the offering items by edition.\nIf \"*\" is provided, all editions will be returned.\nOffering items without an edition are not filtered out in any case.",
            "in": "query",
            "schema": {
              "description": "A filter of the offering items by edition.\nIf \"*\" is provided, all editions will be returned.\nOffering items without an edition are not filtered out in any case.",
              "default": "standard",
              "example": "*",
              "type": "string"
            }
          },
          {
            "name": "usage_names",
            "description": "A filter by comma-separated list of usage names.",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of usage names.",
              "example": "storage,local_storage",
              "type": "string"
            }
          },
          {
            "name": "status",
            "description": "A filter by offering item status.\n\n1 - active\n0 - not active",
            "in": "query",
            "schema": {
              "description": "A filter by offering item status.\n\n1 - active\n0 - not active",
              "enum": [
                0,
                1
              ],
              "type": "integer"
            }
          },
          {
            "name": "include_secondary",
            "description": "If true, secondary offering items will be included in the response.",
            "in": "query",
            "schema": {
              "description": "If true, secondary offering items will be included in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "type",
            "description": "A filter by offering item type.",
            "in": "query",
            "schema": {
              "description": "A filter by offering item type.",
              "enum": [
                "count",
                "feature",
                "infra"
              ],
              "example": "count",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offeringItemList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "426": {
            "description": "Server refuses to fulfill the request using the current protocol",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "put": {
        "operationId": "SetTenantOfferingItems",
        "description": "Sets the states and quotas of the offering items for specified applications of the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantOfferingItemsPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Offering Items states were successfully set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offeringItemList"
                }
              }
            }
          },
          "400": {
            "description": "Offering items states were not successfully set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/offering_items/available_for_child": {
      "get": {
        "operationId": "FetchOfferingItemsAvailableForTenantChild",
        "description": "Fetches available offering items for a hypothetical child tenant with provided parameters.",
        "parameters": [
          {
            "name": "kind",
            "description": "A kind of hypothetical child tenant for which available offering items will be returned.",
            "in": "query",
            "schema": {
              "description": "A kind of hypothetical child tenant for which available offering items will be returned.",
              "example": "unit",
              "type": "string"
            }
          },
          {
            "name": "edition",
            "description": "A filter of the offering items by edition.\nIf \"*\" is provided, all editions will be returned.\nOffering items without an edition are not filtered out in any case.",
            "in": "query",
            "schema": {
              "description": "A filter of the offering items by edition.\nIf \"*\" is provided, all editions will be returned.\nOffering items without an edition are not filtered out in any case.",
              "default": "standard",
              "example": "*",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offeringItemList"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/offering_items/pricing": {
      "get": {
        "operationId": "FetchTenantOfferingItemsPrices",
        "description": "Fetches a list of prices of the offering items for the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oiPricingSettings"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateTenantOfferingItemsPrices",
        "description": "Updates the prices of the offering items for the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/oiPricingSettingsPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Prices were successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/oiPricingSettings"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/edition": {
      "get": {
        "operationId": "PerformTenantEditionSwitchCheck",
        "description": "Performs edition switching check for the tenant.",
        "parameters": [
          {
            "name": "target_edition",
            "description": "A target edition to switch to.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "A target edition to switch to.",
              "example": "disaster_recovery",
              "type": "string"
            }
          },
          {
            "name": "application_id",
            "description": "Application UUID.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Application UUID.",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Edition switch can be performed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/editionSwitchWarnings"
                }
              }
            }
          },
          "400": {
            "description": "Edition switch cannot be performed due to unavailable offering items.\nList of these offering items will be returned in `error.context`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "SwitchTenantEdition",
        "description": "Switches the edition for the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/editionSwitchPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Edition was successfully switched.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offeringItemList"
                }
              }
            }
          },
          "400": {
            "description": "Edition was not switched due to unavailable offering items.\nList of these offering items will be returned in `error.context`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/registration_tokens": {
      "get": {
        "operationId": "FetchRegistrationTokens_1",
        "description": "Fetches registration tokens.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/registrationTokensList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::oauth2_client_admin"
            ]
          }
        ]
      },
      "post": {
        "operationId": "CreateRegistrationToken_1",
        "description": "Creates registration token for the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/registrationTokenPostV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Registration token was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/registrationToken"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::oauth2_client_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/applications": {
      "get": {
        "operationId": "FetchAvailableTenantApplications",
        "description": "Fetches a list of applications available to the tenant.",
        "parameters": [
          {
            "name": "for_ui",
            "description": "If true, the list of applications will be returned in a form that is appropriate for the UI.\nCurrently, applications on a grace period will be filtered out.",
            "in": "query",
            "schema": {
              "description": "If true, the list of applications will be returned in a form that is appropriate for the UI.\nCurrently, applications on a grace period will be filtered out.",
              "type": "boolean"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uuidList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/users": {
      "get": {
        "operationId": "FetchTenantUsers",
        "description": "Fetches a list of UUIDs of the tenant's users.",
        "parameters": [
          {
            "name": "include_grand_children",
            "description": "If true for a customer tenant, the UUIDs of the users from all nested unit tenants will be included in the response.\nIf true for a non customer tenant, the UUIDs of the users from all nested folder tenants will be included in the response.",
            "in": "query",
            "schema": {
              "description": "If true for a customer tenant, the UUIDs of the users from all nested unit tenants will be included in the response.\nIf true for a non customer tenant, the UUIDs of the users from all nested folder tenants will be included in the response.",
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "include_hidden",
            "description": "If true, hidden users may be included in the response.",
            "in": "query",
            "schema": {
              "description": "If true, hidden users may be included in the response.",
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "order",
            "description": "Orders the result by one of parameters: `as_is`, `login`, `status`, `name`, `roles`, `level`, `usage`, `mfa_status`, `contact_types`.\nReverse order can be performed using the `-` operator before the parameter.\n\nTo order by `usage`, the usage name should be specified after a dot, e.g. `usage.workstations`.\n\nFor storage-dependent usages, the storage UUID is not required.\n\nDefault value is `name` - order by first name and last name or login if names were not provided.",
            "in": "query",
            "schema": {
              "description": "Orders the result by one of parameters: `as_is`, `login`, `status`, `name`, `roles`, `level`, `usage`, `mfa_status`, `contact_types`.\nReverse order can be performed using the `-` operator before the parameter.\n\nTo order by `usage`, the usage name should be specified after a dot, e.g. `usage.workstations`.\n\nFor storage-dependent usages, the storage UUID is not required.\n\nDefault value is `name` - order by first name and last name or login if names were not provided.",
              "default": "name",
              "example": "-login",
              "type": "string"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted users may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted users may be returned.",
              "type": "boolean"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uuidList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/children": {
      "get": {
        "operationId": "FetchTenantChildren",
        "description": "Fetches a list of UUIDs of the tenant's children.",
        "parameters": [
          {
            "name": "order",
            "description": "Orders the result by one of parameters: `as_is`, `name`, `status`, `usage`.\nReverse order can be performed using the `-` operator before the parameter.\n\nFor order by `usage`, the usage name should be specified after a dot, e.g. `usage.workstations`.\n\nFor storage-dependent usages, the storage UUID should be added after a dot, e.g. `usage.storage.c05d399b-ba6b-41e9-a638-cd7ffc7ec87a`.",
            "in": "query",
            "schema": {
              "description": "Orders the result by one of parameters: `as_is`, `name`, `status`, `usage`.\nReverse order can be performed using the `-` operator before the parameter.\n\nFor order by `usage`, the usage name should be specified after a dot, e.g. `usage.workstations`.\n\nFor storage-dependent usages, the storage UUID should be added after a dot, e.g. `usage.storage.c05d399b-ba6b-41e9-a638-cd7ffc7ec87a`.",
              "default": "name",
              "example": "-status",
              "type": "string"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, children may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, children may be returned.",
              "type": "boolean"
            }
          },
          {
            "name": "after",
            "description": "Cursor to fetch the next children page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
            "in": "query",
            "schema": {
              "description": "Cursor to fetch the next children page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uuidList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/reports": {
      "get": {
        "operationId": "FetchTenantReports",
        "description": "Fetches a list of reports' UUIDs available to the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/uuidList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin",
              "urn:acronis.com::account-server::unit_admin",
              "urn:acronis.com::account-server::readonly_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/locations": {
      "get": {
        "operationId": "FetchTenantInfrastructureLocations",
        "description": "Fetches a list of infrastructure locations owned by the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/locationList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/usages": {
      "get": {
        "operationId": "FetchTenantUsages",
        "description": "Fetches a list of common usage metrics of the tenant.",
        "parameters": [
          {
            "name": "usage_names",
            "description": "A filter by comma-separated list of usage names.",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of usage names.",
              "example": "storage,local_storage",
              "type": "string"
            }
          },
          {
            "name": "editions",
            "description": "A filter by comma-separated list of editions.",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of editions.",
              "example": "standard,advanced,disaster_recovery",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/usageList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/pricing": {
      "get": {
        "operationId": "FetchTenantPricingSettings",
        "description": "Fetches pricing settings of the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenantPricingSettings"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateTenantPricingSettings",
        "description": "Updates pricing settings of the tenant.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantPricingSettingsPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Pricing settings was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenantPricingSettings"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/brand": {
      "delete": {
        "operationId": "DisableCustomBranding",
        "description": "Disables custom branding for the tenant.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Custom branding has been disabled.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchCustomBrandingOptions",
        "description": "Fetches branding options of the tenant.",
        "parameters": [
          {
            "name": "effective",
            "description": "If true, parent tenant's brand will be returned",
            "in": "query",
            "schema": {
              "description": "If true, parent tenant's brand will be returned",
              "default": 0,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenantBrandGetResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "post": {
        "operationId": "EnableCustomBranding",
        "description": "Enables custom branding options for the tenant.\n\nThis operation cannot be performed on customer and unit tenants.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Custom branding has been enabled.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "ModifyCustomBranding",
        "description": "Modifies custom branding options.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantBrandPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Custom branding has been updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/brand/logo": {
      "get": {
        "operationId": "FetchTenantBrandLogo",
        "description": "Fetches tenant's brand logo.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "example": "max-age=86400, must-revalidate",
                  "type": "string"
                }
              },
              "Content-Length": {
                "required": true,
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "image/png": {
                "schema": {}
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "post": {
        "operationId": "UploadTenantBrandLogo",
        "description": "Uploads a new tenant's brand logo.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "Content-Length",
            "required": true,
            "in": "header",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "image/png": {
              "schema": {}
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/mfa/status": {
      "put": {
        "operationId": "ManageTenantMFAStatus",
        "description": "Toggles MFA status for the tenant.\nThis operation cannot be performed on folder and unit tenants.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mfaTenantStatusPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MFA status was successfully changed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mfaTenantStatus"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::root_admin",
              "urn:acronis.com::account-server::partner_admin",
              "urn:acronis.com::account-server::company_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchTenantMFAStatus",
        "description": "Provides MFA status for tenant and progress of TOTP enablement by users.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/mfaTenantStatus"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/default_idp": {
      "put": {
        "operationId": "UpdateTenantDefaultIdpId",
        "description": "Updates Tenant default_idp_id.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tenantPutIdpId"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tenant default_idp_id successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tenant"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/tenants/{tenant_id}/restore": {
      "post": {
        "operationId": "RestoreDeletedTenant",
        "description": "Restores previously soft deleted tenant.",
        "parameters": [
          {
            "name": "force",
            "description": "Defines if tenant should be restored in in case of a conflict with another tenant or user who has taken the same name or login. In such a case restored tenant will have postfix added.\n",
            "in": "query",
            "schema": {
              "description": "Defines if tenant should be restored in in case of a conflict with another tenant or user who has taken the same name or login. In such a case restored tenant will have postfix added.\n",
              "type": "boolean"
            }
          },
          {
            "name": "tenant_id",
            "description": "Tenant ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "Tenant ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tenant was successfully restored.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/users": {
      "get": {
        "operationId": "FetchUsersBatch",
        "description": "Fetches a batch of users.\n\nAvailable in cloud version only.",
        "parameters": [
          {
            "name": "uuids",
            "description": "A filter by comma-separated list of users' UUIDs. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_tenant_id`, `external_ids` and `tenant_id`.\n",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of users' UUIDs. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_tenant_id`, `external_ids` and `tenant_id`.\n",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}(,[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})*",
              "minLength": 36
            }
          },
          {
            "name": "origin_id",
            "description": "A filter by specific origin ID",
            "in": "query",
            "schema": {
              "description": "A filter by specific origin ID",
              "example": "pillr.mdr",
              "type": "string"
            }
          },
          {
            "name": "external_ids",
            "description": "A filter by comma-separated list of users' UUIDs in the external Identity Provider. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_tenant_id` and `uuids`.\n",
            "in": "query",
            "schema": {
              "description": "A filter by comma-separated list of users' UUIDs in the external Identity Provider. Maximum of 100 UUIDs.\nIs mutually exclusive with `subtree_root_tenant_id` and `uuids`.\n",
              "example": "fae84e50-0eef-11e7-bc3f-d39de3f5fe32,fae84e50-0eef-11e7-bc3f-d39de3f5fe32",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "A filter by specific tenant ID. Required when searching the users by `external_id`. Not used otherwise.\n",
            "in": "query",
            "schema": {
              "description": "A filter by specific tenant ID. Required when searching the users by `external_id`. Not used otherwise.\n",
              "example": "fae84e50-0eef-11e7-bc3f-d39de3f5fe32",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "subtree_root_tenant_id",
            "description": "A filter by tenants tree starting from the specified tenant ID. Is mutually exclusive with `uuids` and `tenant_id`.",
            "in": "query",
            "schema": {
              "description": "A filter by tenants tree starting from the specified tenant ID. Is mutually exclusive with `uuids` and `tenant_id`.",
              "example": "1e4d7438-0ebe-11e7-b131-c7b5bde6feed",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          },
          {
            "name": "updated_since",
            "description": "A filter by users that were updated after the specified RFC3339 timestamp in UTC time zone.",
            "in": "query",
            "schema": {
              "description": "A filter by users that were updated after the specified RFC3339 timestamp in UTC time zone.",
              "example": "2016-02-28T16:41:41.090Z",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "description": "Number of elements in current users page of the response.",
            "in": "query",
            "schema": {
              "description": "Number of elements in current users page of the response.",
              "default": 2000,
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "after",
            "description": "Cursor to fetch the next users page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
            "in": "query",
            "schema": {
              "description": "Cursor to fetch the next users page. The cursor encodes all the filtering and sorting arguments, thus client does not need to provide all them for the next page, only cursor should be provided. Client can get the cursor from `paging.cursors.after` field of the previous page response.\n",
              "type": "string"
            }
          },
          {
            "name": "lod",
            "description": "A predefined level of details for the user object to return.\n\nThe following levels of details can be specified:\n-   `stamps` - includes `id`, `version`, `tenant_id`, `created_at`, `updated_at`, `deleted_at`, `access_policies`, `origin_id`, `origin_external_id`, `disable_after`.\n-   `basic` - includes all stamps fields plus `personal_tenant_id`, `login`, `enabled`, `session_mfa_status`, `delivery_channel`.\n-   `full` - includes all basic fields plus `contact`, `activated`, `language`, `business_types`, `notifications`, `idp_id`, `external_id`, `mfa_status`, `external_operation_status`.",
            "in": "query",
            "schema": {
              "description": "A predefined level of details for the user object to return.\n\nThe following levels of details can be specified:\n-   `stamps` - includes `id`, `version`, `tenant_id`, `created_at`, `updated_at`, `deleted_at`, `access_policies`, `origin_id`, `origin_external_id`, `disable_after`.\n-   `basic` - includes all stamps fields plus `personal_tenant_id`, `login`, `enabled`, `session_mfa_status`, `delivery_channel`.\n-   `full` - includes all basic fields plus `contact`, `activated`, `language`, `business_types`, `notifications`, `idp_id`, `external_id`, `mfa_status`, `external_operation_status`.",
              "default": "full",
              "enum": [
                "stamps",
                "basic",
                "full"
              ],
              "type": "string"
            }
          },
          {
            "name": "with_access_policies",
            "description": "If true, all users' access policies will be returned in the response.",
            "in": "query",
            "schema": {
              "description": "If true, all users' access policies will be returned in the response.",
              "type": "boolean"
            }
          },
          {
            "name": "allow_deleted",
            "description": "If true, deleted users may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted users may be returned.",
              "type": "boolean"
            }
          },
          {
            "name": "inside_organization",
            "description": "If true, only users that belong to the same organization will be returned. It requires 'subtree_root_tenant_id' to be specified.",
            "in": "query",
            "schema": {
              "description": "If true, only users that belong to the same organization will be returned. It requires 'subtree_root_tenant_id' to be specified.",
              "type": "boolean"
            }
          },
          {
            "name": "access_policies",
            "description": "Users in access policies will be returned. It accepts a comma-separated list. It requires 'inside_organization' to be set.",
            "in": "query",
            "schema": {
              "description": "Users in access policies will be returned. It accepts a comma-separated list. It requires 'inside_organization' to be set.",
              "example": "company_admin,unit_admin",
              "type": "string"
            }
          },
          {
            "name": "tenant_kinds",
            "description": "Users in tenant kinds will be returned. It accepts a comma-separated list. It requires 'inside_organization' to be set.",
            "in": "query",
            "schema": {
              "description": "Users in tenant kinds will be returned. It accepts a comma-separated list. It requires 'inside_organization' to be set.",
              "example": "customer,unit",
              "type": "string"
            }
          },
          {
            "name": "target_tenant_id",
            "description": "Users within range starting from 'subtree_root_tenant_id' to the 'target_tenant_id' will be returned. It requires 'inside_organization' to be set.",
            "in": "query",
            "schema": {
              "description": "Users within range starting from 'subtree_root_tenant_id' to the 'target_tenant_id' will be returned. It requires 'inside_organization' to be set.",
              "example": "fae84e50-0eef-11e7-bc3f-d39de3f5fe32",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/userBatch"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "post": {
        "operationId": "CreateUser",
        "description": "Creates a new user.\nIf the user is created in a customer tenant and below - a personal tenant will be created and attached to it.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/userPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "User was successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/users/check_login": {
      "get": {
        "operationId": "CheckLoginNameAvailability",
        "description": "Checks whether the login name (username) is available or already taken.",
        "parameters": [
          {
            "name": "username",
            "description": "A login name to check.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "A login name to check.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Login name is available.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "406": {
            "description": "Provided arguments are not acceptable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/users/check_password": {
      "post": {
        "operationId": "CheckPassword",
        "description": "Checks whether a password was previously exposed in data breaches.",
        "x-optionalSecurity": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/checkPasswordPost"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/checkPasswordPostResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/users/me": {
      "get": {
        "operationId": "FetchCurrentUserInfo",
        "description": "Fetches information about the currently authenticated user.",
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/userMe"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/users/{user_id}": {
      "delete": {
        "operationId": "DeleteUser",
        "description": "Deletes a user by ID.",
        "parameters": [
          {
            "name": "version",
            "description": "Growing number of object internal version.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Growing number of object internal version.",
              "example": 1559561146223,
              "type": "integer"
            }
          },
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User was successfully deleted.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateUser",
        "description": "Updates a user by ID.",
        "parameters": [
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/userPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "User was successfully updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "FetchUser",
        "description": "Fetches a user by ID.",
        "parameters": [
          {
            "name": "allow_deleted",
            "description": "If true, deleted users may be returned.",
            "in": "query",
            "schema": {
              "description": "If true, deleted users may be returned.",
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      }
    },
    "/users/{user_id}/access_policies": {
      "get": {
        "operationId": "FetchUserAccessPolicies",
        "description": "Fetches a list of user's access policies.",
        "parameters": [
          {
            "name": "includeUserGroupPolicies",
            "description": "If set true, security group policies will be included in response.",
            "in": "query",
            "schema": {
              "description": "If set true, security group policies will be included in response.",
              "type": "boolean"
            }
          },
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accessPoliciesList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_viewer"
            ]
          }
        ]
      },
      "put": {
        "operationId": "UpdateUserAccessPolicies",
        "description": "Rewrites user's access policies.",
        "parameters": [
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/accessPoliciesList"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The request was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accessPoliciesList"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "415": {
            "description": "Requested type in the `Accept` request header is not supported.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::user_admin"
            ]
          }
        ]
      }
    },
    "/users/{user_id}/mfa/status": {
      "put": {
        "operationId": "ManageUserMFAStatus",
        "description": "Manages MFA status for the user.",
        "parameters": [
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/mfaUserStatusPut"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MFA settings status was successfully changed.",
            "content": {}
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    },
    "/users/{user_id}/password": {
      "post": {
        "operationId": "SetUserPassword",
        "description": "This method can be accessed only by OAuth 2.0 / OpenID Connect client.\n\nSets user's password.",
        "parameters": [
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/passwordPost"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Password was successfully set.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::user_admin"
            ]
          }
        ]
      }
    },
    "/users/{user_id}/send-activation-email": {
      "post": {
        "operationId": "SendActivationEmail",
        "description": "Sends an activation email to the user.",
        "parameters": [
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Email was successfully queued.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::user_admin"
            ]
          }
        ]
      }
    },
    "/users/{user_id}/restore": {
      "post": {
        "operationId": "RestoreDeletedUser",
        "description": "Restores previously soft-deleted user.",
        "parameters": [
          {
            "name": "force",
            "description": "Defines if the user should be restored in case of a conflict with another user who has taken the same login.\nIn such a case restored user will have a postfix added.",
            "in": "query",
            "schema": {
              "description": "Defines if the user should be restored in case of a conflict with another user who has taken the same login.\nIn such a case restored user will have a postfix added.",
              "type": "boolean"
            }
          },
          {
            "name": "enable",
            "description": "Defines if the user should be re-enabled.",
            "in": "query",
            "schema": {
              "description": "Defines if the user should be re-enabled.",
              "type": "boolean"
            }
          },
          {
            "name": "user_id",
            "description": "User ID (UUID).",
            "required": true,
            "in": "path",
            "schema": {
              "description": "User ID (UUID).",
              "type": "string",
              "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
              "minLength": 36,
              "maxLength": 36
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User was successfully restored.",
            "content": {}
          },
          "401": {
            "description": "Method required an authenticated user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "403": {
            "description": "Current user is not authorized to access this endpoint or its method.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          },
          "409": {
            "description": "Another object of the same type already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          },
          {
            "oauth2": [
              "urn:acronis.com::account-server::tenant_admin"
            ]
          }
        ]
      }
    }
  },
  "x-roles": [
    {
      "name": "public",
      "id": "1",
      "description": "public role",
      "x-tags": [
        "public"
      ]
    },
    {
      "name": "private",
      "id": "2",
      "description": "private role",
      "x-tags": [
        "private"
      ]
    }
  ],
  "components": {
    "schemas": {
      "openidConfiguration": {
        "example": {
          "value": {
            "issuer": "http://0.0.0.0:30675",
            "authorization_endpoint": "http://0.0.0.0:30675/idp/auth",
            "token_endpoint": "http://0.0.0.0:30675/idp/token",
            "jwks_uri": "http://0.0.0.0:30675/idp/keys",
            "response_types_supported": [
              "code"
            ],
            "subject_types_supported": [
              "public"
            ],
            "id_token_signing_alg_values_supported": [
              "RS256"
            ],
            "scopes_supported": [],
            "token_endpoint_auth_methods_supported": [
              "client_secret_basic"
            ],
            "revocation_endpoint": "http://0.0.0.0:30675/idp/revoke_token",
            "revocation_endpoint_auth_methods_supported": [
              "client_secret_basic",
              "client_secret_post",
              "none"
            ],
            "device_authorization_endpoint": "http://0.0.0.0:30675/idp/device_authorization"
          }
        },
        "type": "object",
        "required": [
          "issuer",
          "authorization_endpoint",
          "token_endpoint",
          "jwks_uri",
          "response_types_supported",
          "subject_types_supported",
          "id_token_signing_alg_values_supported"
        ],
        "properties": {
          "issuer": {
            "type": "string"
          },
          "authorization_endpoint": {
            "type": "string"
          },
          "token_endpoint": {
            "type": "string"
          },
          "jwks_uri": {
            "type": "string"
          },
          "response_types_supported": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject_types_supported": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id_token_signing_alg_values_supported": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "revocation_endpoint": {
            "type": "string"
          },
          "revocation_endpoint_auth_methods_supported": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "device_authorization_endpoint": {
            "type": "string"
          }
        }
      },
      "forgot_link": {
        "title": "forgot_link_response",
        "description": "API /forgot_link response for Acronis Account Server",
        "example": {
          "link": "/forgot_password"
        },
        "type": "object",
        "properties": {
          "link": {
            "title": "link",
            "description": "URL to forgot password page",
            "type": "string"
          }
        }
      },
      "errorScheme": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "domain",
              "message",
              "details"
            ],
            "properties": {
              "code": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ]
              },
              "context": {
                "type": "object"
              },
              "domain": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "details": {
                "description": "Additional info.",
                "type": "object",
                "properties": {
                  "info": {
                    "description": "This field can have a null value.",
                    "nullable": true,
                    "type": "string"
                  }
                }
              },
              "data": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "applicationsList": {
        "example": {
          "items": [
            {
              "type": "backup",
              "api_base_url": "/bc/",
              "name": "Backup",
              "id": "6e6d758d-8e74-3ae3-ac84-50eb0dff12eb",
              "usages": [
                "assigned_compute_points",
                "child_storages",
                "cloud_to_cloud_backup",
                "compute_points",
                "dr_cloud_servers",
                "dr_internet_access",
                "dr_storage",
                "google_drive_storage",
                "google_mail_storage",
                "google_team_drive_storage",
                "group_mailbox_storage",
                "group_site_storage",
                "gsuite_seats",
                "local_storage",
                "mailbox_instance_size",
                "mailbox_storage",
                "mailboxes",
                "mobile_storage",
                "mobiles",
                "onedrive_storage",
                "public_ips",
                "server_storage",
                "servers",
                "sharepoint_online_site_storage",
                "site_collection_storage",
                "storage",
                "total_storage",
                "universal_devices",
                "universal_devices_storage",
                "virtualhost_storage",
                "virtualhosts",
                "vm_storage",
                "vms",
                "website_storage",
                "websites",
                "win_server_essentials",
                "win_server_essentials_storage",
                "workstation_storage",
                "workstations"
              ]
            },
            {
              "type": "physical_data_shipping",
              "api_base_url": "/pds/",
              "name": "Physical Data Shipping",
              "id": "b71b2c18-590a-303c-9d5a-8444fbe713ac",
              "usages": [
                "drives_shipped_from_cloud",
                "drives_shipped_to_cloud"
              ]
            },
            {
              "type": "files_cloud",
              "api_base_url": "/fc/",
              "name": "File Sync & Share",
              "id": "dfd85a5f-a464-32ab-81fd-99bcc66a070f",
              "usages": [
                "fc_child_storages",
                "fc_seats",
                "fc_storage",
                "fc_total_storage"
              ]
            },
            {
              "type": "notary",
              "api_base_url": "/notary/console",
              "name": "Notary",
              "id": "f9c5744e-bd1a-36b6-b0f0-ecd7483e1796",
              "usages": [
                "esignatures",
                "esignatures_api",
                "notarizations",
                "notarizations_api",
                "notarizations_total",
                "notary_storage"
              ]
            },
            {
              "type": "hci",
              "api_base_url": "/hci/",
              "name": "Acronis Storage SPLA",
              "id": "cc29685d-a9ca-3e87-a83d-069f18b588f0",
              "usages": [
                "hci_cifs_storage",
                "hci_compute_points",
                "hci_iscsi_storage",
                "hci_nfs_storage",
                "hci_s3_storage",
                "hci_storage",
                "hci_total_cifs_storage",
                "hci_total_compute_points",
                "hci_total_iscsi_storage",
                "hci_total_nfs_storage",
                "hci_total_s3_storage",
                "hci_total_storage",
                "hci_total_vm_provisioned_cpu",
                "hci_total_vm_provisioned_ram",
                "hci_total_vm_storage",
                "hci_total_vtl_storage",
                "hci_vm_provisioned_cpu",
                "hci_vm_provisioned_ram",
                "hci_vm_storage",
                "hci_vtl_storage"
              ]
            },
            {
              "type": "platform",
              "api_base_url": "/mc/",
              "name": "Management Portal",
              "id": "7459244f-68f3-3bf4-9f53-5f63ecc1d91f",
              "usages": []
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/application"
            }
          }
        }
      },
      "application": {
        "example": {
          "id": "8aaf366b-fe24-4f25-93b3-bd729c86cc95",
          "name": "Acronis Backup Cloud",
          "type": "backup",
          "api_base_url": "/bc",
          "usages": [
            "workstations",
            "vms"
          ]
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "type",
          "usages",
          "api_base_url"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "description": "Human-readable name that will be displayed to the users.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/applicationType"
          },
          "usages": {
            "description": "Available usages for this application.",
            "type": "array",
            "items": {
              "description": "Usage name.",
              "type": "string"
            }
          },
          "api_base_url": {
            "description": "Base URL for application's HTTP API.",
            "type": "string"
          }
        }
      },
      "settingPut": {
        "example": {
          "value": {
            "value": "qwerty",
            "lock": false
          }
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "description": "Value of the setting.",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number"
              },
              {
                "type": "object"
              }
            ],
            "nullable": true
          },
          "lock": {
            "description": "Flag that controls whether the value can be overridden at another tenant's level.",
            "type": "boolean"
          },
          "exclusive": {
            "description": "If true, the value set for this tenant does not affect inheritance; this tenant's children will inherit the value from their grandparent tenant.",
            "type": "boolean"
          }
        }
      },
      "setting": {
        "example": {
          "value": {
            "name": "setting_1",
            "application_id": "2f2a4239-f140-4337-a107-bed298fed3f1",
            "own": {
              "value": "new_stuff",
              "lock": false,
              "exclusive": false
            },
            "effective": {
              "owner": {
                "type": "tenant",
                "id": "81129b10-9f2a-4ee7-bf90-8698c4af055c"
              },
              "value": "old_Stuff",
              "lock": false
            }
          }
        },
        "type": "object",
        "required": [
          "name",
          "effective"
        ],
        "properties": {
          "name": {
            "description": "Name of the setting, for internal use by the platform and applications. Serves as the setting's ID.",
            "type": "string"
          },
          "application_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "own": {
            "description": "Data which was set for this tenant.",
            "type": "object",
            "required": [
              "value",
              "lock",
              "exclusive"
            ],
            "properties": {
              "value": {
                "description": "Value of the setting. This field can have a null value.",
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object"
                  }
                ],
                "nullable": true
              },
              "lock": {
                "description": "Flag that controls whether the value can be overridden at another tenant's level.",
                "default": false,
                "type": "boolean"
              },
              "exclusive": {
                "description": "If true, the value set for this tenant does not affect inheritance; this tenant's children will inherit the value from their grandparent tenant.",
                "default": false,
                "type": "boolean"
              }
            },
            "nullable": true
          },
          "effective": {
            "description": "Inherited data. This field can have a null value.",
            "type": "object",
            "properties": {
              "owner": {
                "type": "object",
                "required": [
                  "type",
                  "id"
                ],
                "properties": {
                  "type": {
                    "description": "Type of object where this value is defined.",
                    "enum": [
                      "tenant",
                      "user"
                    ],
                    "type": "string"
                  },
                  "id": {
                    "$ref": "#/components/schemas/uuid"
                  }
                }
              },
              "value": {
                "description": "Value of the setting. This field can have a null value.",
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "object"
                  }
                ],
                "nullable": true
              },
              "lock": {
                "description": "Flag that controls whether the value can be overridden at another tenant's level.",
                "type": "boolean"
              }
            },
            "nullable": true
          }
        }
      },
      "clientPost": {
        "example": {
          "type": "managed_client",
          "tenant_id": "48f86be5-c628-49c3-8575-62e78f54e4eb",
          "data": {
            "client_name": "Some application client",
            "origin_dc_id": "ff7625c0-d649-445c-a2b3-9b59e66bfc2d"
          },
          "token_endpoint_auth_method": "client_secret_basic",
          "origin_id": "72403667-8e45-4dd9-bcbc-3e6047b98b3d"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "tenant_id",
          "token_endpoint_auth_method"
        ],
        "properties": {
          "type": {
            "description": "Client type.",
            "enum": [
              "api_client",
              "managed_client"
            ],
            "type": "string"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "data": {
            "description": "Additional metadata, like agentType, hostname, etc...",
            "type": "object"
          },
          "token_endpoint_auth_method": {
            "description": "Explicit specified auth method.",
            "enum": [
              "client_secret_basic",
              "client_secret_post",
              "none"
            ],
            "type": "string"
          },
          "redirect_uris": {
            "description": "List of possible redirect uris.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "origin_id": {
            "description": "Client origin ID.",
            "type": "string"
          }
        }
      },
      "clientPostResult": {
        "title": "Post client result schema",
        "example": {
          "client_secret_expires_at": 0,
          "token_endpoint_auth_method": "client_secret_basic",
          "tenant_id": "48f86be5-c628-49c3-8575-62e78f54e4eb",
          "data": {
            "client_name": "Some application client",
            "origin_dc_id": "ff7625c0-d649-445c-a2b3-9b59e66bfc2d"
          },
          "client_secret": "cfffe6f6271b4addbe90ca63236de581",
          "registration_access_token": "94fe1f5e59b64bd69ad6754a34f37674",
          "client_id": "3663410d-4b70-4860-860c-8db82bffab8e",
          "created_at": "2019-08-24T01:23:15",
          "created_by": "ab9d9f43-f9aa-4f83-9409-5547172daa27",
          "type": "managed_client",
          "status": "enabled",
          "origin_id": "72403667-8e45-4dd9-bcbc-3e6047b98b3d"
        },
        "type": "object",
        "required": [
          "client_id",
          "tenant_id",
          "client_secret_expires_at",
          "type",
          "token_endpoint_auth_method",
          "client_secret",
          "registration_access_token",
          "created_at",
          "created_by",
          "status"
        ],
        "properties": {
          "client_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "client_secret_expires_at": {
            "description": "Time at which the client_secret will expire or 0 if it will not expire, according to the configured client secret lifetime. Its value is represented as number of seconds since the Unix epoch.",
            "type": "integer"
          },
          "type": {
            "description": "Client type.",
            "enum": [
              "api_client",
              "managed_client"
            ],
            "type": "string"
          },
          "data": {
            "description": "Additional metadata, like agentType, hostname, etc...",
            "type": "object"
          },
          "token_endpoint_auth_method": {
            "description": "Explicit specified auth method.",
            "enum": [
              "client_secret_basic",
              "client_secret_post",
              "none"
            ],
            "type": "string"
          },
          "client_secret": {
            "description": "Client secret.",
            "type": "string"
          },
          "registration_access_token": {
            "description": "Client registration access token.",
            "type": "string"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "created_by": {
            "description": "ID of the user who registered the client.",
            "type": "string"
          },
          "status": {
            "description": "Client status - either enabled or disabled. Disabled clients can no longer be used to receive Access Tokens.",
            "enum": [
              "enabled",
              "disabled"
            ],
            "type": "string"
          },
          "redirect_uris": {
            "description": "List of possible redirect uris.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "origin_id": {
            "description": "Client origin ID.",
            "type": "string"
          }
        }
      },
      "clientBatch": {
        "example": {
          "items": [
            {
              "client_id": "4557d5f5-7881-54f4-83a5-212f19d355c1",
              "client_secret_expires_at": 0,
              "type": "api_client",
              "tenant_id": "0a305354-6efc-4b81-858d-2ae5dd1f08b1",
              "data": {
                "client_name": "backup_api_gateway"
              },
              "token_endpoint_auth_method": "client_secret_basic",
              "created_at": "2023-07-06T16:26:33Z",
              "created_by": "ab9ae709-0d00-521a-8be3-7891b1041e18",
              "last_access_at": "2023-07-28T14:16:19Z",
              "last_access_from_ip": "10.233.106.171",
              "status": "enabled",
              "redirect_uris": [
                "/bc/api/gateway/cb",
                "/bc/api/gateway/cb:ui"
              ]
            },
            {
              "client_id": "3663410d-4b70-4860-860c-8db82bffab8e",
              "client_secret_expires_at": 0,
              "type": "managed_client",
              "tenant_id": "48f86be5-c628-49c3-8575-62e78f54e4eb",
              "data": {
                "client_name": "Some application client",
                "origin_dc_id": "ff7625c0-d649-445c-a2b3-9b59e66bfc2d"
              },
              "token_endpoint_auth_method": "client_secret_basic",
              "created_at": "2019-08-24T01:23:15",
              "created_by": "ab9d9f43-f9aa-4f83-9409-5547172daa27",
              "last_access_at": "2023-07-20T16:11:01Z",
              "last_access_from_ip": "10.233.106.172",
              "status": "enabled",
              "origin_id": "72403667-8e45-4dd9-bcbc-3e6047b98b3d"
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client"
            }
          }
        }
      },
      "clientPut": {
        "example": {
          "data": {
            "client_name": "Some application client"
          },
          "status": "disabled",
          "redirect_uris": [
            "com.acronis.abc://oauth"
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "Additional metadata that will be updated.",
            "type": "object"
          },
          "status": {
            "description": "Client status - either enabled or disabled. Disabled clients can no longer be used to receive Access Tokens.",
            "enum": [
              "enabled",
              "disabled"
            ],
            "type": "string"
          },
          "redirect_uris": {
            "description": "List of possible redirect uris.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "origin_id": {
            "description": "Client origin ID.",
            "type": "string"
          }
        }
      },
      "client": {
        "title": "Basic client schema",
        "example": {
          "client_id": "4557d5f5-7881-54f4-83a5-212f19d355c1",
          "client_secret_expires_at": 0,
          "type": "api_client",
          "tenant_id": "0a305354-6efc-4b81-858d-2ae5dd1f08b1",
          "data": {
            "client_name": "backup_api_gateway"
          },
          "token_endpoint_auth_method": "client_secret_basic",
          "created_at": "2023-07-06T16:26:33Z",
          "created_by": "ab9ae709-0d00-521a-8be3-7891b1041e18",
          "last_access_at": "2023-07-28T14:16:19Z",
          "last_access_from_ip": "10.233.106.171",
          "status": "enabled",
          "redirect_uris": [
            "/bc/api/gateway/cb",
            "/bc/api/gateway/cb:ui"
          ]
        },
        "type": "object",
        "required": [
          "client_id",
          "tenant_id",
          "client_secret_expires_at",
          "type",
          "token_endpoint_auth_method",
          "created_at",
          "created_by",
          "last_access_at",
          "last_access_from_ip",
          "status"
        ],
        "properties": {
          "client_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "client_secret_expires_at": {
            "description": "Time at which the client_secret will expire or 0 if it will not expire, according to the configured client secret lifetime. Its value is represented as number of seconds since the Unix epoch.",
            "type": "integer"
          },
          "type": {
            "description": "Client type.",
            "enum": [
              "api_client",
              "managed_client"
            ],
            "type": "string"
          },
          "data": {
            "description": "Additional metadata, like agentType, hostname, etc...",
            "type": "object"
          },
          "token_endpoint_auth_method": {
            "description": "Explicit specified auth method.",
            "enum": [
              "client_secret_basic",
              "client_secret_post",
              "none"
            ],
            "type": "string"
          },
          "created_at": {
            "description": "Date and time when the client was created. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "created_by": {
            "description": "ID of the user who registered the client.",
            "type": "string"
          },
          "last_access_at": {
            "description": "Date and time when client was used to issue token last time. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "last_access_from_ip": {
            "description": "IP address from witch client was used to issue token last time. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Client status - either enabled or disabled. Disabled clients can no longer be used to receive Access Tokens.",
            "enum": [
              "enabled",
              "disabled"
            ],
            "type": "string"
          },
          "redirect_uris": {
            "description": "List of possible redirect uris.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "origin_id": {
            "description": "Client origin ID.",
            "type": "string"
          }
        }
      },
      "token": {
        "example": {
          "access_token": "nowhere_to_apply",
          "token_type": "bearer",
          "expires_in": 600,
          "expires_on": 1388444763,
          "id_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.....",
          "refresh_token": "OhYc9oko5ej9"
        },
        "type": "object",
        "required": [
          "access_token",
          "token_type",
          "id_token"
        ],
        "properties": {
          "access_token": {
            "type": "string"
          },
          "token_type": {
            "type": "string"
          },
          "expires_in": {
            "type": "integer"
          },
          "expires_on": {
            "type": "integer"
          },
          "id_token": {
            "type": "string"
          },
          "refresh_token": {
            "type": "string"
          }
        }
      },
      "tokenError": {
        "type": "object",
        "required": [
          "error",
          "error_description"
        ],
        "properties": {
          "error": {
            "enum": [
              "totp_setup_required",
              "totp_required",
              "invalid_totp",
              "access_denied",
              "invalid_request"
            ],
            "type": "string"
          },
          "error_description": {
            "type": "string"
          }
        }
      },
      "revokeError": {
        "type": "object",
        "required": [
          "error",
          "error_description"
        ],
        "properties": {
          "error": {
            "enum": [
              "invalid_client",
              "invalid_request",
              "unsupported_token_type"
            ],
            "type": "string"
          },
          "error_description": {
            "type": "string"
          }
        }
      },
      "tokenIntrospectionResponse": {
        "example": {
          "active": true,
          "token_type": "access_token",
          "exp": 1721745289,
          "aud": "mc-global.do.acronis.fun",
          "jti": "ded74262-94ab-490a-b852-0214fe09a7ad",
          "iss": "https://mc-global.do.acronis.fun/bc",
          "sub": "f5c64710-6726-5fea-97fd-b2263b9c4d8b",
          "sub_type": "c2c_backup_manager",
          "client_id": "f5c64710-6726-5fea-97fd-b2263b9c4d8b",
          "owner_tuid": "7fce5f09-2e4b-4c26-8311-31a361c13190",
          "scope": [
            {
              "tid": "1",
              "tuid": "7fce5f09-2e4b-4c26-8311-31a361c13190",
              "rn": "task_manager",
              "rp": "queue_c2c_acc_registration",
              "role": "consumer"
            },
            {
              "tid": "1",
              "tuid": "7fce5f09-2e4b-4c26-8311-31a361c13190",
              "rn": "credentials_store",
              "role": "consumer"
            }
          ]
        },
        "type": "object",
        "required": [
          "active"
        ],
        "properties": {
          "active": {
            "type": "boolean"
          },
          "token_type": {
            "type": "string"
          },
          "exp": {
            "type": "integer"
          },
          "aud": {
            "type": "string"
          },
          "jti": {
            "type": "string"
          },
          "iss": {
            "type": "string"
          },
          "sub": {
            "type": "string"
          },
          "sub_type": {
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "owner_tuid": {
            "type": "string"
          },
          "scope": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tuid": {
                  "type": "string"
                },
                "tid": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "rn": {
                  "type": "string"
                },
                "rs": {
                  "type": "string"
                },
                "rp": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "idpOttPost": {
        "example": {
          "login": "user@mail.org",
          "purpose": "user_login",
          "audit_data": "external system support department user ID"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "purpose"
        ],
        "properties": {
          "purpose": {
            "description": "Purposes of one-time tokens.",
            "enum": [
              "user_login",
              "verify"
            ],
            "type": "string"
          },
          "login": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "user_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "audit_data": {
            "description": "An arbitrary optional text field that could be later used for auditing purposes.",
            "type": "string"
          }
        }
      },
      "idpOtt": {
        "example": {
          "ott": "dGhpcyBpcyB0ZXN0IG9uZS10aW1lIHRva2Vu"
        },
        "type": "object",
        "required": [
          "ott"
        ],
        "properties": {
          "ott": {
            "description": "A base64-encoded one-time token.",
            "type": "string"
          }
        }
      },
      "idpOttLoginPost": {
        "example": {
          "ott": "dGhpcyBpcyB0ZXN0IG9uZS10aW1lIHRva2Vu"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "ott"
        ],
        "properties": {
          "ott": {
            "type": "string"
          }
        }
      },
      "user": {
        "example": {
          "id": "948efcf2-b740-4c40-bb2d-4e4a46adfd87",
          "version": 2,
          "tenant_id": "0ef03214-6e47-4e50-87f2-a5955ba6095c",
          "login": "mylogin",
          "contact": {
            "id": "27f6f164-63dd-47df-b5b6-83a0fd117beb",
            "created_at": "2020-05-19T11:50:00",
            "updated_at": "2020-05-19T11:50:00",
            "types": [],
            "email": "me@mysite.com",
            "address1": "1440 River Drive #100",
            "address2": "",
            "country": "USA",
            "state": "CA",
            "zipcode": "12345",
            "city": "Rivertown",
            "phone": "123456789",
            "firstname": "John",
            "lastname": "Doe",
            "title": "",
            "website": "",
            "industry": "",
            "organization_size": "",
            "email_confirmed": false,
            "aan": "111111",
            "deleted_at": "2020-05-19T11:50:00"
          },
          "activated": true,
          "enabled": true,
          "created_at": "2016-06-22T18:25:16",
          "updated_at": "2016-06-22T18:25:16",
          "deleted_at": null,
          "language": "ru",
          "idp_id": "e6f73a28-ff2e-4728-8f78-49eb74b20fce",
          "external_id": "S-1-5-21-917267712-1342860078-1792151419-500",
          "personal_tenant_id": "2f8ad2e2-28f2-11e7-aad1-5ffe2ad47151",
          "business_types": [],
          "notifications": [
            "maintenance",
            "quota",
            "reports",
            "backup_error",
            "backup_warning",
            "backup_info",
            "backup_daily_report",
            "backup_critical",
            "device_control_warning",
            "certificate_management_error",
            "certificate_management_warning",
            "certificate_management_info"
          ],
          "mfa_status": "setup_required",
          "session_mfa_status": "required",
          "origin_id": "pillr.mdr",
          "origin_external_id": "c66b1af2-2ac5-4764-8db6-97b054e7d27e",
          "disable_after": "2017-06-22T18:25:16",
          "terms_accepted": true,
          "tenant_kind": "partner",
          "tenant_pricing_model": "trial",
          "brand_id": "a77b1af2-3ac5-576d-1db3-27b054e7d2aa"
        },
        "type": "object",
        "required": [
          "id",
          "version",
          "tenant_id",
          "login",
          "contact",
          "activated",
          "enabled",
          "created_at",
          "updated_at",
          "deleted_at",
          "language",
          "business_types",
          "notifications"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "login": {
            "description": "User's login.",
            "type": "string"
          },
          "contact": {
            "$ref": "#/components/schemas/items"
          },
          "activated": {
            "description": "Flag, indicates whether the user has been activated or not.",
            "type": "boolean"
          },
          "enabled": {
            "description": "Flag, indicates whether the user is enabled or disabled.",
            "type": "boolean"
          },
          "access_policies": {
            "description": "Will be returned with all user access policies if query param `with_access_policies` is provided.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/items_1"
            }
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "language": {
            "description": "Preferred locale.",
            "type": "string"
          },
          "idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "external_id": {
            "description": "User's ID in external identity provider (e.g. SID in AD).",
            "type": "string"
          },
          "origin_id": {
            "description": "User's origin ID, for example, ID of a Cyber Application responsible for creating this user.",
            "type": "string"
          },
          "origin_external_id": {
            "description": "User's external origin ID.",
            "type": "string"
          },
          "disable_after": {
            "$ref": "#/components/schemas/item1"
          },
          "personal_tenant_id": {
            "description": "UUID of user's personal tenant. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "business_types": {
            "$ref": "#/components/schemas/business_types"
          },
          "notifications": {
            "$ref": "#/components/schemas/userNotifications"
          },
          "mfa_status": {
            "description": "Multi-factor authentication status of the user.",
            "enum": [
              "disabled",
              "forcibly_disabled",
              "setup_required",
              "enabled"
            ],
            "type": "string"
          },
          "session_mfa_status": {
            "description": "Multi-factor authentication status of the user session.",
            "enum": [
              "passed_or_not_required",
              "passed_as_trusted",
              "required"
            ],
            "type": "string"
          },
          "external_operation_status": {
            "description": "Indicates if some external operation in progress for this user (his personal tenant).",
            "nullable": true,
            "enum": [
              "deleting",
              "recovering"
            ],
            "type": "string"
          },
          "terms_accepted": {
            "description": "Flag that defines if this user has accepted EULA.",
            "type": "boolean"
          },
          "login_totp_time": {
            "description": "The time when the user in the current session passed TOTP verification.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "tenant_kind": {
            "$ref": "#/components/schemas/tenantKind"
          },
          "tenant_pricing_model": {
            "$ref": "#/components/schemas/pricingMode"
          },
          "brand_id": {
            "$ref": "#/components/schemas/uuid"
          }
        }
      },
      "deviceAuthorizationResponse": {
        "example": {
          "device_code": "qVqLLfXHCdFS7nT4M_WI-_hMGXaxzylUBhqZ-CXUPGd-g4B5CFQfgrrDFtHqxSX4",
          "user_code": "RDRD-WNDB",
          "verification_uri": "http://127.0.0.1:61827/abc",
          "verification_uri_complete": "http://127.0.0.1:61827/abc?code=RDRD-WNDB",
          "expires_in": 30,
          "interval": 100
        },
        "type": "object",
        "required": [
          "device_code",
          "user_code",
          "verification_uri"
        ],
        "properties": {
          "device_code": {
            "description": "The device verification code.",
            "type": "string"
          },
          "user_code": {
            "description": "The end-user verification code.",
            "type": "string"
          },
          "verification_uri": {
            "description": "The end-user verification URI.",
            "type": "string"
          },
          "verification_uri_complete": {
            "description": "A verification URI that includes the `user_code`.",
            "type": "string"
          },
          "expires_in": {
            "description": "The lifetime in seconds of the `device_code` and `user_code`.",
            "type": "integer"
          },
          "interval": {
            "description": "The minimum interval time in seconds for the client polling requests to the token endpoint.",
            "type": "integer"
          }
        }
      },
      "deviceAuthorizationApprovalResponse": {
        "example": {
          "client_id": "fa6859a9-f5e1-4faf-a56c-5a0ae866dc4f",
          "display_name": "Super Device",
          "scope": [
            "urn:acronis.com:tenant-id::backup_agent_admin"
          ],
          "tenant_id": "822",
          "tenant_name": "Ivan Ivanov",
          "is_current_tenant": false
        },
        "type": "object",
        "required": [
          "client_id",
          "display_name",
          "scope"
        ],
        "properties": {
          "client_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "display_name": {
            "description": "Device display name (machine name, cluster ID, etc.).",
            "type": "string"
          },
          "scope": {
            "description": "Scopes requested or authorized by the end user for the client.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tenant_id": {
            "description": "ID of the scoped tenant.",
            "type": "string"
          },
          "tenant_name": {
            "description": "Name of the scoped tenant.",
            "type": "string"
          },
          "is_current_tenant": {
            "description": "True if the tenant ID provided by ApiGW is in the path of the scoped tenant ID; false otherwise.",
            "type": "boolean"
          }
        }
      },
      "deviceAuthorizationApprovalRequest": {
        "example": {
          "code": "RDRD-WNDB",
          "tenant_uuid": "ab7869a9-f5e1-4faf-a56c-5a0ae866dc41"
        },
        "type": "object",
        "required": [
          "code"
        ],
        "properties": {
          "code": {
            "description": "The end-user verification code.",
            "type": "string"
          },
          "tenant_uuid": {
            "$ref": "#/components/schemas/uuid"
          }
        }
      },
      "infraBatch": {
        "example": {
          "items": [
            {
              "id": "8fcd353b-0a40-40f2-9a55-ef8137d48800",
              "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
              "location_id": "f79546d7-d051-4e19-96f3-4cc68c2c5575",
              "platform_owned": true,
              "name": "Infrastructure Component",
              "url": "acronis+fes://storage20.corp.acronis.com:44445",
              "capabilities": [
                "backup",
                "files_cloud"
              ],
              "content_url": "https://browse.storage20.corp.acronis.com/",
              "content_mobile_url": "https://browse.storage20.corp.acronis.com/mobile/",
              "backend_type": "azure",
              "version": 3
            },
            {
              "id": "3d1efc54-4e9a-4db1-abe6-7d2aee50cead",
              "owner_tenant_id": "3f545595-0e77-4a34-9259-dab5256f9559",
              "location_id": "bfdf24b0-5a72-49a8-a2bd-2fc7c085ff7b",
              "platform_owned": false,
              "name": "DR Infrastructure Component",
              "url": "amazon+s3://dr.corp.acronis.com",
              "capabilities": [
                "disaster_recovery"
              ],
              "backend_type": "acronis",
              "version": 5
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/infra"
            }
          }
        }
      },
      "infraPost": {
        "example": {
          "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
          "location_id": "bfdf24b0-5a72-49a8-a2bd-2fc7c085ff7b",
          "name": "Default Infrastructure Component",
          "url": "acronis+fes://storage20.acronis.com:44445",
          "capabilities": [
            "backup",
            "disaster_recovery"
          ],
          "content_url": "https://browse.storage20.acronis.com/",
          "content_mobile_url": "https://browse.storage20.acronis.com/mobile/",
          "backend_type": "azure"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "owner_tenant_id",
          "name",
          "url",
          "capabilities"
        ],
        "properties": {
          "owner_tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "location_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "description": "Human-readable name of infrastructure component that will be displayed to the users.",
            "type": "string"
          },
          "url": {
            "$ref": "#/components/schemas/link"
          },
          "capabilities": {
            "description": "Capabilities of infrastructure component.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/infraCap"
            }
          },
          "content_url": {
            "$ref": "#/components/schemas/link"
          },
          "content_mobile_url": {
            "$ref": "#/components/schemas/link"
          },
          "backend_type": {
            "$ref": "#/components/schemas/backendType"
          }
        }
      },
      "infra": {
        "example": {
          "id": "8fcd353b-0a40-40f2-9a55-ef8137d48800",
          "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
          "location_id": "f79546d7-d051-4e19-96f3-4cc68c2c5575",
          "platform_owned": true,
          "name": "Infrastructure Component",
          "url": "acronis+fes://storage20.corp.acronis.com:44445",
          "capabilities": [
            "backup",
            "disaster_recovery"
          ],
          "content_url": "https://browse.storage20.corp.acronis.com/",
          "content_mobile_url": "https://browse.storage20.corp.acronis.com/mobile/",
          "backend_type": "azure",
          "version": 3,
          "readonly": false
        },
        "type": "object",
        "required": [
          "id",
          "owner_tenant_id",
          "location_id",
          "platform_owned",
          "name",
          "url",
          "capabilities",
          "backend_type",
          "version"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "owner_tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "location_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "platform_owned": {
            "description": "Is infra component owned by Platform.",
            "type": "boolean"
          },
          "name": {
            "description": "Human-readable name of infrastructure component that will be displayed to the users.",
            "type": "string"
          },
          "url": {
            "$ref": "#/components/schemas/link"
          },
          "capabilities": {
            "description": "Capabilities of infrastructure component.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/infraCap"
            }
          },
          "content_url": {
            "$ref": "#/components/schemas/link"
          },
          "content_mobile_url": {
            "$ref": "#/components/schemas/link"
          },
          "backend_type": {
            "$ref": "#/components/schemas/backendType"
          },
          "version": {
            "description": "Auto-incremented infrastructure component version.",
            "type": "integer"
          },
          "readonly": {
            "description": "True if infra details are accessible in a limited way, e.g. infra is owned by some ancestor.",
            "type": "boolean"
          }
        }
      },
      "infraPut": {
        "example": {
          "name": "Infrastructure Component",
          "url": "acronis+fes://storage20.corp.acronis.com:44445",
          "capabilities": [
            "files_cloud"
          ],
          "content_url": "https://browse.storage20.corp.acronis.com/",
          "content_mobile_url": "https://browse.storage20.corp.acronis.com/mobile/",
          "backend_type": "azure",
          "version": 10
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "name": {
            "description": "Human-readable name of infrastructure component that will be displayed to the users.",
            "type": "string"
          },
          "location_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "url": {
            "$ref": "#/components/schemas/link"
          },
          "capabilities": {
            "description": "Capabilities of infrastructure component.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/infraCap"
            }
          },
          "content_url": {
            "$ref": "#/components/schemas/link"
          },
          "content_mobile_url": {
            "$ref": "#/components/schemas/link"
          },
          "backend_type": {
            "$ref": "#/components/schemas/backendType"
          },
          "version": {
            "description": "Auto-incremented infrastructure component version.",
            "type": "integer"
          }
        }
      },
      "locationBatch": {
        "example": {
          "items": [
            {
              "id": "8fcd353b-0a40-40f2-9a55-ef8137d48800",
              "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
              "platform_owned": true,
              "name": "Capetown Infrastructure",
              "version": 3,
              "readonly": false
            },
            {
              "id": "3d1efc54-4e9a-4db1-abe6-7d2aee50cead",
              "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
              "platform_owned": false,
              "name": "Singapore Infrastructure",
              "version": 5,
              "readonly": false
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/location"
            }
          }
        }
      },
      "locationPost": {
        "example": {
          "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
          "name": "Boston Infrastructure"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "owner_tenant_id",
          "name"
        ],
        "properties": {
          "owner_tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "description": "Human-readable name of infrastructure location that will be displayed to the users.",
            "type": "string"
          }
        }
      },
      "location": {
        "example": {
          "id": "8fcd353b-0a40-40f2-9a55-ef8137d48800",
          "owner_tenant_id": "0bb386ae-e66d-4e7b-84fb-cddcf60002de",
          "platform_owned": true,
          "name": "Boston Infrastructure",
          "version": 3,
          "readonly": false
        },
        "type": "object",
        "required": [
          "id",
          "owner_tenant_id",
          "platform_owned",
          "name",
          "version"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "owner_tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "platform_owned": {
            "description": "Is infra location owned by Platform.",
            "type": "boolean"
          },
          "name": {
            "description": "Human-readable name of infrastructure location that will be displayed to the users.",
            "type": "string"
          },
          "version": {
            "description": "Auto-incremented infrastructure location version.",
            "type": "integer"
          },
          "readonly": {
            "description": "True if location details are accessible in a limited way, e.g. location is owned by some ancestor.",
            "type": "boolean"
          }
        }
      },
      "locationPut": {
        "example": {
          "name": "Boston Infrastructure",
          "version": 10
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "version"
        ],
        "properties": {
          "name": {
            "description": "Human-readable name of infrastructure location that will be displayed to the users.",
            "type": "string"
          },
          "version": {
            "description": "Auto-incremented infrastructure location version.",
            "type": "integer"
          }
        }
      },
      "infraList": {
        "example": {
          "infras": [
            "d9fd4cc3-4309-40a2-bd79-88da24a1c99d",
            "7068976a-22c0-476e-ae3b-5f0469981ff1"
          ]
        },
        "type": "object",
        "properties": {
          "infras": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid"
            }
          }
        }
      },
      "registrationTokensList": {
        "example": {
          "items": [
            {
              "id": 2,
              "token": "27F9-5234-41C3",
              "tenant_id": "11",
              "tenant_uuid": "4b07e4a1-a49b-4d4e-b8f2-253f1fef98ad",
              "created_at": "2022-04-02T18:46:45Z",
              "expires_at": "2022-04-05T18:46:45Z",
              "scopes": [
                "urn:acronis.com:tenant-id:734fe814-748a-41cb-8a94-60e18fb3c442:backup_agent_admin",
                "urn:acronis.com::policy_management:4b07e4a1-a49b-4d4e-b8f2-253f1fef98ad|10858a46-db9b-4725-aa60-fff6252841fd:apply_revoke"
              ]
            },
            {
              "id": 3,
              "token": "F8CA-2DD1-41F1",
              "tenant_id": "1363521",
              "tenant_uuid": "00bc0d4a-9879-40bf-823a-77c01b197dc1",
              "created_at": "2022-04-02T18:57:46Z",
              "expires_at": "2022-04-05T18:57:46Z",
              "scopes": [
                "urn:acronis.com:tenant-id:1e3d306e-85ad-454c-b4f6-2bd73c83b9a1:backup_agent_admin"
              ]
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/registrationToken"
            }
          }
        }
      },
      "registrationTokenPost": {
        "example": {
          "tenant_id": "72acaf6a-b15a-11e6-80f5-76304dec7eb7",
          "expires_in": 3600,
          "scopes": [
            "urn:acronis.com:tenant-id:734fe814-748a-41cb-8a94-60e18fb3c442:backup_agent_admin"
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "expires_in",
          "scopes"
        ],
        "properties": {
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "expires_in": {
            "description": "Token expiration time in seconds. Should be less than or equal to one year.",
            "type": "integer"
          },
          "scopes": {
            "description": "Access scopes that are applied to the registered resource. The following access scope patterns are available:\n- `urn:acronis.com:tenant-id:{personal_tenant_id}:backup_agent_admin` - binds the resource to the user by personal tenant ID specified in `{personal_tenant_id}`.\n- `urn:acronis.com::policy_management:{tenant_id}|{policy_id}:apply_revoke` - applies a protection plan to a resource by policy ID specified in `{policy_id}` from a resource owner tenant specified in `{tenant_id}`.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "registrationToken": {
        "example": {
          "id": 2,
          "token": "27F9-5234-41C3",
          "tenant_id": "11",
          "tenant_uuid": "4b07e4a1-a49b-4d4e-b8f2-253f1fef98ad",
          "created_at": "2022-04-02T18:46:45Z",
          "expires_at": "2022-04-05T18:46:45Z",
          "scopes": [
            "urn:acronis.com:tenant-id:734fe814-748a-41cb-8a94-60e18fb3c442:backup_agent_admin",
            "urn:acronis.com::policy_management:4b07e4a1-a49b-4d4e-b8f2-253f1fef98ad|10858a46-db9b-4725-aa60-fff6252841fd:apply_revoke"
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "token",
          "created_at",
          "expires_at",
          "tenant_id",
          "scopes"
        ],
        "properties": {
          "id": {
            "description": "Initial registration token unique identifier.",
            "type": "integer"
          },
          "token": {
            "description": "Initial registration token.",
            "type": "string",
            "pattern": "[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "expires_at": {
            "$ref": "#/components/schemas/item1"
          },
          "tenant_id": {
            "description": "Numeric identifier of the resource owner tenant.",
            "type": "string",
            "pattern": "\\d+"
          },
          "tenant_uuid": {
            "$ref": "#/components/schemas/uuid"
          },
          "scopes": {
            "description": "Access scopes that are applied to the registered resource. The following access scope patterns are available:\n- `urn:acronis.com:tenant-id:{personal_tenant_id}:backup_agent_admin` - binds the resource to the user by personal tenant ID specified in `{personal_tenant_id}`.\n- `urn:acronis.com::policy_management:{tenant_id}|{policy_id}:apply_revoke` - applies a protection plan to a resource by policy ID specified in `{policy_id}` from a resource owner tenant specified in `{tenant_id}`.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "reportPost": {
        "example": {
          "recipients": [
            "ca451758-b48a-45d9-9ae6-8f1059f67619",
            "ab00e527-219b-481b-b01b-311b5be0ed3c"
          ],
          "parameters": {
            "kind": "usage_summary",
            "tenant_id": "2a91a14d-ffd3-4ac1-9b4d-3990162c5acc",
            "level": "accounts",
            "period": {
              "start": "2017-05-01",
              "end": "2017-05-07"
            },
            "formats": [
              "csv",
              "json_v1",
              "csv_v2_0",
              "json_v2_0"
            ],
            "hide_zero_usage": true,
            "show_skus": false
          },
          "schedule": {
            "type": "once"
          },
          "generation_date": "2017-05-08",
          "result_action": "send"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "recipients",
          "result_action",
          "parameters",
          "schedule"
        ],
        "properties": {
          "recipients": {
            "description": "IDs of subscribed users.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid"
            }
          },
          "result_action": {
            "description": "What to do with report.",
            "enum": [
              "save",
              "send"
            ],
            "type": "string"
          },
          "parameters": {
            "type": "object",
            "required": [
              "tenant_id",
              "level",
              "kind"
            ],
            "properties": {
              "tenant_id": {
                "$ref": "#/components/schemas/uuid"
              },
              "level": {
                "description": "Level of report detail.",
                "enum": [
                  "itself",
                  "direct_partners",
                  "all_partners",
                  "all_customers",
                  "accounts"
                ],
                "type": "string"
              },
              "kind": {
                "description": "Kind of report.",
                "enum": [
                  "usage_daily",
                  "usage_summary",
                  "usage_current",
                  "usage_breakdown"
                ],
                "type": "string"
              },
              "formats": {
                "description": "Report formats.",
                "type": "array",
                "items": {
                  "enum": [
                    "csv",
                    "html",
                    "json_v1",
                    "csv_v2_0",
                    "json_v2_0"
                  ],
                  "type": "string"
                }
              },
              "period": {
                "description": "Report period.",
                "type": "object",
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "$ref": "#/components/schemas/document_version"
                  },
                  "end": {
                    "$ref": "#/components/schemas/document_version"
                  }
                }
              },
              "hide_zero_usage": {
                "description": "Hide metrics with zero usage in report.",
                "type": "boolean"
              },
              "show_skus": {
                "description": "Show SKU-related fields in report.",
                "type": "boolean"
              }
            }
          },
          "schedule": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "enabled": {
                "description": "Flag indicating whether the report is enabled (scheduled reports only).",
                "type": "boolean"
              },
              "type": {
                "description": "Type of report schedule.",
                "enum": [
                  "once",
                  "monthly"
                ],
                "type": "string"
              }
            }
          },
          "generation_date": {
            "$ref": "#/components/schemas/document_version"
          }
        }
      },
      "report": {
        "example": {
          "id": "20dffb36-d77b-45c6-b2fa-39276e98d5fc",
          "recipients": [
            "ca451758-b48a-45d9-9ae6-8f1059f67619",
            "ab00e527-219b-481b-b01b-311b5be0ed3c"
          ],
          "version": 2,
          "parameters": {
            "kind": "usage_summary",
            "tenant_id": "2a91a14d-ffd3-4ac1-9b4d-3990162c5acc",
            "level": "accounts",
            "period": {
              "start": "2017-05-01",
              "end": "2017-05-07"
            },
            "formats": [
              "csv"
            ],
            "hide_zero_usage": true,
            "show_skus": false
          },
          "schedule": {
            "type": "once",
            "enabled": true
          },
          "result_action": "send",
          "generation_date": "2017-05-08"
        },
        "type": "object",
        "required": [
          "id",
          "version",
          "result_action",
          "recipients",
          "parameters",
          "schedule",
          "generation_date"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "result_action": {
            "description": "What to do with report.",
            "enum": [
              "save",
              "send"
            ],
            "type": "string"
          },
          "recipients": {
            "description": "IDs of subscribed users.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid"
            }
          },
          "parameters": {
            "type": "object",
            "required": [
              "tenant_id",
              "level",
              "formats",
              "kind",
              "period"
            ],
            "properties": {
              "tenant_id": {
                "$ref": "#/components/schemas/uuid"
              },
              "level": {
                "description": "Level of report detail.",
                "enum": [
                  "itself",
                  "direct_partners",
                  "all_partners",
                  "all_customers",
                  "accounts"
                ],
                "type": "string"
              },
              "formats": {
                "description": "Report formats.",
                "type": "array",
                "items": {
                  "enum": [
                    "csv",
                    "html",
                    "json_v1",
                    "csv_v2_0"
                  ],
                  "type": "string"
                }
              },
              "kind": {
                "description": "Kind of report.",
                "enum": [
                  "usage_daily",
                  "usage_summary",
                  "usage_current",
                  "usage_breakdown"
                ],
                "type": "string"
              },
              "period": {
                "description": "Report period.",
                "type": "object",
                "required": [
                  "start",
                  "end"
                ],
                "properties": {
                  "start": {
                    "$ref": "#/components/schemas/document_version"
                  },
                  "end": {
                    "$ref": "#/components/schemas/document_version"
                  }
                }
              },
              "hide_zero_usage": {
                "description": "Hide metrics with zero usage in report.",
                "type": "boolean"
              },
              "show_skus": {
                "description": "Show SKU-related fields in report.",
                "type": "boolean"
              }
            }
          },
          "schedule": {
            "type": "object",
            "required": [
              "enabled",
              "type"
            ],
            "properties": {
              "enabled": {
                "description": "Flag indicating whether the report is enabled (scheduled reports only).",
                "type": "boolean"
              },
              "type": {
                "description": "Type of report schedule.",
                "enum": [
                  "once",
                  "monthly"
                ],
                "type": "string"
              }
            }
          },
          "generation_date": {
            "$ref": "#/components/schemas/document_version"
          }
        }
      },
      "reportPut": {
        "example": {
          "recipients": [
            "ca451758-b48a-45d9-9ae6-8f1059f67619"
          ],
          "parameters": {
            "kind": "usage_current",
            "tenant_id": "2a91a14d-ffd3-4ac1-9b4d-3990162c5acc",
            "level": "direct_partners",
            "hide_zero_usage": true,
            "show_skus": false
          }
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "recipients": {
            "description": "IDs of subscribed users.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid"
            }
          },
          "parameters": {
            "type": "object",
            "properties": {
              "level": {
                "description": "Level of report detail.",
                "enum": [
                  "itself",
                  "direct_partners",
                  "all_partners",
                  "all_customers",
                  "accounts"
                ],
                "type": "string"
              },
              "kind": {
                "description": "Kind of report.",
                "enum": [
                  "usage_daily",
                  "usage_summary",
                  "usage_current",
                  "usage_breakdown"
                ],
                "type": "string"
              },
              "hide_zero_usage": {
                "description": "Hide metrics with zero usage in report.",
                "type": "boolean"
              },
              "show_skus": {
                "description": "Show SKU-related fields in report.",
                "type": "boolean"
              }
            }
          },
          "schedule": {
            "type": "object",
            "required": [
              "enabled"
            ],
            "properties": {
              "enabled": {
                "description": "Flag indicating whether the report is enabled.",
                "type": "boolean"
              }
            }
          }
        }
      },
      "storedReportParams": {
        "example": {
          "items": [
            {
              "id": "d6bc3e2e-2378-4099-bb33-6a2603aca94d",
              "report_format": "json_v1",
              "created_at": "2017-01-01T12:07:53",
              "size": 128,
              "status": "saved"
            },
            {
              "id": "db3acd0d-272e-4860-beca-fb2c2c4edd3e",
              "report_format": "json_v1",
              "created_at": "2017-01-01T12:07:53",
              "size": 128,
              "status": "saved"
            },
            {
              "id": "e3f50d66-896c-4699-970f-0a8706fa5920",
              "report_format": "json_v1",
              "created_at": "2017-01-01T12:07:53",
              "size": 128,
              "status": "saved"
            }
          ]
        },
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "report_format",
                "created_at",
                "status"
              ],
              "properties": {
                "id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "report_format": {
                  "description": "Stored report data format.",
                  "enum": [
                    "json_v1",
                    "csv_v2_0",
                    "csv",
                    "html"
                  ],
                  "type": "string"
                },
                "size": {
                  "description": "Stored report compressed size in bytes.",
                  "type": "integer"
                },
                "created_at": {
                  "$ref": "#/components/schemas/item1"
                },
                "status": {
                  "description": "Report generation status.",
                  "enum": [
                    "in_progress",
                    "saved",
                    "failed"
                  ],
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "global_search": {
        "example": {
          "items": [
            {
              "obj_type": "tenant",
              "kind": "customer",
              "id": "bfe40b45-7d3f-4183-a655-afa62b59b383",
              "parent_id": "bfe40b45-7d3f-4183-a655-afa62b59b383",
              "path": [
                "my tenant",
                "some child"
              ],
              "name": "Example group",
              "first_name": null,
              "last_name": null,
              "deleted_at": null
            },
            {
              "obj_type": "user",
              "id": "1c234e69-5469-424a-a6d1-ff5658b387a6",
              "parent_id": "1c234e69-5469-424a-a6d1-ff5658b387a6",
              "path": [
                "my tenant",
                "some child",
                "Example group"
              ],
              "login": "admin@example.com",
              "first_name": "Example",
              "last_name": "Admin",
              "deleted_at": "2022-08-10T00:00:00Z"
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "obj_type",
                "id",
                "parent_id",
                "path"
              ],
              "properties": {
                "obj_type": {
                  "enum": [
                    "tenant",
                    "user"
                  ],
                  "type": "string"
                },
                "id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "parent_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "path": {
                  "description": "List of tenants' names between search root and found object.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "kind": {
                  "$ref": "#/components/schemas/tenantKind"
                },
                "login": {
                  "description": "User's login.",
                  "type": "string"
                },
                "name": {
                  "description": "Tenant's name.",
                  "type": "string"
                },
                "first_name": {
                  "description": "User's or tenant's contact first name. This field can have a null value.",
                  "nullable": true,
                  "type": "string"
                },
                "last_name": {
                  "description": "User's or tenant's contact last name. This field can have a null value.",
                  "nullable": true,
                  "type": "string"
                },
                "deleted_at": {
                  "description": "Soft deletion timestamp.",
                  "nullable": true,
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/item1"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "tenantBatch": {
        "description": "Batch response for tenants. The structure of items depends on the `lod` query parameter: stamps, basic, or full (default).",
        "type": "object",
        "required": [
          "timestamp",
          "items"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/paging"
          },
          "timestamp": {
            "$ref": "#/components/schemas/item1"
          },
          "items": {
            "description": "Array of tenant objects. The fields returned depend on the `lod` query parameter.",
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "Tenant stamps schema (lod=stamps)",
                  "description": "Tenant object with minimal fields returned when lod=stamps is specified.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "parent_id",
                    "version",
                    "created_at",
                    "updated_at",
                    "deleted_at",
                    "contacts",
                    "offering_items"
                  ],
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "parent_id": {
                      "description": "ID of parent tenant.",
                      "type": "string"
                    },
                    "version": {
                      "description": "Auto-incremented entity version.",
                      "type": "integer"
                    },
                    "created_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "updated_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "deleted_at": {
                      "description": "Soft deletion timestamp.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    },
                    "contacts": {
                      "description": "Empty array by default. Will be populated with all referencing contacts if query param `with_contacts` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_2"
                      }
                    },
                    "offering_items": {
                      "description": "Will be returned with all tenant offering items if query param `with_offering_items` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_3"
                      }
                    }
                  }
                },
                {
                  "title": "Tenant basic schema (lod=basic)",
                  "description": "Tenant object with basic fields returned when lod=basic is specified. Includes all stamps fields plus name, kind, enabled.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "parent_id",
                    "version",
                    "created_at",
                    "updated_at",
                    "deleted_at",
                    "contacts",
                    "offering_items",
                    "name",
                    "kind",
                    "enabled"
                  ],
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "parent_id": {
                      "description": "ID of parent tenant.",
                      "type": "string"
                    },
                    "version": {
                      "description": "Auto-incremented entity version.",
                      "type": "integer"
                    },
                    "created_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "updated_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "deleted_at": {
                      "description": "Soft deletion timestamp.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    },
                    "contacts": {
                      "description": "Empty array by default. Will be populated with all referencing contacts if query param `with_contacts` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_2"
                      }
                    },
                    "offering_items": {
                      "description": "Will be returned with all tenant offering items if query param `with_offering_items` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_3"
                      }
                    },
                    "name": {
                      "description": "Human-readable name that will be displayed to the users.",
                      "type": "string"
                    },
                    "kind": {
                      "$ref": "#/components/schemas/tenantKind"
                    },
                    "enabled": {
                      "description": "Flag, indicates whether the tenant is enabled or disabled.",
                      "type": "boolean"
                    }
                  }
                },
                {
                  "title": "Tenant full schema (lod=full)",
                  "description": "Tenant object with all fields returned when lod=full is specified (default).",
                  "type": "object",
                  "additionalProperties": true,
                  "required": [
                    "id",
                    "parent_id",
                    "version",
                    "created_at",
                    "updated_at",
                    "deleted_at",
                    "contacts",
                    "offering_items",
                    "name",
                    "kind",
                    "enabled",
                    "customer_type",
                    "brand_id",
                    "brand_uuid",
                    "brand_enabled",
                    "barrier",
                    "internal_tag",
                    "language",
                    "has_children",
                    "default_idp_id",
                    "update_lock",
                    "ancestral_access",
                    "mfa_status",
                    "pricing_mode",
                    "contact"
                  ],
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "parent_id": {
                      "description": "ID of parent tenant.",
                      "type": "string"
                    },
                    "version": {
                      "description": "Auto-incremented entity version.",
                      "type": "integer"
                    },
                    "created_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "updated_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "deleted_at": {
                      "description": "Soft deletion timestamp.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    },
                    "contacts": {
                      "description": "Empty array by default. Will be populated with all referencing contacts if query param `with_contacts` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_2"
                      }
                    },
                    "offering_items": {
                      "description": "Will be returned with all tenant offering items if query param `with_offering_items` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_3"
                      }
                    },
                    "name": {
                      "description": "Human-readable name that will be displayed to the users.",
                      "type": "string"
                    },
                    "kind": {
                      "$ref": "#/components/schemas/tenantKind"
                    },
                    "enabled": {
                      "description": "Flag, indicates whether the tenant is enabled or disabled.",
                      "type": "boolean"
                    },
                    "customer_type": {
                      "$ref": "#/components/schemas/customerType"
                    },
                    "customer_id": {
                      "description": "ID from external system; for reporting purposes. This field can have a null value.",
                      "nullable": true,
                      "type": "string"
                    },
                    "brand_id": {
                      "nullable": true,
                      "type": "integer"
                    },
                    "brand_uuid": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "brand_enabled": {
                      "description": "Flag, indicates whether the branding is enabled or disabled on tenant.",
                      "type": "boolean"
                    },
                    "barrier": {
                      "description": "Shows the ancestor nesting level, ancestors above which will not have access to this tenant and its entities.",
                      "type": "integer"
                    },
                    "internal_tag": {
                      "description": "Internal tag. This field can have a null value.",
                      "nullable": true,
                      "type": "string"
                    },
                    "language": {
                      "description": "Tenant's preferred language.",
                      "type": "string"
                    },
                    "owner_id": {
                      "description": "Identifier of personal tenant owner user. This field can have a null value.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/uuid"
                        }
                      ]
                    },
                    "has_children": {
                      "description": "Flag, indicates if tenant has children.",
                      "type": "boolean"
                    },
                    "default_idp_id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "update_lock": {
                      "type": "object",
                      "required": [
                        "enabled",
                        "owner_id"
                      ],
                      "properties": {
                        "enabled": {
                          "description": "If true, updating the tenant via API is not allowed to anyone except for users of the tenant that owns the lock.",
                          "type": "boolean"
                        },
                        "owner_id": {
                          "description": "ID of tenant that owns the lock (only users of this tenant can update the tenant in question). This field can have a null value.",
                          "nullable": true,
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/uuid"
                            }
                          ]
                        }
                      }
                    },
                    "ancestral_access": {
                      "description": "Indicates whether tenant's indirect ancestors have access to it.",
                      "type": "boolean"
                    },
                    "mfa_status": {
                      "description": "Multi-factor authentication status of the tenant.",
                      "enum": [
                        "disabled",
                        "forcibly_disabled",
                        "setup_required",
                        "enabled"
                      ],
                      "type": "string"
                    },
                    "pricing_mode": {
                      "$ref": "#/components/schemas/pricingMode"
                    },
                    "contact": {
                      "type": "object",
                      "required": [
                        "id",
                        "created_at",
                        "updated_at",
                        "types",
                        "email",
                        "firstname",
                        "lastname"
                      ],
                      "properties": {
                        "id": {
                          "$ref": "#/components/schemas/uuid"
                        },
                        "created_at": {
                          "description": "Date and time when contact was created.",
                          "nullable": true,
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/item1"
                            }
                          ]
                        },
                        "updated_at": {
                          "description": "Last update timestamp, if contact has just been created - then is equal to `created_at`.",
                          "nullable": true,
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/item1"
                            }
                          ]
                        },
                        "types": {
                          "type": "array",
                          "minItems": 0,
                          "uniqueItems": true,
                          "items": {
                            "enum": [
                              "legal",
                              "primary",
                              "billing",
                              "technical",
                              "management",
                              "company_billing"
                            ],
                            "type": "string"
                          }
                        },
                        "email": {
                          "$ref": "#/components/schemas/email"
                        },
                        "address1": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "address2": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "country": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "state": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "city": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "zipcode": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "phone": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "firstname": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "lastname": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "title": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "website": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "industry": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "organization_size": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "email_confirmed": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "boolean"
                        },
                        "aan": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "fax": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        },
                        "language": {
                          "description": "This field can have a null value.",
                          "nullable": true,
                          "type": "string"
                        }
                      }
                    },
                    "external_operation_status": {
                      "description": "Indicates if some external operation in progress for this tenant.",
                      "nullable": true,
                      "enum": [
                        "deleting",
                        "recovering"
                      ],
                      "type": "string"
                    },
                    "production_start_date": {
                      "description": "Tenant trial expiration date.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "tenantPost": {
        "example": {
          "name": "The Qwerty Tenant",
          "parent_id": "fa6859a9-f5e1-4faf-a56c-5a0ae866dc4f",
          "kind": "partner",
          "contact": {
            "email": "su@test.com",
            "address1": "Home",
            "phone": "123456789"
          },
          "customer_id": "123asd",
          "internal_tag": null,
          "language": "pt_BR",
          "settings": {
            "enhanced_security": false
          }
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "parent_id",
          "kind"
        ],
        "properties": {
          "name": {
            "description": "Human-readable name that will be displayed to the users.",
            "type": "string"
          },
          "parent_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "kind": {
            "$ref": "#/components/schemas/tenantKind"
          },
          "contact": {
            "$ref": "#/components/schemas/contactPut"
          },
          "company_billing_contact": {
            "$ref": "#/components/schemas/contactPut"
          },
          "enabled": {
            "description": "Flag, indicates whether the tenant is enabled or disabled.",
            "type": "boolean"
          },
          "customer_id": {
            "description": "ID from external system; for reporting purposes.",
            "type": "string"
          },
          "internal_tag": {
            "description": "Internal tag. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "language": {
            "description": "Preferred locale.",
            "type": "string"
          },
          "default_idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "update_lock": {
            "type": "object",
            "required": [
              "enabled"
            ],
            "properties": {
              "enabled": {
                "description": "If true, updating the tenant via API is not allowed to anyone except for users of the tenant that owns the lock.",
                "type": "boolean"
              }
            }
          },
          "ancestral_access": {
            "description": "Access to newly created tenant from ancestors.",
            "type": "boolean"
          },
          "settings": {
            "type": "object",
            "properties": {
              "enhanced_security": {
                "description": "Enables PCI DSS mode.",
                "type": "boolean"
              }
            }
          }
        }
      },
      "tenant": {
        "title": "Basic tenant schema",
        "example": {
          "id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
          "version": 2,
          "name": "The Qwerty Tenant",
          "customer_type": "enterprise",
          "parent_id": "fa6859a9-f5e1-4faf-a56c-5a0ae866dc4f",
          "kind": "partner",
          "contact": {
            "id": "27f6f164-63dd-47df-b5b6-83a0fd117beb",
            "created_at": "2020-05-19T11:50:00",
            "updated_at": "2020-05-19T11:50:00",
            "types": [
              "legal"
            ],
            "email": "me@mysite.com",
            "address1": "1440 River Drive #100",
            "address2": "",
            "country": "USA",
            "state": "CA",
            "zipcode": "12345",
            "city": "Rivertown",
            "phone": "123456789",
            "firstname": "John",
            "lastname": "Doe",
            "title": "",
            "website": "",
            "industry": "",
            "organization_size": "",
            "email_confirmed": false,
            "aan": "111111"
          },
          "contacts": [],
          "enabled": true,
          "created_at": "2016-06-22T18:25:16",
          "updated_at": "2016-06-22T18:25:16",
          "deleted_at": null,
          "customer_id": "123asd",
          "brand_id": 1,
          "brand_uuid": "03fa8bf4-28f2-11e7-ba28-cbe99c3c450a",
          "brand_enabled": true,
          "internal_tag": null,
          "language": "en",
          "owner_id": "03fa8bf4-28f2-11e7-ba28-cbe99c3c450a",
          "has_children": true,
          "ancestral_access": true,
          "update_lock": {
            "enabled": true,
            "owner_id": "7decff12-ee1b-4f8d-b446-59610bfb9203"
          },
          "mfa_status": "enabled",
          "pricing_mode": "production",
          "production_start_date": null
        },
        "type": "object",
        "required": [
          "id",
          "version",
          "created_at",
          "updated_at",
          "deleted_at",
          "name",
          "customer_type",
          "parent_id",
          "kind",
          "contact",
          "contacts",
          "enabled",
          "brand_id",
          "brand_enabled",
          "internal_tag",
          "language",
          "has_children",
          "update_lock",
          "ancestral_access",
          "mfa_status",
          "pricing_mode"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "production_start_date": {
            "description": "Tenant trial expiration date.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "name": {
            "description": "Human-readable name that will be displayed to the users.",
            "type": "string"
          },
          "customer_type": {
            "$ref": "#/components/schemas/customerType"
          },
          "parent_id": {
            "description": "ID of parent tenant. For the real root tenant the parent_id is equal to its id",
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/tenantKind"
          },
          "contact": {
            "$ref": "#/components/schemas/items"
          },
          "contacts": {
            "description": "Empty array by default. Will be populated with all referencing contacts if query param `with_contacts` is provided.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/items"
            }
          },
          "enabled": {
            "description": "Flag, indicates whether the tenant is enabled or disabled.",
            "type": "boolean"
          },
          "customer_id": {
            "description": "ID from external system; for reporting purposes. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "brand_id": {
            "description": "Brand id for API v1.",
            "nullable": true,
            "type": "integer"
          },
          "brand_uuid": {
            "$ref": "#/components/schemas/uuid"
          },
          "brand_enabled": {
            "description": "Flag, indicates whether the branding is enabled or disabled on tenant.",
            "type": "boolean"
          },
          "internal_tag": {
            "description": "Internal tag. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "language": {
            "description": "Tenant`s preferred language.",
            "type": "string"
          },
          "owner_id": {
            "description": "Identifier of personal tenant owner user. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "has_children": {
            "description": "Flag, indicates if tenant has children.",
            "type": "boolean"
          },
          "default_idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "update_lock": {
            "type": "object",
            "required": [
              "enabled",
              "owner_id"
            ],
            "properties": {
              "enabled": {
                "description": "If true, updating the tenant via API is not allowed to anyone except for users of the tenant that owns the lock.",
                "type": "boolean"
              },
              "owner_id": {
                "description": "ID of tenant that owns the lock (only users of this tenant can update the tenant in question). This field can have a null value.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/uuid"
                  }
                ]
              }
            }
          },
          "ancestral_access": {
            "description": "Indicates whether tenant's indirect ancestors have access to it.",
            "type": "boolean"
          },
          "mfa_status": {
            "description": "Multi-factor authentication status of the tenant.",
            "enum": [
              "disabled",
              "forcibly_disabled",
              "setup_required",
              "enabled"
            ],
            "type": "string"
          },
          "pricing_mode": {
            "$ref": "#/components/schemas/pricingMode"
          },
          "external_operation_status": {
            "description": "Indicates if some external operation in progress for this tenant.",
            "nullable": true,
            "enum": [
              "deleting",
              "recovering"
            ],
            "type": "string"
          }
        }
      },
      "batchApplicationList": {
        "example": {
          "items": [
            {
              "tenant": "2b5172d7-4374-40db-8e11-08decbc53878",
              "applications": [
                "8aaf366b-fe24-4f25-93b3-bd729c86cc95",
                "aedde3dc-5954-448a-820a-0220cf32ecb1"
              ]
            },
            {
              "tenant": "aedde3dc-5954-448a-820a-0220cf32ecb1",
              "applications": [
                "aedde3dc-5954-448a-820a-0220cf32ecb1"
              ]
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "tenant",
                "applications"
              ],
              "properties": {
                "tenant": {
                  "$ref": "#/components/schemas/uuid"
                },
                "applications": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/uuid"
                  }
                }
              }
            }
          }
        }
      },
      "offeringItemList": {
        "example": {
          "value": {
            "timestamp": "2016-06-22T18:25:16",
            "items": [
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "vms",
                "edition": "standard",
                "usage_name": "vms",
                "tenant_id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
                "updated_at": "2016-06-22T18:25:16",
                "deleted_at": null,
                "status": 1,
                "locked": true,
                "type": "count",
                "measurement_unit": "quantity",
                "quota": {
                  "value": 10,
                  "overage": 10,
                  "version": 1486479690324
                }
              },
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "dre_mobiles",
                "edition": "disaster_recovery",
                "usage_name": "mobiles",
                "tenant_id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
                "updated_at": "2016-06-22T18:25:16",
                "deleted_at": null,
                "status": 1,
                "locked": false,
                "type": "count",
                "measurement_unit": "quantity",
                "quota": {
                  "value": 10,
                  "overage": 10,
                  "version": 1486479690324
                }
              },
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "local_storage",
                "edition": null,
                "usage_name": "local_storage",
                "tenant_id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
                "updated_at": "2016-06-22T18:25:16",
                "deleted_at": null,
                "status": 1,
                "type": "feature",
                "measurement_unit": "n/a"
              },
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "adv_storage",
                "edition": "advanced",
                "usage_name": "storage",
                "tenant_id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
                "updated_at": "2016-06-22T18:25:16",
                "deleted_at": null,
                "status": 1,
                "locked": true,
                "type": "infra",
                "measurement_unit": "bytes",
                "infra_id": "ee978065-8caa-463d-82d7-47006376e7f2",
                "quota": {
                  "value": 1000,
                  "overage": null,
                  "version": 1486479690324
                }
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "timestamp",
          "items"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/paging"
          },
          "timestamp": {
            "$ref": "#/components/schemas/item1"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/items_3"
            }
          }
        }
      },
      "batchUsageList": {
        "example": {
          "value": {
            "items": [
              {
                "tenant": "2b5172d7-4374-40db-8e11-08decbc53878",
                "usages": [
                  {
                    "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                    "name": "vms",
                    "edition": "standard",
                    "usage_name": "vms",
                    "range_start": "2017-06-01T00:00:00",
                    "absolute_value": 800,
                    "value": 800,
                    "type": "count",
                    "measurement_unit": "quantity",
                    "offering_item": {
                      "status": 1,
                      "quota": {
                        "value": 10,
                        "overage": 10,
                        "version": 1486479690324
                      }
                    }
                  },
                  {
                    "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                    "name": "vm_storage",
                    "edition": "mixed",
                    "usage_name": "vm_storage",
                    "type": "infra",
                    "measurement_unit": "bytes",
                    "range_start": "2017-06-01T00:00:00",
                    "absolute_value": 100000,
                    "value": 100000
                  }
                ]
              },
              {
                "tenant": "aedde3dc-5954-448a-820a-0220cf32ecb1",
                "usages": [
                  {
                    "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                    "name": "adv_vms",
                    "edition": "advanced",
                    "usage_name": "vms",
                    "range_start": "2017-06-01T00:00:00",
                    "absolute_value": 500,
                    "value": 500,
                    "type": "count",
                    "measurement_unit": "quantity",
                    "offering_item": {
                      "status": 1,
                      "quota": {
                        "value": 11,
                        "overage": 12,
                        "version": 1486479690324
                      }
                    }
                  },
                  {
                    "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                    "name": "vm_storage",
                    "edition": "mixed",
                    "usage_name": "vm_storage",
                    "type": "infra",
                    "measurement_unit": "bytes",
                    "range_start": "2017-06-01T00:00:00",
                    "absolute_value": 110000,
                    "value": 110000
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "tenant",
                "usages"
              ],
              "properties": {
                "tenant": {
                  "$ref": "#/components/schemas/uuid"
                },
                "usages": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/usageOutput"
                  }
                }
              }
            }
          }
        }
      },
      "usagePut": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "usage_value"
              ],
              "properties": {
                "tenant_id": {
                  "description": "Tenant ID (UUID). Required for per-tenant reporting.",
                  "type": "string"
                },
                "resource_id": {
                  "description": "Resource ID. Required for per-resource reporting.",
                  "type": "string"
                },
                "usage_type": {
                  "description": "A name of the usage. Required for per-resource reporting and per-tenant reporting by usage for some limited usages.\n\nProvided usage must represent a non-individual entity (f.e., `storage`, `compute_points`).\n\nThis field is ignored if `offering_item` is specified.",
                  "type": "string"
                },
                "offering_item": {
                  "description": "A name of the offering item. Required for per-tenant reporting by offering item.\n\nProvided offering item must be accountable.",
                  "type": "string"
                },
                "infra_id": {
                  "description": "Infrastructure component ID (UUID). Required for per-tenant reporting by offering item of type `infra`.",
                  "type": "string"
                },
                "usage_value": {
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "usagePutResult": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tenant_id": {
                  "description": "Tenant ID. Empty in case of per-resource reporting.",
                  "type": "string"
                },
                "resource_id": {
                  "description": "Resource ID. Empty in case of per-tenant reporting.",
                  "type": "string"
                },
                "usage_type": {
                  "description": "Usage name. Empty in case of per-tenant reporting.",
                  "type": "string"
                },
                "offering_item": {
                  "description": "Offering item name. Empty in case of per-resource reporting.",
                  "type": "string"
                },
                "infra_id": {
                  "description": "Infrastructure component ID. Empty in case of per-resource reporting.",
                  "type": "string"
                },
                "error": {
                  "$ref": "#/components/schemas/errorScheme"
                }
              }
            }
          }
        }
      },
      "tenantPut": {
        "example": {
          "name": "Renamed Tenant",
          "version": 1,
          "brand_id": 1111,
          "internal_tag": null,
          "customer_id": null,
          "parent_id": "c4878582-6e14-451e-9bda-3ff899b3f700",
          "kind": "folder",
          "language": "en",
          "contact": {
            "firstname": "New Name"
          }
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "name": {
            "description": "Human-readable name that will be displayed to the users.",
            "type": "string"
          },
          "customer_type": {
            "$ref": "#/components/schemas/customerType"
          },
          "parent_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "kind": {
            "$ref": "#/components/schemas/tenantKind"
          },
          "contact": {
            "$ref": "#/components/schemas/contactPut"
          },
          "enabled": {
            "description": "Flag, indicates whether the tenant is enabled or disabled.",
            "type": "boolean"
          },
          "customer_id": {
            "description": "ID from external system; for reporting purposes. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "version": {
            "description": "Tenant`s version.",
            "type": "integer"
          },
          "brand_id": {
            "description": "Deprecated field. Brand cannot be changed using this.",
            "nullable": true,
            "type": "integer"
          },
          "internal_tag": {
            "description": "Internal tag. This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "language": {
            "description": "Tenant`s preferred language.",
            "type": "string"
          },
          "default_idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "update_lock": {
            "type": "object",
            "required": [
              "enabled"
            ],
            "properties": {
              "enabled": {
                "description": "If true, updating the tenant via API is not allowed to anyone except for users of the tenant that owns the lock.",
                "type": "boolean"
              }
            }
          },
          "ancestral_access": {
            "description": "Indicates whether tenant's indirect ancestors have access to it.",
            "type": "boolean"
          },
          "external_operation_status": {
            "description": "External operation status.",
            "enum": [
              "no_operation",
              "deleting",
              "recovering"
            ],
            "type": "string"
          }
        }
      },
      "tenantOfferingItemsPut": {
        "example": {
          "value": {
            "offering_items": [
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "vms",
                "status": 1,
                "quota": {
                  "value": 10,
                  "overage": 10,
                  "version": 1486479690324
                }
              },
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "workstations",
                "status": 0
              },
              {
                "application_id": "a9fd8016-0e00-4ade-949e-6efe8672dac0",
                "name": "storage",
                "infra_id": "4a2cbe2d-b7ab-4b17-9cba-10c7eb55de01",
                "status": 1,
                "quota": {
                  "value": 10000,
                  "overage": 100000,
                  "version": 1486479690324
                }
              },
              {
                "application_id": "71739a04-177f-4603-84ad-54a326ba76e4",
                "name": "fc_storage",
                "infra_id": "4fff10c4-1378-4bfc-877d-b66a0f8805ed",
                "status": 1,
                "quota": {
                  "value": 100000,
                  "overage": 100000,
                  "version": 1486479690324
                }
              },
              {
                "application_id": "71739a04-177f-4603-84ad-54a326ba76e4",
                "name": "fc_seats",
                "status": 1
              }
            ],
            "check_usage": true
          }
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "offering_items"
        ],
        "properties": {
          "offering_items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "application_id",
                "name"
              ],
              "properties": {
                "application_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "name": {
                  "type": "string"
                },
                "status": {
                  "description": "Status of offering item: 1 - item turned on, 0 - off.",
                  "enum": [
                    0,
                    1
                  ],
                  "type": "integer"
                },
                "infra_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "quota": {
                  "$ref": "#/components/schemas/quota"
                }
              }
            }
          },
          "check_usage": {
            "description": "If true, check whether offering items being turned off have no usage.",
            "type": "boolean"
          }
        }
      },
      "oiPricingSettings": {
        "example": {
          "items": [
            {
              "application_id": "b037d1f6-25cf-4a9c-98f1-d3e41c100948",
              "name": "storage",
              "infra_id": "05348371-d95e-4cab-af2a-8e2cadafc30d",
              "price": "0.05",
              "version": 1497533157730
            },
            {
              "application_id": "b037d1f6-25cf-4a9c-98f1-d3e41c100948",
              "name": "servers",
              "price": "600",
              "version": 1497533157730
            }
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "application_id",
                "name",
                "price",
                "version"
              ],
              "properties": {
                "application_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "infra_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "name": {
                  "description": "Usage name (type).",
                  "type": "string"
                },
                "price": {
                  "description": "Price of offering item. Passed as a string to preserve decimal accuracy.",
                  "type": "string"
                },
                "version": {
                  "description": "Auto-incremented entity version.",
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "oiPricingSettingsPut": {
        "example": {
          "items": [
            {
              "application_id": "b037d1f6-25cf-4a9c-98f1-d3e41c100948",
              "name": "storage",
              "infra_id": "05348371-d95e-4cab-af2a-8e2cadafc30d",
              "price": "0.05",
              "version": 1497533157730
            },
            {
              "application_id": "b037d1f6-25cf-4a9c-98f1-d3e41c100948",
              "name": "servers",
              "price": "600",
              "version": 1497533157730
            },
            {
              "application_id": "b037d1f6-25cf-4a9c-98f1-d3e41c100948",
              "name": "vms",
              "price": "0",
              "version": 1497533157730
            }
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "application_id",
                "name",
                "price"
              ],
              "properties": {
                "application_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "infra_id": {
                  "$ref": "#/components/schemas/uuid"
                },
                "name": {
                  "description": "Usage name (type).",
                  "type": "string"
                },
                "price": {
                  "description": "Price of offering item. Passed as a string to preserve decimal accuracy.",
                  "type": "string"
                },
                "version": {
                  "description": "Auto-incremented entity version.",
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "editionSwitchWarnings": {
        "example": {
          "warnings": [
            "OldFeaturesBecomeUnavailable",
            "NewFeaturesBecomeAvailable",
            "SomePlansWillStopWorking",
            "AllDevicesWithBackupsPreserved",
            "UsageStatisticsWillMigrate",
            "AdvCyberProtectBecomeUnavailable"
          ]
        },
        "type": "object",
        "required": [
          "warnings"
        ],
        "properties": {
          "warnings": {
            "description": "Warning codes that should be displayed on edition switch.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "editionSwitchPut": {
        "example": {
          "target_edition": "disaster_recovery",
          "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "target_edition",
          "application_id"
        ],
        "properties": {
          "target_edition": {
            "description": "Target edition to switch to.",
            "type": "string"
          },
          "application_id": {
            "$ref": "#/components/schemas/uuid"
          }
        }
      },
      "registrationTokenPostV2": {
        "example": {
          "expires_in": 3600,
          "scopes": [
            "urn:acronis.com:tenant-id:734fe814-748a-41cb-8a94-60e18fb3c442:backup_agent_admin",
            "urn:acronis.com::policy_management:20435cc8-0b12-4b57-94c7-33afb28f0f34|10858a46-db9b-4725-aa60-fff6252841fd:apply_revoke"
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "expires_in",
          "scopes"
        ],
        "properties": {
          "expires_in": {
            "description": "Token expiration time in seconds. Should be less than or equal to one year.",
            "type": "integer"
          },
          "scopes": {
            "description": "Access scopes that are applied to the registered resource. The following access scope patterns are available:\n- `urn:acronis.com:tenant-id:{personal_tenant_id}:backup_agent_admin` - binds the resource to the user by personal tenant ID specified in `{personal_tenant_id}`.\n- `urn:acronis.com::policy_management:{tenant_id}|{policy_id}:apply_revoke` - applies a protection plan to a resource by policy ID specified in `{policy_id}` from a resource owner tenant specified in `{tenant_id}`.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "uuidList": {
        "example": {
          "items": [
            "aa4f8923-8950-4804-8827-c6d78388e5b6",
            "4eb7b320-48b4-4552-9bf8-f7482538da23"
          ]
        },
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid_4"
            }
          }
        }
      },
      "locationList": {
        "example": {
          "locations": [
            "d9fd4cc3-4309-40a2-bd79-88da24a1c99d",
            "7068976a-22c0-476e-ae3b-5f0469981ff1"
          ]
        },
        "type": "object",
        "properties": {
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/uuid"
            }
          }
        }
      },
      "usageList": {
        "example": {
          "value": {
            "items": [
              {
                "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                "name": "adv_vms",
                "edition": "advanced",
                "usage_name": "vms",
                "type": "count",
                "measurement_unit": "quantity",
                "range_start": "2017-06-01T00:00:00",
                "absolute_value": 800,
                "value": 800,
                "offering_item": {
                  "status": 1,
                  "quota": {
                    "value": 10,
                    "overage": 10,
                    "version": 1486479690324
                  }
                }
              },
              {
                "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                "name": "storage",
                "edition": "standard",
                "usage_name": "storage",
                "type": "infra",
                "measurement_unit": "bytes",
                "infra_id": "df476eec-c470-40b0-9b10-37223b7f4a2b",
                "range_start": "2017-06-22T00:00:00",
                "absolute_value": 800,
                "value": 800,
                "offering_item": {
                  "status": 1,
                  "quota": {
                    "value": 1000,
                    "overage": 2000,
                    "version": 1486479690324
                  }
                }
              },
              {
                "application_id": "c6ab7fb4-b461-4214-9257-86fbad8efb85",
                "name": "vm_storage",
                "edition": "standard",
                "usage_name": "vm_storage",
                "range_start": "2017-06-01T00:00:00",
                "type": "infra",
                "measurement_unit": "bytes",
                "absolute_value": 100000,
                "value": 100000
              }
            ]
          }
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/usageOutput"
            }
          }
        }
      },
      "tenantPricingSettings": {
        "example": {
          "version": 1497533157730,
          "mode": "production",
          "currency": "USD",
          "production_start_date": "2020-05-19T00:00:00"
        },
        "type": "object",
        "required": [
          "mode",
          "currency",
          "version",
          "production_start_date"
        ],
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/pricingMode"
          },
          "currency": {
            "description": "Currency of all offering item prices for this tenant. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/currency"
              }
            ]
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "production_start_date": {
            "description": "Production pricing mode start date (timestamp).",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          }
        }
      },
      "tenantPricingSettingsPut": {
        "example": {
          "version": 1497533157730,
          "mode": "production",
          "currency": "USD"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/pricingMode"
          },
          "currency": {
            "description": "Currency of all offering item prices for this tenant. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/currency"
              }
            ]
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          }
        }
      },
      "tenantBrandGetResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/brand"
          },
          {
            "$ref": "#/components/schemas/smtp_settings"
          }
        ],
        "example": {
          "account_server_url": "mc-cloud.acronis.com",
          "backup_console_url": "mc-cloud.acronis.com/bc",
          "color": "FFFFFF",
          "color_scheme": "default",
          "company_name": "acronis",
          "help_url": "api/ams/links/help",
          "hide_predefined": 1,
          "home_url": "www.acronis.com",
          "knowledgebase_url": "kb.acronis.com/errorcode/",
          "logotype": "2f8ad2e2-28f2-11e7-aad1-5ffe2ad47151",
          "mobile_app_android_download_url": "www.mobile.com/download",
          "mobile_app_ios_download_url": "www.mobile.com/download",
          "owns_custom_legal_docs": true,
          "white_labeled_agent": true,
          "platform_terms_url": "terms.acronis.com",
          "privacy_policy_url": "https://www.acronis.com/company/privacy.html",
          "reg_server_url": "https://rs.custom-cloud.acronis.com",
          "router_url": "cloud.acronis.com",
          "agent_gateway_url": "https://agents.custom-cloud.acronis.com",
          "service_name": "myservice",
          "smtp_encryption": "TLS",
          "smtp_override": 1,
          "smtp_password": "",
          "smtp_port": 465,
          "smtp_reply_address": "noreply@mycompany.com",
          "smtp_server": "smtp.mycompany.com",
          "smtp_user": "smtpuser",
          "support_phone": "+1 1111 1111111",
          "support_url": "support.acronis.com",
          "terms_url": "terms.acronis.com",
          "upsell_url": "www.partner.com/buy",
          "user_guide_url": "guide.acronis.com"
        },
        "type": "object"
      },
      "tenantBrandPutRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/brand"
          },
          {
            "$ref": "#/components/schemas/smtp_settings"
          }
        ],
        "example": {
          "account_server_url": "mc-cloud.acronis.com",
          "color": "FFFFFF",
          "color_scheme": "default",
          "company_name": "mycompany",
          "help_url": "help.acronis.com",
          "home_url": "www.baas.com",
          "knowledgebase_url": "kb.acronis.com/errorcode/",
          "logotype": "2f8ad2e2-28f2-11e7-aad1-5ffe2ad47151",
          "mobile_app_android_download_url": "www.mobile.com/download",
          "mobile_app_ios_download_url": "www.mobile.com/download",
          "owns_custom_legal_docs": false,
          "white_labeled_agent": false,
          "platform_terms_url": "terms.acronis.com",
          "privacy_policy_url": "https://www.acronis.com/company/privacy.html",
          "reg_server_url": "https://rs.custom-cloud.acronis.com",
          "router_url": "cloud.acronis.com",
          "agent_gateway_url": "https://agents.custom-cloud.acronis.com",
          "service_name": "myservice",
          "smtp_encryption": "TLS",
          "smtp_override": 1,
          "smtp_password": "**********",
          "smtp_port": 465,
          "smtp_reply_address": "noreply@mycompany.com",
          "smtp_server": "smtp.mycompany.com",
          "smtp_user": "smtpuser",
          "support_phone": "+1 1111 1111111",
          "support_url": "support.acronis.com",
          "terms_url": "terms.acronis.com",
          "upsell_url": "www.partner.com/buy",
          "user_guide_url": "guide.acronis.com"
        },
        "type": "object"
      },
      "mfaTenantStatusPut": {
        "example": {
          "enabled": true
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enabled"
        ],
        "properties": {
          "enabled": {
            "description": "Status of MFA for tenant.",
            "type": "boolean"
          }
        }
      },
      "mfaTenantStatus": {
        "example": {
          "mfa_status": "enabled",
          "users_count": 100,
          "users_with_totp_enabled_count": 20,
          "update_allowed": true
        },
        "type": "object",
        "required": [
          "mfa_status",
          "update_allowed",
          "users_count",
          "users_with_totp_enabled_count"
        ],
        "properties": {
          "mfa_status": {
            "description": "Status of MFA for tenant.",
            "enum": [
              "disabled",
              "disable_in_progress",
              "enabled"
            ],
            "type": "string"
          },
          "users": {
            "description": "Total number of active users in this tenant (including child folders or units of the same organization).",
            "type": "integer"
          },
          "users_with_totp_enabled": {
            "description": "Number of users in this tenant (including child folders or units of the same organization) with TOTP configured.",
            "type": "integer"
          },
          "update_allowed": {
            "description": "True if logged in user can change MFA status for this tenant.",
            "type": "boolean"
          },
          "users_count": {},
          "users_with_totp_enabled_count": {}
        }
      },
      "tenantPutIdpId": {
        "example": {
          "version": 1,
          "idp_id": "c4878582-6e14-451e-9bda-3ff899b3f700",
          "apply_to_children": true
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version",
          "idp_id",
          "apply_to_children"
        ],
        "properties": {
          "version": {
            "description": "Tenant`s version.",
            "type": "integer"
          },
          "idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "apply_to_children": {
            "description": "If True - new default identity provider ID will be set to tenant's children as well",
            "type": "boolean"
          }
        }
      },
      "userBatch": {
        "description": "Batch response for users. The structure of items depends on the `lod` query parameter: stamps, basic, or full (default).",
        "type": "object",
        "required": [
          "timestamp",
          "items"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/paging"
          },
          "timestamp": {
            "$ref": "#/components/schemas/item1"
          },
          "items": {
            "description": "Array of user objects. The fields returned depend on the `lod` query parameter.",
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "title": "User stamps schema (lod=stamps)",
                  "description": "User object with minimal fields returned when lod=stamps is specified.",
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "version",
                    "tenant_id",
                    "created_at",
                    "updated_at",
                    "deleted_at",
                    "access_policies",
                    "origin_id",
                    "origin_external_id",
                    "disable_after"
                  ],
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "version": {
                      "description": "Auto-incremented entity version.",
                      "type": "integer"
                    },
                    "tenant_id": {
                      "$ref": "#/components/schemas/uuid"
                    },
                    "created_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "updated_at": {
                      "$ref": "#/components/schemas/item1"
                    },
                    "deleted_at": {
                      "description": "Soft deletion timestamp.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    },
                    "access_policies": {
                      "description": "Will be returned with all user access policies if query param `with_access_policies` is provided.",
                      "type": "array",
                      "minItems": 0,
                      "items": {
                        "$ref": "#/components/schemas/items_1"
                      }
                    },
                    "origin_id": {
                      "description": "User's origin ID, for example, ID of a Cyber Application responsible for creating this user.",
                      "nullable": true,
                      "type": "string"
                    },
                    "origin_external_id": {
                      "description": "User's external origin ID.",
                      "nullable": true,
                      "type": "string"
                    },
                    "disable_after": {
                      "description": "Timestamp indicating when the user will be disabled.",
                      "nullable": true,
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/item1"
                        }
                      ]
                    }
                  }
                },
                {
                  "$ref": "#/components/schemas/userBasic"
                },
                {
                  "$ref": "#/components/schemas/item0"
                }
              ]
            }
          }
        }
      },
      "userPost": {
        "example": {
          "tenant_id": "0ef03214-6e47-4e50-87f2-a5955ba6095c",
          "login": "mylogin",
          "contact": {
            "email": "me@mysite.com",
            "address1": "1440 River Drive #100",
            "address2": "",
            "country": "USA",
            "state": "CA",
            "zipcode": "12345",
            "city": "Rivertown",
            "phone": "123456789",
            "firstname": "John",
            "lastname": "Doe"
          },
          "enabled": true,
          "origin_id": "pillr.mdr",
          "origin_external_id": "c66b1af2-2ac5-4764-8db6-97b054e7d27e",
          "disable_after": "2017-06-22T18:25:16",
          "language": "ru",
          "business_types": [
            "buyer"
          ],
          "notifications": [
            "maintenance",
            "quota",
            "reports",
            "backup_error",
            "backup_warning",
            "backup_info",
            "backup_daily_report",
            "backup_critical",
            "device_control_warning",
            "certificate_management_error",
            "certificate_management_warning",
            "certificate_management_info"
          ]
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "tenant_id"
        ],
        "properties": {
          "tenant_id": {
            "description": "ID of tenant this user belongs to.",
            "type": "string"
          },
          "login": {
            "description": "User's login.",
            "type": "string"
          },
          "external_id": {
            "description": "User's ID in external identity provider (e.g. SID in AD).",
            "type": "string"
          },
          "idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "contact": {
            "type": "object",
            "required": [
              "email"
            ],
            "properties": {
              "email": {
                "$ref": "#/components/schemas/email"
              },
              "address1": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "address2": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "country": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "state": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "city": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "zipcode": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "phone": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "firstname": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "lastname": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "title": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "website": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "industry": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "organization_size": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "aan": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "fax": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              },
              "language": {
                "description": "This field can have a null value.",
                "nullable": true,
                "type": "string"
              }
            }
          },
          "enabled": {
            "description": "Flag, indicates whether the user is enabled or disabled.",
            "type": "boolean"
          },
          "language": {
            "description": "Preferred locale.",
            "type": "string"
          },
          "business_types": {
            "$ref": "#/components/schemas/business_types"
          },
          "notifications": {
            "$ref": "#/components/schemas/userNotifications"
          },
          "use_existing_identity": {
            "description": "Use existing identity (user with same login already exists).",
            "type": "boolean"
          },
          "origin_id": {
            "description": "User's origin ID, for example, ID of a Cyber Application responsible for creating this user.",
            "type": "string"
          },
          "origin_external_id": {
            "description": "User's external origin ID.",
            "type": "string"
          },
          "disable_after": {
            "$ref": "#/components/schemas/item1"
          }
        }
      },
      "checkPasswordPost": {
        "example": {
          "password": "970C2D1A9869F18291D85BC389B33F0739496DE9"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "password"
        ],
        "properties": {
          "password": {
            "description": "Password (SHA-1 hash) to check.",
            "type": "string"
          }
        }
      },
      "checkPasswordPostResult": {
        "example": {
          "compromised": true
        },
        "type": "object",
        "required": [
          "compromised"
        ],
        "properties": {
          "compromised": {
            "description": "Flag that specifies whether the password was previously exposed in data breaches. True if the password was exposed; false otherwise.",
            "type": "boolean"
          }
        }
      },
      "userMe": {
        "title": "User me schema (lod=me)",
        "description": "User object returned for /users/me endpoint. Includes all full fields plus terms_accepted, login_totp_time, tenant_kind, tenant_pricing_model, brand_id.",
        "allOf": [
          {
            "$ref": "#/components/schemas/item0"
          },
          {
            "type": "object",
            "required": [
              "terms_accepted",
              "tenant_kind",
              "tenant_pricing_model",
              "brand_id"
            ],
            "properties": {
              "terms_accepted": {
                "description": "Flag that defines if this user has accepted EULA.",
                "type": "boolean"
              },
              "login_totp_time": {
                "description": "Timestamp of last TOTP login.",
                "nullable": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/item1"
                  }
                ]
              },
              "tenant_kind": {
                "$ref": "#/components/schemas/tenantKind"
              },
              "tenant_pricing_model": {
                "$ref": "#/components/schemas/pricingMode"
              },
              "brand_id": {
                "$ref": "#/components/schemas/uuid"
              }
            }
          }
        ],
        "example": {
          "id": "948efcf2-b740-4c40-bb2d-4e4a46adfd87",
          "version": 2,
          "tenant_id": "0ef03214-6e47-4e50-87f2-a5955ba6095c",
          "created_at": "2016-06-22T18:25:16",
          "updated_at": "2016-06-22T18:25:16",
          "deleted_at": null,
          "access_policies": [],
          "origin_id": "pillr.mdr",
          "origin_external_id": "c66b1af2-2ac5-4764-8db6-97b054e7d27e",
          "disable_after": "2017-06-22T18:25:16",
          "personal_tenant_id": "2f8ad2e2-28f2-11e7-aad1-5ffe2ad47151",
          "login": "mylogin",
          "enabled": true,
          "session_mfa_status": "passed_or_not_required",
          "delivery_channel": "email",
          "contact": {
            "id": "27f6f164-63dd-47df-b5b6-83a0fd117beb",
            "created_at": "2020-05-19T11:50:00",
            "updated_at": "2020-05-19T11:50:00",
            "types": [],
            "email": "me@mysite.com",
            "address1": "1440 River Drive #100",
            "address2": "",
            "country": "USA",
            "state": "CA",
            "zipcode": "12345",
            "city": "Rivertown",
            "phone": "123456789",
            "firstname": "John",
            "lastname": "Doe",
            "title": "",
            "website": "",
            "industry": "",
            "organization_size": "",
            "email_confirmed": false,
            "aan": "111111",
            "language": "en"
          },
          "activated": true,
          "language": "ru",
          "business_types": [],
          "notifications": [
            "maintenance",
            "quota",
            "reports",
            "backup_error",
            "backup_warning",
            "backup_info",
            "backup_daily_report",
            "backup_critical"
          ],
          "idp_id": "e6f73a28-ff2e-4728-8f78-49eb74b20fce",
          "external_id": "S-1-5-21-917267712-1342860078-1792151419-500",
          "mfa_status": "setup_required",
          "external_operation_status": null,
          "terms_accepted": true,
          "login_totp_time": null,
          "tenant_kind": "partner",
          "tenant_pricing_model": "trial",
          "brand_id": "a77b1af2-3ac5-576d-1db3-27b054e7d2aa"
        }
      },
      "userPut": {
        "example": {
          "contact": {
            "firstname": "John"
          },
          "notifications": [],
          "disable_after": "2017-06-22T18:25:16",
          "version": 2
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "version"
        ],
        "properties": {
          "login": {
            "description": "User's login.",
            "type": "string"
          },
          "external_id": {
            "description": "User's ID in external identity provider (e.g. SID in AD).",
            "type": "string"
          },
          "idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "contact": {
            "$ref": "#/components/schemas/contactPut"
          },
          "enabled": {
            "description": "Flag, indicates whether the user is enabled or disabled.",
            "type": "boolean"
          },
          "language": {
            "description": "Preferred locale.",
            "type": "string"
          },
          "notifications": {
            "$ref": "#/components/schemas/userNotifications"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "disable_after": {
            "$ref": "#/components/schemas/item1"
          }
        }
      },
      "accessPoliciesList": {
        "example": {
          "timestamp": "2016-06-22T18:25:16",
          "items": [
            {
              "id": "00000000-0000-0000-0000-000000000005",
              "version": 0,
              "trustee_id": "2a0402b8-3867-4578-8ebc-e874a2864e79",
              "trustee_type": "user",
              "issuer_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "tenant_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "role_id": "hci_admin",
              "created_at": "1970-01-01T00:00:00Z",
              "updated_at": "2022-03-22T21:45:47Z",
              "deleted_at": null,
              "resource_server_id": "53a2a450-8e4e-11e7-96dd-f45c89947331",
              "resource_namespace": "hci",
              "resource_path": "res1"
            },
            {
              "id": "00000000-0000-0000-0000-000000000004",
              "version": 0,
              "trustee_id": "2a0402b8-3867-4578-8ebc-e874a2864e79",
              "trustee_type": "user",
              "issuer_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "tenant_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "role_id": "notary_admin",
              "created_at": "1970-01-01T00:00:00Z",
              "updated_at": "2022-03-22T21:45:47Z",
              "deleted_at": null,
              "resource_server_id": "53a2a450-8e4e-11e7-96dd-f45c89947331",
              "resource_namespace": "notary",
              "resource_path": "res4/res5"
            },
            {
              "id": "00000000-0000-0000-0000-000000000002",
              "version": 0,
              "trustee_id": "2a0402b8-3867-4578-8ebc-e874a2864e79",
              "trustee_type": "user",
              "issuer_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "tenant_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "role_id": "pds_operator",
              "created_at": "1970-01-01T00:00:00Z",
              "updated_at": "2022-03-22T21:45:47Z",
              "deleted_at": null,
              "resource_server_id": "53a2a450-8e4e-11e7-96dd-f45c89947331",
              "resource_namespace": "physical_data_shipping",
              "resource_path": "res4/res5"
            },
            {
              "id": "00000000-0000-0000-0000-000000000003",
              "version": 0,
              "trustee_id": "2a0402b8-3867-4578-8ebc-e874a2864e79",
              "trustee_type": "user",
              "issuer_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "tenant_id": "b7028817-d180-44c1-ae3d-b99f4b3f844a",
              "role_id": "pds_support",
              "created_at": "1970-01-01T00:00:00Z",
              "updated_at": "2022-03-22T21:45:47Z",
              "deleted_at": null,
              "resource_server_id": "53a2a450-8e4e-11e7-96dd-f45c89947331",
              "resource_namespace": "physical_data_shipping",
              "resource_path": "res4/res5"
            }
          ]
        },
        "type": "object",
        "required": [
          "timestamp",
          "items"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/paging"
          },
          "timestamp": {
            "$ref": "#/components/schemas/item1"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "version",
                "created_at",
                "updated_at",
                "deleted_at",
                "trustee_id",
                "trustee_type",
                "issuer_id",
                "tenant_id",
                "role_id"
              ],
              "properties": {
                "id": {
                  "description": "Access policy unique identifier.",
                  "type": "string"
                },
                "version": {
                  "description": "Auto-incremented entity version.",
                  "type": "integer"
                },
                "created_at": {
                  "$ref": "#/components/schemas/item1"
                },
                "updated_at": {
                  "$ref": "#/components/schemas/item1"
                },
                "deleted_at": {
                  "description": "Soft deletion timestamp.",
                  "nullable": true,
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/item1"
                    }
                  ]
                },
                "trustee_id": {
                  "description": "Unique identifier of the Subject for whom access policy is granted.",
                  "type": "string"
                },
                "trustee_type": {
                  "description": "Type of the Subject for whom access policy is granted.",
                  "enum": [
                    "user",
                    "user_group",
                    "client"
                  ],
                  "type": "string"
                },
                "issuer_id": {
                  "description": "Issuer unique identifier.",
                  "type": "string"
                },
                "tenant_id": {
                  "description": "Tenant unique identifier.",
                  "type": "string"
                },
                "resource_server_id": {
                  "description": "Tenant unique identifier.",
                  "type": "string"
                },
                "resource_namespace": {
                  "description": "Resource namespace.",
                  "type": "string"
                },
                "resource_path": {
                  "description": "Resource path.",
                  "type": "string"
                },
                "role_id": {
                  "$ref": "#/components/schemas/userRole"
                }
              }
            }
          }
        }
      },
      "mfaUserStatusPut": {
        "example": {
          "enabled": true
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "enabled"
        ],
        "properties": {
          "enabled": {
            "description": "Status of MFA for user.",
            "type": "boolean"
          }
        }
      },
      "passwordPost": {
        "example": {
          "password": "testSECRETpassword123"
        },
        "type": "object",
        "additionalProperties": false,
        "required": [
          "password"
        ],
        "properties": {
          "password": {
            "description": "Password.",
            "type": "string"
          }
        }
      },
      "uuid": {
        "type": "string",
        "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
        "minLength": 36,
        "maxLength": 36
      },
      "applicationType": {
        "description": "A type of application.",
        "enum": [
          "backup",
          "files_cloud",
          "monitoring",
          "storage",
          "platform",
          "hci",
          "physical_data_shipping",
          "notary"
        ],
        "type": "string"
      },
      "item1": {
        "description": "RFC3339 Formatted date.",
        "type": "string",
        "pattern": "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?([\\+\\-]\\d{2}\\:\\d{2})?",
        "minLength": 19,
        "maxLength": 32
      },
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "created_at": {
            "description": "Date and time when contact was created.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "updated_at": {
            "description": "Last update timestamp, if contact has just been created - then is equal to `created_at`.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "types": {
            "type": "array",
            "minItems": 0,
            "uniqueItems": true,
            "items": {
              "enum": [
                "legal",
                "primary",
                "billing",
                "technical",
                "management",
                "company_billing"
              ],
              "type": "string"
            }
          },
          "email": {
            "$ref": "#/components/schemas/email"
          },
          "address1": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "address2": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "city": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "zipcode": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "firstname": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "lastname": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "title": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "website": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "industry": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "organization_size": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "email_confirmed": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "boolean"
          },
          "aan": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          }
        }
      },
      "items_1": {
        "type": "object",
        "required": [
          "id",
          "version",
          "created_at",
          "updated_at",
          "deleted_at",
          "trustee_id",
          "trustee_type",
          "issuer_id",
          "tenant_id",
          "role_id"
        ],
        "properties": {
          "id": {
            "description": "Access policy unique identifier.",
            "type": "string"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "trustee_id": {
            "description": "Unique identifier of the Subject for whom access policy is granted.",
            "type": "string"
          },
          "trustee_type": {
            "description": "Type of the Subject for whom access policy is granted.",
            "enum": [
              "user",
              "user_group",
              "client"
            ],
            "type": "string"
          },
          "issuer_id": {
            "description": "Issuer unique identifier.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Tenant unique identifier.",
            "type": "string"
          },
          "resource_server_id": {
            "description": "Tenant unique identifier.",
            "type": "string"
          },
          "resource_namespace": {
            "description": "Resource namespace.",
            "type": "string"
          },
          "resource_path": {
            "description": "Resource path.",
            "type": "string"
          },
          "role_id": {
            "$ref": "#/components/schemas/userRole"
          }
        }
      },
      "business_types": {
        "description": "Business types.",
        "type": "array",
        "items": {
          "enum": [
            "buyer"
          ],
          "type": "string"
        }
      },
      "userNotifications": {
        "description": "User notifications.",
        "type": "array",
        "items": {
          "enum": [
            "maintenance",
            "quota",
            "reports",
            "backup_error",
            "backup_warning",
            "backup_info",
            "backup_daily_report",
            "backup_critical",
            "device_control_warning",
            "certificate_management_error",
            "certificate_management_warning",
            "certificate_management_info"
          ],
          "type": "string"
        }
      },
      "tenantKind": {
        "description": "A tenant kind.",
        "enum": [
          "root",
          "partner",
          "folder",
          "customer",
          "unit"
        ],
        "type": "string"
      },
      "pricingMode": {
        "description": "Mode of tenant's pricing.",
        "enum": [
          "trial",
          "production",
          "suspended"
        ],
        "type": "string"
      },
      "link": {
        "description": "URL.",
        "type": "string",
        "pattern": "^[a-z0-9\\+]+:\\/\\/[^\\s\\/$.?#].[^\\s]*"
      },
      "infraCap": {
        "description": "Capability of infrastructure component.",
        "enum": [
          "backup",
          "disaster_recovery",
          "files_cloud",
          "vcd"
        ],
        "type": "string"
      },
      "backendType": {
        "nullable": true,
        "description": "Storage backend type.",
        "type": "string"
      },
      "document_version": {
        "description": "Formatted date: YYYY-MM-DD.",
        "type": "string",
        "pattern": "\\d{4}-\\d{2}-\\d{2}",
        "minLength": 10,
        "maxLength": 10
      },
      "paging": {
        "title": "Generic paging parameters schema",
        "type": "object",
        "properties": {
          "cursors": {
            "type": "object",
            "properties": {
              "after": {
                "type": "string"
              }
            }
          }
        }
      },
      "items_2": {
        "type": "object",
        "required": [
          "id",
          "created_at",
          "updated_at",
          "types",
          "email",
          "firstname",
          "lastname"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "created_at": {
            "description": "Date and time when contact was created.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "updated_at": {
            "description": "Last update timestamp, if contact has just been created - then is equal to `created_at`.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "tenant_id": {
            "description": "ID of tenant this contact belongs to.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "user_id": {
            "description": "ID of user this contact belongs to.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "types": {
            "type": "array",
            "minItems": 0,
            "uniqueItems": true,
            "items": {
              "enum": [
                "legal",
                "primary",
                "billing",
                "technical",
                "management",
                "company_billing"
              ],
              "type": "string"
            }
          },
          "email": {
            "$ref": "#/components/schemas/email"
          },
          "address1": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "address2": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "country": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "city": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "zipcode": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "firstname": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "lastname": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "title": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "website": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "industry": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "organization_size": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "email_confirmed": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "boolean"
          },
          "aan": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "fax": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "language": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "deleted_at": {
            "description": "Delete timestamp, if contact deleted, null otherwise",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "email_domain_type": {
            "description": "This field can have a null value.",
            "nullable": true,
            "enum": [
              "disposable",
              "public",
              "private"
            ],
            "type": "string"
          }
        }
      },
      "items_3": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "application_id",
          "name",
          "edition",
          "usage_name",
          "tenant_id",
          "status",
          "type",
          "measurement_unit"
        ],
        "properties": {
          "application_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "type": "string"
          },
          "edition": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "usage_name": {
            "type": "string"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "status": {
            "description": "Status of offering item: 1 - item turned on, 0 - off.",
            "enum": [
              0,
              1
            ],
            "type": "integer"
          },
          "locked": {
            "description": "If true, this item status cannot be changed.",
            "type": "boolean"
          },
          "quota": {
            "$ref": "#/components/schemas/quota"
          },
          "type": {
            "$ref": "#/components/schemas/offeringItemType"
          },
          "infra_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "measurement_unit": {
            "$ref": "#/components/schemas/measurementUnits"
          }
        }
      },
      "customerType": {
        "description": "A type of the customer.",
        "enum": [
          "default",
          "enterprise",
          "consumer",
          "small_office",
          "ti_unified"
        ],
        "type": "string"
      },
      "email": {
        "type": "string",
        "pattern": "^$|\\S+@\\S+"
      },
      "contactPut": {
        "example": {
          "tenant_id": "f313ecf6-9256-4afd-9d47-72e032ee81d0",
          "user_id": "1bfe361d-fcb8-43ff-8f43-9ecc29a08ea5",
          "types": [
            "legal",
            "primary",
            "billing",
            "technical",
            "management"
          ],
          "email": "owner@mysite.com",
          "address1": "1440 River Drive #100",
          "address2": "",
          "country": "USA",
          "state": "CA",
          "city": "Rivertown",
          "zipcode": "12345",
          "phone": "123456789",
          "firstname": "Company",
          "lastname": "Owner",
          "title": "Mr.",
          "website": "www.mysite.com",
          "industry": "IT",
          "organization_size": "50-100",
          "email_confirmed": true,
          "aan": "111111",
          "language": "en",
          "fax": "123 Example Street"
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "user_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "types": {
            "type": "array",
            "minItems": 1,
            "uniqueItems": true,
            "items": {
              "enum": [
                "legal",
                "primary",
                "billing",
                "technical",
                "management"
              ],
              "type": "string"
            }
          },
          "email": {
            "$ref": "#/components/schemas/email"
          },
          "address1": {
            "nullable": true,
            "type": "string"
          },
          "address2": {
            "nullable": true,
            "type": "string"
          },
          "country": {
            "nullable": true,
            "type": "string"
          },
          "state": {
            "nullable": true,
            "type": "string"
          },
          "city": {
            "nullable": true,
            "type": "string"
          },
          "zipcode": {
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "nullable": true,
            "type": "string"
          },
          "firstname": {
            "nullable": true,
            "type": "string"
          },
          "lastname": {
            "nullable": true,
            "type": "string"
          },
          "title": {
            "nullable": true,
            "type": "string"
          },
          "website": {
            "nullable": true,
            "type": "string"
          },
          "industry": {
            "nullable": true,
            "type": "string"
          },
          "organization_size": {
            "nullable": true,
            "type": "string"
          },
          "email_confirmed": {
            "nullable": true,
            "type": "boolean"
          },
          "aan": {
            "nullable": true,
            "type": "string"
          },
          "language": {
            "nullable": true,
            "type": "string"
          },
          "fax": {
            "nullable": true,
            "type": "string"
          }
        }
      },
      "usageOutput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "application_id",
          "name",
          "edition",
          "usage_name",
          "type",
          "measurement_unit",
          "range_start",
          "value"
        ],
        "properties": {
          "application_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "name": {
            "type": "string"
          },
          "edition": {
            "description": "This field can have a null value.",
            "nullable": true,
            "type": "string"
          },
          "usage_name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/offeringItemType"
          },
          "measurement_unit": {
            "$ref": "#/components/schemas/measurementUnits"
          },
          "infra_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "tenant_uuid": {
            "$ref": "#/components/schemas/uuid"
          },
          "tenant_id": {
            "type": "integer"
          },
          "range_start": {
            "$ref": "#/components/schemas/item1"
          },
          "absolute_value": {
            "type": "integer",
            "minimum": 0
          },
          "value": {
            "type": "integer",
            "minimum": 0
          },
          "offering_item": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "integer"
              },
              "quota": {
                "$ref": "#/components/schemas/quota"
              }
            }
          }
        }
      },
      "quota": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "value",
          "overage",
          "version"
        ],
        "properties": {
          "value": {
            "nullable": true,
            "type": "integer",
            "minimum": 0
          },
          "overage": {
            "nullable": true,
            "type": "integer",
            "minimum": 0
          },
          "version": {
            "description": "Version of the quota. Equals to 0 if `value` and `overage` are `null`. Otherwise, contains the version number.",
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "uuid_4": {
        "type": "string",
        "pattern": "[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}",
        "minLength": 36,
        "maxLength": 36
      },
      "currency": {
        "description": "Currency.",
        "enum": [
          "AUD",
          "BRL",
          "CAD",
          "EUR",
          "CNY",
          "GBP",
          "JPY",
          "KZT",
          "NZD",
          "RUB",
          "USD",
          "ZAR"
        ],
        "type": "string"
      },
      "brand": {
        "description": "Public brand schema.",
        "type": "object",
        "properties": {
          "support_phone": {
            "description": "Company support phone number.",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "account_server_url": {
            "description": "Link to account server.",
            "nullable": true,
            "type": "string"
          },
          "support_url": {
            "description": "Support page address.",
            "nullable": true,
            "type": "string"
          },
          "mobile_app_android_download_url": {
            "description": "Link for Android mobile app download.",
            "nullable": true,
            "type": "string"
          },
          "upsell_url": {
            "description": "Link for partner`s Buy page.",
            "nullable": true,
            "type": "string"
          },
          "backup_console_url": {
            "description": "Link to Backup Console.",
            "type": "string"
          },
          "terms_url": {
            "description": "Company terms and conditions page url.",
            "nullable": true,
            "type": "string"
          },
          "home_url": {
            "description": "Company web-site url.",
            "nullable": true,
            "type": "string"
          },
          "knowledgebase_url": {
            "description": "Knowledge base url.",
            "nullable": true,
            "type": "string"
          },
          "platform_terms_url": {
            "description": "Terms and conditions page for platform.",
            "nullable": true,
            "type": "string"
          },
          "user_guide_url": {
            "description": "User guide url.",
            "nullable": true,
            "type": "string"
          },
          "mobile_app_ios_download_url": {
            "description": "Link for iOS mobile app download.",
            "nullable": true,
            "type": "string"
          },
          "color": {
            "description": "Brand color in RGB.",
            "nullable": true,
            "type": "string"
          },
          "company_name": {
            "description": "Company name.",
            "nullable": true,
            "type": "string"
          },
          "color_scheme": {
            "description": "Color scheme identifier.",
            "type": "string"
          },
          "logotype": {
            "description": "Logotype id.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "service_name": {
            "description": "Name of the service.",
            "nullable": true,
            "type": "string"
          },
          "reg_server_url": {
            "description": "Registration server URL.",
            "nullable": true,
            "type": "string"
          },
          "router_url": {
            "description": "Link to Management Console.",
            "nullable": true,
            "type": "string"
          },
          "agent_gateway_url": {
            "description": "Agent gateway URL.",
            "nullable": true,
            "type": "string"
          },
          "help_url": {
            "description": "Online help url.",
            "nullable": true,
            "type": "string"
          },
          "privacy_policy_url": {
            "description": "Platform privacy policy.",
            "nullable": true,
            "type": "string"
          },
          "owns_custom_legal_docs": {
            "description": "Flag that decides if brand owns custom terms urls.",
            "type": "boolean"
          },
          "white_labeled_agent": {
            "description": "Acronis branded or white labeled agent.",
            "type": "boolean"
          }
        }
      },
      "smtp_settings": {
        "description": "SMTP settings schema.",
        "type": "object",
        "properties": {
          "smtp_override": {
            "description": "Binary flag that defines if default SMTP-server is overridden.",
            "type": "integer"
          },
          "smtp_reply_address": {
            "description": "SMTP reply address.",
            "type": "string"
          },
          "smtp_server": {
            "description": "SMTP server address.",
            "type": "string"
          },
          "smtp_port": {
            "description": "SMTP server port.",
            "type": "integer"
          },
          "smtp_user": {
            "description": "SMTP serer user.",
            "type": "string"
          },
          "smtp_password": {
            "description": "SMTP user password. Hidden.",
            "type": "string"
          },
          "smtp_encryption": {
            "description": "SMTP server encryption algorithm.",
            "enum": [
              "",
              "SSL",
              "TLS"
            ],
            "type": "string"
          }
        }
      },
      "userBasic": {
        "title": "User basic schema (lod=basic)",
        "description": "User object with basic fields returned when lod=basic is specified. Includes all stamps fields plus login, personal_tenant_id, enabled, session_mfa_status, delivery_channel.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "version",
          "tenant_id",
          "created_at",
          "updated_at",
          "deleted_at",
          "access_policies",
          "origin_id",
          "origin_external_id",
          "disable_after",
          "personal_tenant_id",
          "login",
          "enabled"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "access_policies": {
            "description": "Will be returned with all user access policies if query param `with_access_policies` is provided.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/items_1"
            }
          },
          "origin_id": {
            "description": "User's origin ID, for example, ID of a Cyber Application responsible for creating this user.",
            "nullable": true,
            "type": "string"
          },
          "origin_external_id": {
            "description": "User's external origin ID.",
            "nullable": true,
            "type": "string"
          },
          "disable_after": {
            "description": "Timestamp indicating when the user will be disabled.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "personal_tenant_id": {
            "description": "UUID of user's personal tenant. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "login": {
            "description": "User's login.",
            "type": "string"
          },
          "enabled": {
            "description": "Flag, indicates whether the user is enabled or disabled.",
            "type": "boolean"
          },
          "session_mfa_status": {
            "description": "Multi-factor authentication status of the user session.",
            "enum": [
              "passed_or_not_required",
              "passed_as_trusted",
              "required"
            ],
            "type": "string"
          },
          "delivery_channel": {
            "description": "Activation delivery channel for the user.",
            "nullable": true,
            "enum": [
              "email",
              "none"
            ],
            "type": "string"
          }
        }
      },
      "item0": {
        "title": "User full schema (lod=full)",
        "description": "User object with all fields returned when lod=full is specified (default).",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "id",
          "version",
          "tenant_id",
          "created_at",
          "updated_at",
          "deleted_at",
          "access_policies",
          "origin_id",
          "origin_external_id",
          "disable_after",
          "personal_tenant_id",
          "login",
          "enabled",
          "contact",
          "activated",
          "language",
          "business_types",
          "notifications"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/uuid"
          },
          "version": {
            "description": "Auto-incremented entity version.",
            "type": "integer"
          },
          "tenant_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "created_at": {
            "$ref": "#/components/schemas/item1"
          },
          "updated_at": {
            "$ref": "#/components/schemas/item1"
          },
          "deleted_at": {
            "description": "Soft deletion timestamp.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "access_policies": {
            "description": "Will be returned with all user access policies if query param `with_access_policies` is provided.",
            "type": "array",
            "minItems": 0,
            "items": {
              "$ref": "#/components/schemas/items_1"
            }
          },
          "origin_id": {
            "description": "User's origin ID, for example, ID of a Cyber Application responsible for creating this user.",
            "nullable": true,
            "type": "string"
          },
          "origin_external_id": {
            "description": "User's external origin ID.",
            "nullable": true,
            "type": "string"
          },
          "disable_after": {
            "description": "Timestamp indicating when the user will be disabled.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/item1"
              }
            ]
          },
          "personal_tenant_id": {
            "description": "UUID of user's personal tenant. This field can have a null value.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/uuid"
              }
            ]
          },
          "login": {
            "description": "User's login.",
            "type": "string"
          },
          "enabled": {
            "description": "Flag, indicates whether the user is enabled or disabled.",
            "type": "boolean"
          },
          "contact": {
            "$ref": "#/components/schemas/items"
          },
          "activated": {
            "description": "Flag, indicates whether the user has been activated or not.",
            "type": "boolean"
          },
          "language": {
            "description": "Preferred locale.",
            "type": "string"
          },
          "business_types": {
            "$ref": "#/components/schemas/business_types"
          },
          "notifications": {
            "$ref": "#/components/schemas/userNotifications"
          },
          "idp_id": {
            "$ref": "#/components/schemas/uuid"
          },
          "external_id": {
            "description": "User's ID in external identity provider (e.g. SID in AD).",
            "type": "string"
          },
          "mfa_status": {
            "description": "Multi-factor authentication status of the user.",
            "enum": [
              "disabled",
              "forcibly_disabled",
              "setup_required",
              "enabled"
            ],
            "type": "string"
          },
          "external_operation_status": {
            "description": "Indicates if some external operation in progress for this user (his personal tenant).",
            "nullable": true,
            "enum": [
              "deleting",
              "recovering"
            ],
            "type": "string"
          }
        }
      },
      "userRole": {
        "description": "Name of the user role.",
        "enum": [
          "root_admin",
          "partner_admin",
          "company_admin",
          "unit_admin",
          "readonly_admin",
          "protection_admin",
          "protection_ro_admin",
          "restore_operator",
          "backup_user",
          "sync_share_admin",
          "sync_share_user",
          "sync_share_guest",
          "pds_operator",
          "pds_support",
          "notary_admin",
          "notary_user",
          "hci_admin",
          "omnivoice_admin",
          "omnivoice_user",
          "greathorn_admin",
          "greathorn_user",
          "greathorn_analyst",
          "greathorn_client_manager"
        ],
        "type": "string"
      },
      "offeringItemType": {
        "enum": [
          "count",
          "feature",
          "infra"
        ],
        "type": "string"
      },
      "measurementUnits": {
        "description": "Measurement unit in which offering item's usages are kept.",
        "enum": [
          "bytes",
          "quantity",
          "seconds",
          "n/a"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      },
      "oauth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "scopes": {
              "urn:acronis.com::account-server::root_admin": "",
              "urn:acronis.com::account-server::partner_admin": "",
              "urn:acronis.com::account-server::company_admin": "",
              "urn:acronis.com::account-server::unit_admin": "",
              "urn:acronis.com::account-server::readonly_admin": "",
              "urn:acronis.com::account-server::tenant_admin": "",
              "urn:acronis.com::account-server::tenant_viewer": "",
              "urn:acronis.com::account-server::user_admin": "",
              "urn:acronis.com::account-server::replication_manager": "",
              "urn:acronis.com::account-server::managed_clients_admin": "",
              "urn:acronis.com::account-server::oauth2_client_admin": "",
              "urn:acronis.com::account-server::legal_docs_signer": "",
              "urn:acronis.com::accounts::email_token_requester": "",
              "urn:acronis.com::accounts::licensing_admin": "",
              "urn:acronis.com::accounts::usage_reporter": "",
              "urn:acronis.com::backup::backup_user": "",
              "urn:acronis.com::backup::protection_admin": "",
              "urn:acronis.com::files_cloud::sync_share_user": "",
              "urn:acronis.com::acep::consumer": "",
              "urn:acronis.com::account-server::security_groups_admin": "",
              "urn:acronis.com::account-server::security_groups_viewer": "",
              "urn:acronis.com::account-server::token_introspector": "",
              "urn:acronis.com::account-server::custom_role_manager": "",
              "urn:acronis.com::account-server::custom_role_viewer": ""
            },
            "tokenUrl": "/api/2/idp/token"
          },
          "authorizationCode": {
            "scopes": {
              "urn:acronis.com::account-server::root_admin": "",
              "urn:acronis.com::account-server::partner_admin": "",
              "urn:acronis.com::account-server::company_admin": "",
              "urn:acronis.com::account-server::unit_admin": "",
              "urn:acronis.com::account-server::readonly_admin": "",
              "urn:acronis.com::account-server::tenant_admin": "",
              "urn:acronis.com::account-server::tenant_viewer": "",
              "urn:acronis.com::account-server::user_admin": "",
              "urn:acronis.com::account-server::replication_manager": "",
              "urn:acronis.com::account-server::managed_clients_admin": "",
              "urn:acronis.com::account-server::oauth2_client_admin": "",
              "urn:acronis.com::account-server::legal_docs_signer": "",
              "urn:acronis.com::accounts::email_token_requester": "",
              "urn:acronis.com::accounts::licensing_admin": "",
              "urn:acronis.com::accounts::usage_reporter": "",
              "urn:acronis.com::backup::backup_user": "",
              "urn:acronis.com::backup::protection_admin": "",
              "urn:acronis.com::files_cloud::sync_share_user": "",
              "urn:acronis.com::acep::consumer": "",
              "urn:acronis.com::account-server::security_groups_admin": "",
              "urn:acronis.com::account-server::security_groups_viewer": "",
              "urn:acronis.com::account-server::token_introspector": "",
              "urn:acronis.com::account-server::custom_role_manager": "",
              "urn:acronis.com::account-server::custom_role_viewer": ""
            },
            "authorizationUrl": "/api/2/idp/authorize",
            "tokenUrl": "/api/2/idp/token"
          },
          "password": {
            "scopes": {
              "urn:acronis.com::account-server::root_admin": "",
              "urn:acronis.com::account-server::partner_admin": "",
              "urn:acronis.com::account-server::company_admin": "",
              "urn:acronis.com::account-server::unit_admin": "",
              "urn:acronis.com::account-server::readonly_admin": "",
              "urn:acronis.com::account-server::tenant_admin": "",
              "urn:acronis.com::account-server::tenant_viewer": "",
              "urn:acronis.com::account-server::user_admin": "",
              "urn:acronis.com::account-server::replication_manager": "",
              "urn:acronis.com::account-server::managed_clients_admin": "",
              "urn:acronis.com::account-server::oauth2_client_admin": "",
              "urn:acronis.com::account-server::legal_docs_signer": "",
              "urn:acronis.com::accounts::email_token_requester": "",
              "urn:acronis.com::accounts::licensing_admin": "",
              "urn:acronis.com::accounts::usage_reporter": "",
              "urn:acronis.com::backup::backup_user": "",
              "urn:acronis.com::backup::protection_admin": "",
              "urn:acronis.com::files_cloud::sync_share_user": "",
              "urn:acronis.com::acep::consumer": "",
              "urn:acronis.com::account-server::security_groups_admin": "",
              "urn:acronis.com::account-server::security_groups_viewer": "",
              "urn:acronis.com::account-server::token_introspector": "",
              "urn:acronis.com::account-server::custom_role_manager": "",
              "urn:acronis.com::account-server::custom_role_viewer": ""
            },
            "tokenUrl": "/api/2/idp/token"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://dev-cloud.acronis.com/api/2",
      "variables": {}
    }
  ]
}