{
  "openapi": "3.0.0",
  "info": {
    "title": "Resource and Policy Management API",
    "version": "v4"
  },
  "paths": {
    "/policy_management/v4/policies": {
      "get": {
        "operationId": "Fetch a list of policies",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "types",
            "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "enabled",
            "description": "Filter only enabled or disabled policies.",
            "in": "query",
            "schema": {
              "description": "Filter only enabled or disabled policies.",
              "type": "boolean"
            }
          },
          {
            "name": "policy_id",
            "description": "Filter by one or more policy IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_selection_id",
            "description": "Fetch all policies that are in the policy selection.",
            "in": "query",
            "schema": {
              "description": "Fetch all policies that are in the policy selection.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "parent_ids",
            "description": "Filter by one or more parent IDs. Maximum 100 items. If this filter is set, policies with matching 'parent policies' will be returned. If this filter is used but no actual values are provided in the query (e.g. `parent_ids=`), only 'root policies' (with empty 'parent policies') will be returned.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more parent IDs. Maximum 100 items. If this filter is set, policies with matching 'parent policies' will be returned. If this filter is used but no actual values are provided in the query (e.g. `parent_ids=`), only 'root policies' (with empty 'parent policies') will be returned.",
              "type": "string"
            }
          },
          {
            "name": "search",
            "description": "Search for policies by name, type and tags using an SQL-like syntax.",
            "in": "query",
            "schema": {
              "description": "Search for policies by name, type and tags using an SQL-like syntax.",
              "type": "string"
            }
          },
          {
            "name": "applicable_to_context_id",
            "description": "Fetch all policies that are applicable to the resources with the given IDs. Maximum 100. Mutually exclusive with the `include_applied_context` filter.",
            "in": "query",
            "schema": {
              "description": "Fetch all policies that are applicable to the resources with the given IDs. Maximum 100. Mutually exclusive with the `include_applied_context` filter.",
              "type": "string"
            }
          },
          {
            "name": "applicable_to_context_selection_id",
            "description": "Fetch all policies that are applicable to the resources in the context selection. Mutually exclusive with the `include_applied_context` filter. If at least one sub-policy except the root policy is applicable, the overall composite policy is applicable",
            "in": "query",
            "schema": {
              "description": "Fetch all policies that are applicable to the resources in the context selection. Mutually exclusive with the `include_applied_context` filter. If at least one sub-policy except the root policy is applicable, the overall composite policy is applicable",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "dependency_namespace",
            "description": "Fetch all policies by dependency domain or namespace",
            "in": "query",
            "schema": {
              "description": "Fetch all policies by dependency domain or namespace",
              "type": "string"
            }
          },
          {
            "name": "dependency_path",
            "description": "Fetch all policies by dependency identifier. Must be set if `dependency_namespace` is set",
            "in": "query",
            "schema": {
              "description": "Fetch all policies by dependency identifier. Must be set if `dependency_namespace` is set",
              "type": "string"
            }
          },
          {
            "name": "os_type",
            "description": "Fetch all policies that would be applicable to a resource with the given os type. Mutually exclusive with the `applicable_to_context_id` and `applicable_to_context_selection_id` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all policies that would be applicable to a resource with the given os type. Mutually exclusive with the `applicable_to_context_id` and `applicable_to_context_selection_id` filters.",
              "enum": [
                "Windows9x",
                "Windows",
                "MacOSX",
                "Linux"
              ],
              "type": "string"
            }
          },
          {
            "name": "include_settings",
            "description": "Include policy settings.",
            "in": "query",
            "schema": {
              "description": "Include policy settings.",
              "type": "boolean"
            }
          },
          {
            "name": "include_settings_constraints",
            "description": "Include settings constraints. Settings constraints will not be included if `include_settings` is not `true`. By default, `include_settings_constraints` is considered `true` when `include_settings` is `true`.",
            "in": "query",
            "schema": {
              "description": "Include settings constraints. Settings constraints will not be included if `include_settings` is not `true`. By default, `include_settings_constraints` is considered `true` when `include_settings` is `true`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_applied_context",
            "description": "Include the context that the policies are applied to. Populates the `context` field of the `BoundCompositePolicy` objects. Mutually exclusive with `applicable_to_context_id` and `applicable_to_context_selection_id` filters.",
            "in": "query",
            "schema": {
              "description": "Include the context that the policies are applied to. Populates the `context` field of the `BoundCompositePolicy` objects. Mutually exclusive with `applicable_to_context_id` and `applicable_to_context_selection_id` filters.",
              "type": "boolean"
            }
          },
          {
            "name": "templates_only",
            "description": "Filter out non-template policies.",
            "in": "query",
            "schema": {
              "description": "Filter out non-template policies.",
              "type": "boolean"
            }
          },
          {
            "name": "include_templates",
            "description": "Include template policies.",
            "in": "query",
            "schema": {
              "description": "Include template policies.",
              "type": "boolean"
            }
          },
          {
            "name": "include_temporaries",
            "description": "Include temporary policies.",
            "in": "query",
            "schema": {
              "description": "Include temporary policies.",
              "type": "boolean"
            }
          },
          {
            "name": "favorite",
            "description": "Show only the favorite policies",
            "in": "query",
            "schema": {
              "description": "Show only the favorite policies",
              "type": "boolean"
            }
          },
          {
            "name": "default",
            "description": "Show only the default policy",
            "in": "query",
            "schema": {
              "description": "Show only the default policy",
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "description": "Number of element in the page.",
            "in": "query",
            "schema": {
              "description": "Number of element in the page.",
              "type": "integer"
            }
          },
          {
            "name": "before",
            "description": "Cursor before the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor before the current page.",
              "type": "string"
            }
          },
          {
            "name": "after",
            "description": "Cursor after the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor after the current page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BoundCompositePolicyPagedList"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      },
      "post": {
        "operationId": "Create a policy",
        "description": "Creates a policy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "The `EntityVersion` fields as well as `tags`, `run_args` and `settings_constraints`\nfields are not accepted (since they are calculable).\n\nClient-generated IDs are allowed for policies. If client-generated ID is provided for root\npolicy, then client-generated IDs should be provided for all other policies within requested composite.\n",
                "type": "object",
                "required": [
                  "subject"
                ],
                "properties": {
                  "subject": {
                    "$ref": "#/components/schemas/BoundCompositePolicy"
                  },
                  "ignore_policy_and_tenant_ids": {
                    "description": "Use the exported policy for import as a new one (in the same or different tenant)\nimmediately, without any additional processing by the client.\n\nIf true, then client-generated policy IDs will be ignored and will be generated by a server.\nPolicy tenant IDs will be ignored as well and set to a tenant defined by the `override_tenant_id`\nparameter or deduced according to the `ScopedByContextTenant` trait.\n\nIf false, then:\n\n1. Provided client-generated IDs should be globally unique and will be used as policy IDs to create\nor update;\n\n1. If root policy with provided client-generated ID already exists, then all other policies within\nthe requested composite should exist as well and upsert semantics will be used for all policies;\n\n1. If root policy with provided client-generated ID already exists but belongs to a tenant different\nfrom the one defined by `override_tenant_id` parameter or deduced according to the `ScopedByContextTenant`\ntrait, then request will fail with `AccessDeniedError` (policy movement between tenants is not supported).\n\nUseful in import-after-export case.\n",
                    "type": "boolean"
                  },
                  "override_tenant_id": {
                    "description": "Enable import into tenant different from the one used for export. Useful in import-after-export case.",
                    "type": "string"
                  },
                  "ensure_applications": {
                    "description": "Create and revoke applications for the processed policy according to a given context.",
                    "default": true,
                    "type": "boolean"
                  },
                  "disable_applications_on_conflict": {
                    "description": "On update of the existing policy, automatically switch `application.enabled` to false in case of application conflict conditions (which otherwise fail the request).",
                    "type": "boolean"
                  },
                  "os_type": {
                    "description": "Save only the policies that would be supported for a resource with the given os type. All unsupported policies are removed from the composite policy instead of just being disabled.",
                    "enum": [
                      "Windows9x",
                      "Windows",
                      "MacOSX",
                      "Linux"
                    ],
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The policy creation or update was successful. If there are warning issues, they will be included in the response. If there are critical or error issues, the server response will contain error code `422`. See the description of the response with code `422`.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "result": {
                      "description": "A list of resulting policies in the `id@type` format.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EntityTypeAndID"
                      }
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the policy creation or update.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "Delete policies",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "description": "Filter by one or more policy IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_selection_id",
            "description": "Filter by policies that are in the policy selection.",
            "in": "query",
            "schema": {
              "description": "Filter by policies that are in the policy selection.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "",
            "content": {}
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the policy deletion",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/policies/favorite": {
      "patch": {
        "operationId": "Modify policies favorite order and properties",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Contains an array of policy ids, their favorite order and properties. Used to update the favorite order in bulk.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PolicyIDAndOrder"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "",
            "content": {}
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/policies/{policy_id}": {
      "get": {
        "operationId": "Fetch a policy",
        "parameters": [
          {
            "name": "full_composite",
            "description": "If `{policy_id}` is a composite policy root, then all composite policies will be returned. If `{policy_id}` is a non-root policy - just one corresponding policy object will be returned.",
            "in": "query",
            "schema": {
              "description": "If `{policy_id}` is a composite policy root, then all composite policies will be returned. If `{policy_id}` is a non-root policy - just one corresponding policy object will be returned.",
              "type": "boolean"
            }
          },
          {
            "name": "include_settings",
            "description": "Include policy settings.",
            "in": "query",
            "schema": {
              "description": "Include policy settings.",
              "type": "boolean"
            }
          },
          {
            "name": "include_applied_context",
            "description": "Include the context that the policy is applied to. Populates the `context` field of the `BoundCompositePolicy` object.",
            "in": "query",
            "schema": {
              "description": "Include the context that the policy is applied to. Populates the `context` field of the `BoundCompositePolicy` object.",
              "type": "boolean"
            }
          },
          {
            "name": "links_and_issues",
            "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
            "in": "query",
            "schema": {
              "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
              "enum": [
                "embed_brief",
                "embed_detailed"
              ],
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BoundCompositePolicy"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "Delete a policy",
        "parameters": [
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "",
            "content": {}
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the policy deletion",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      },
      "patch": {
        "operationId": "Update a policy",
        "description": "Updates a policy.",
        "parameters": [
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Only the following fields can be updated:\n- `name`\n- `comment`\n- `settings`\n- `enabled`\n- `default`\n- `favorite`\n- `favorite_order`\n\nThe client must consider the following semantics:\n\n- The values of the updatable fields will be replaced.\n- For the `settings` field (incl. sub-objects), values of existing fields will be replaced and new fields will be added.\n- Fields cannot be removed.\n- If updatable field is of array type, its patch format may also follow the `ArrayPatch` type.\n\nIf `{policy_id}` is a composite policy root, then multiple policy objects within the policy composite\nare accepted. If `{policy_id}` is a non-root policy - just single corresponding policy object is accepted.\n",
                "type": "object",
                "required": [
                  "subject"
                ],
                "properties": {
                  "subject": {
                    "$ref": "#/components/schemas/BoundCompositePolicy"
                  },
                  "ensure_applications": {
                    "description": "Create and revoke applications for the processed policy according to a given context.",
                    "default": true,
                    "type": "boolean"
                  },
                  "disable_applications_on_conflict": {
                    "description": "Automatically switch `application.enabled` to false in case of application conflict conditions (which otherwise fail the request).",
                    "type": "boolean"
                  },
                  "skip_ensure_total_protect": {
                    "description": "Skips the process of ensuring it is a Total Protect Policy",
                    "default": false,
                    "type": "boolean"
                  },
                  "default": {
                    "description": "Set/Unset the policy as default",
                    "type": "boolean"
                  },
                  "favorite": {
                    "description": "Set/Unset the policy as favorite",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The patch was applied to the policy with warning issues.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "The patch was successfully applied to the policy without any issues.",
            "content": {}
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the patch.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts": {
      "post": {
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Either 'new' or 'edit' objects should be filled",
                "type": "object",
                "properties": {
                  "new": {
                    "type": "object",
                    "required": [
                      "policy"
                    ],
                    "properties": {
                      "policy": {
                        "description": "Root policy type is the very minimum required to create a draft, other accepted fields are the same as in policy creation endpoint",
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Policy"
                        }
                      },
                      "context": {
                        "description": "Either explicit or anonymous selection of resources",
                        "type": "object",
                        "properties": {
                          "_issues": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/Issue_1"
                            }
                          },
                          "id": {
                            "$ref": "#/components/schemas/InternalID"
                          },
                          "_links": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/Link"
                            }
                          },
                          "_link_ids": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/Action"
                            }
                          },
                          "items": {
                            "type": "array",
                            "maxItems": 100,
                            "items": {
                              "$ref": "#/components/schemas/InternalID"
                            }
                          },
                          "tenant_id": {
                            "type": "string"
                          }
                        }
                      },
                      "os_type": {
                        "description": "Create a draft with only the policies that would be supported for a resource with the given os type. All unsupported policies are removed from the draft's composite policy instead of just being disabled.",
                        "enum": [
                          "Windows9x",
                          "Windows",
                          "MacOSX",
                          "Linux"
                        ],
                        "type": "string"
                      }
                    }
                  },
                  "edit": {
                    "type": "object",
                    "required": [
                      "policy_id"
                    ],
                    "properties": {
                      "policy_id": {
                        "description": "ID of existing composite policy root. If policy has applications, then the draft context is filled from them",
                        "type": "string",
                        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                      },
                      "clone": {
                        "description": "Should the composite policy be updated or should another one be created on draft commit. If 'clone'==false, the policy will be snapshotted preserving its ID into draft's policy; all linked policies will be snapshotted as well in the same way. If 'clone'==true, the policy will be snapshotted into draft's policy but with a new ID generated; all linked policies will be snapshotted as well in the same way",
                        "type": "boolean"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully created, possibly having non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft creation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}": {
      "get": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      },
      "delete": {
        "description": "Cancel draft",
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "If successfully committed or cancelled the draft",
            "content": {}
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/state": {
      "put": {
        "description": "Commit or cancel draft",
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "$ref": "#/components/schemas/DraftState"
                  },
                  "accepted_default_name": {
                    "description": "Non-empty if the user accepted the default generated name (i.e. did not change it explicitly)",
                    "type": "string"
                  },
                  "disable_applications_on_conflict": {
                    "description": "On draft commit, automatically switch application.enabled to 'false' in case of application conflict conditions (which otherwise block the draft commit). This flag affects all draft context resources causing application conflict, and is a more convenient and automatic way to get conflicting applications disabled instead of using /disabled_applications_context",
                    "type": "boolean"
                  },
                  "create_new_policy_and_move_context": {
                    "description": "Non-empty in edit case only and contains either explicit or anonymous selection of resources. The original policy settings will not be changed by draft on commit, the resources will be revoked from the original policy, a new policy will be created by draft policy settings and the resources will be applied to the new",
                    "type": "object",
                    "properties": {
                      "_issues": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Issue_1"
                        }
                      },
                      "id": {
                        "$ref": "#/components/schemas/InternalID"
                      },
                      "_links": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Link"
                        }
                      },
                      "_link_ids": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Action"
                        }
                      },
                      "items": {
                        "type": "array",
                        "maxItems": 100,
                        "items": {
                          "$ref": "#/components/schemas/InternalID"
                        }
                      },
                      "tenant_id": {
                        "type": "string"
                      }
                    }
                  },
                  "new_policy_name": {
                    "description": "Non-empty in case of non-empty 'createNewPolicyAndMoveContext' and defines a created new policy name",
                    "type": "string"
                  },
                  "save_as_template": {
                    "description": "Save the policy as a template",
                    "type": "boolean"
                  },
                  "save_as_temporary": {
                    "description": "Automatically policy deletion after seconds from 'ttl' been expired. This field no make sense if 'ttl' was not set",
                    "type": "boolean"
                  },
                  "ttl": {
                    "description": "Time in seconds to keep temporary policy",
                    "type": "integer"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully committed, but with warning severity issues",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "The draft was successfully committed or cancelled",
            "content": {}
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the draft commit",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/name": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/context": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "description": "Either explicit or anonymous selection of resources. Changing context may affect any policy within the policy composite. Thus full draft is returned on context change",
                    "type": "object",
                    "properties": {
                      "_issues": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Issue_1"
                        }
                      },
                      "id": {
                        "$ref": "#/components/schemas/InternalID"
                      },
                      "_links": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Link"
                        }
                      },
                      "_link_ids": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Action"
                        }
                      },
                      "items": {
                        "type": "array",
                        "maxItems": 100,
                        "items": {
                          "$ref": "#/components/schemas/InternalID"
                        }
                      },
                      "tenant_id": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/enabled_policies": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "id",
                        "value"
                      ],
                      "properties": {
                        "id": {
                          "$ref": "#/components/schemas/InternalID_2"
                        },
                        "value": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/disabled_applications_context": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/InternalID_2"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies": {
      "post": {
        "description": "Dynamically add / delete policy to / from the policy draft composite or update of a specific policy within the policy draft composite. Each operation may affect any linked (downstream) policies within the composite - thus full draft is returned",
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Policy_3"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}": {
      "delete": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}/enabled": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}/name": {
      "put": {
        "description": "Changes the {policy_id} name.",
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}/type": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}/comment": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/drafts/{draft_id}/policies/{policy_id}/settings": {
      "put": {
        "parameters": [
          {
            "name": "draft_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "patch"
                ],
                "properties": {
                  "patch": {
                    "description": "Update settings, possibly providing a partial set of fields. Value replace or add field semantics is assumed; no remove field semantics; if a field is of array type, its patch format may also follow ArrayPatch type",
                    "anyOf": [
                      {
                        "type": "object"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The draft was successfully updated and may have non-critical issues. Critical issues will cause 422, see below",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Draft"
                }
              }
            }
          },
          "400": {
            "description": "Malformed-request-like errors",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical issues (link='') blocked the draft update",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/applications": {
      "post": {
        "operationId": "Create an application",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "policy_id"
                ],
                "properties": {
                  "policy_id": {
                    "description": "An ID of a root policy of a `CompositePolicy` type. If root policy is a template, a copy of this policy will be created and `context` will be applied to the copied policy.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                  },
                  "context": {
                    "description": "Either explicit or anonymous selection of resources. Context selection items are applied in single transaction after validation. A separate application is created for each context selection item. For policy that does not require context, application does not require the context as well.",
                    "type": "object",
                    "properties": {
                      "_issues": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Issue_1"
                        }
                      },
                      "id": {
                        "$ref": "#/components/schemas/InternalID"
                      },
                      "_links": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Link"
                        }
                      },
                      "_link_ids": {
                        "type": "array",
                        "items": {
                          "$ref": "#/components/schemas/Action"
                        }
                      },
                      "items": {
                        "type": "array",
                        "maxItems": 100,
                        "items": {
                          "$ref": "#/components/schemas/InternalID"
                        }
                      },
                      "tenant_id": {
                        "type": "string"
                      }
                    }
                  },
                  "disable_on_conflict": {
                    "description": "Automatically switch `application.enabled` to false in case of application conflict conditions.",
                    "type": "boolean"
                  },
                  "accepted_default_name": {
                    "description": "The parameter sets the name of the copied policy. Required if provided root policy is a template.",
                    "type": "string"
                  },
                  "precheck_disabled": {
                    "description": "Skip precheck of issues before creation of applications, allowing applying of partially compatible composite policies. The default value is true.",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The policy application was created with warning issues.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "The policy application was successfully created without any issues.",
            "content": {}
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Persistence race.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain"
                  ],
                  "properties": {
                    "code": {
                      "description": "Error ID or code, unique in the domain.",
                      "enum": [
                        "DataConflictError"
                      ],
                      "type": "string"
                    },
                    "context": {
                      "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                      "type": "object"
                    },
                    "domain": {
                      "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                      "enum": [
                        "General"
                      ],
                      "type": "string"
                    },
                    "message": {
                      "description": "Human-readable message, describing the error.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Critical or error issues (link='') blocked the policy application.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      },
      "get": {
        "operationId": "Fetch a list of applications",
        "description": "Fetches a list of applications depending on provided filtering parameters.",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "description": "Filter by one or more agent IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more agent IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "context_id",
            "description": "Filter by one or more context IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more context IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "context_selection_id",
            "description": "Fetch all applications applied to the resources in the context selection.",
            "in": "query",
            "schema": {
              "description": "Fetch all applications applied to the resources in the context selection.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "policy_id",
            "description": "Filter by one or more policy IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_selection_id",
            "description": "Fetch all applications of the policies in the policy selection.",
            "in": "query",
            "schema": {
              "description": "Fetch all applications of the policies in the policy selection.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "policy_type",
            "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "include_temporaries",
            "description": "Include applications of temporary policies.",
            "in": "query",
            "schema": {
              "description": "Include applications of temporary policies.",
              "type": "boolean"
            }
          },
          {
            "name": "context_type",
            "description": "Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "deployment_state",
            "description": "Filter by one or more deployment states. Items are of type `DeploymentState`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more deployment states. Items are of type `DeploymentState`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "execution_state",
            "description": "Filter by one or more execution states. Items are of type `RunningState`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more execution states. Items are of type `RunningState`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "status",
            "description": "Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "issue_types",
            "description": "Filter by one or more issue types. Items are of type `IssueType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more issue types. Items are of type `IssueType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "enabled_only",
            "description": "Only return applications that are enabled.",
            "in": "query",
            "schema": {
              "description": "Only return applications that are enabled.",
              "type": "boolean"
            }
          },
          {
            "name": "direct_only",
            "description": "For policy assuming application in resources context, return only direct applications of policy to resources, i.e., having only `context.id` in the `origin_contexts` array. For policy assuming application without context, the application is considered as direct.",
            "in": "query",
            "schema": {
              "description": "For policy assuming application in resources context, return only direct applications of policy to resources, i.e., having only `context.id` in the `origin_contexts` array. For policy assuming application without context, the application is considered as direct.",
              "type": "boolean"
            }
          },
          {
            "name": "empty_link_only",
            "description": "Return only applications that have at least one issue with empty `link`.",
            "in": "query",
            "schema": {
              "description": "Return only applications that have at least one issue with empty `link`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_multiple_applications_conflict",
            "description": "Include the `multiple_applications_conflict` field in application's `ApplicationStatus`.",
            "in": "query",
            "schema": {
              "description": "Include the `multiple_applications_conflict` field in application's `ApplicationStatus`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_validation_issues",
            "description": "Include the `validation_issues` field in application's `ApplicationStatus`.",
            "in": "query",
            "schema": {
              "description": "Include the `validation_issues` field in application's `ApplicationStatus`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_deployment_errors",
            "description": "Include the `deployment_errors` field in application's `DeploymentStatus`.",
            "in": "query",
            "schema": {
              "description": "Include the `deployment_errors` field in application's `DeploymentStatus`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_running_blockers",
            "description": "Include the `running_blockers` field in application's `RunningStatus`.",
            "in": "query",
            "schema": {
              "description": "Include the `running_blockers` field in application's `RunningStatus`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_status_events",
            "description": "Include the `status_events` field in application's `ApplicationStatus`.",
            "in": "query",
            "schema": {
              "description": "Include the `status_events` field in application's `ApplicationStatus`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_deleted",
            "description": "Include deleted applications.",
            "in": "query",
            "schema": {
              "description": "Include deleted applications.",
              "type": "boolean"
            }
          },
          {
            "name": "links_and_issues",
            "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
            "in": "query",
            "schema": {
              "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
              "enum": [
                "embed_brief",
                "embed_detailed"
              ],
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of element in the page.",
            "in": "query",
            "schema": {
              "description": "Number of element in the page.",
              "type": "integer"
            }
          },
          {
            "name": "before",
            "description": "Cursor before the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor before the current page.",
              "type": "string"
            }
          },
          {
            "name": "after",
            "description": "Cursor after the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor after the current page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationPagedList"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "Revoke applications",
        "description": "Revokes application of specific policy on specific context or multiple application. For multiple applications case, any critical, error or warning issues will be reported per application in the `issues` field of the response with code `200`.",
        "parameters": [
          {
            "name": "context_id",
            "description": "Delete applications by one or more context IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Delete applications by one or more context IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "context_selection_id",
            "description": "Delete all applications for the resources in the context selection with the given ID.",
            "in": "query",
            "schema": {
              "description": "Delete all applications for the resources in the context selection with the given ID.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "policy_id",
            "description": "Delete applications by one or more policy IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Delete applications by one or more policy IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_selection_id",
            "description": "Delete all applications for the policies in the policy selection with the given ID.",
            "in": "query",
            "schema": {
              "description": "Delete all applications for the policies in the policy selection with the given ID.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The application was revoked with issues.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "204": {
            "description": "The application was successfully revoked without any issues.",
            "content": {}
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/applications/issues/statistics": {
      "get": {
        "operationId": "Fetch applications' issue statistics",
        "description": "Fetches statistics for each issue occurred with applications.",
        "parameters": [
          {
            "name": "policy_id",
            "description": "Filter by one or more policy IDs. Maximum 30 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy IDs. Maximum 30 items.",
              "type": "string"
            }
          },
          {
            "name": "context_id",
            "description": "Filter by one or more resource IDs. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource IDs. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "links_and_issues",
            "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
            "in": "query",
            "schema": {
              "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
              "enum": [
                "embed_brief",
                "embed_detailed"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Set of key-value pairs where issue type is key and number of affected applications is value. Issue is added in the list if number of applications with this issue is greater than 0.",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KeyValuePair"
                  }
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/applications/run": {
      "put": {
        "operationId": "Start policy execution",
        "description": "Starts execution of a policy.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "state"
                ],
                "properties": {
                  "state": {
                    "$ref": "#/components/schemas/RunningState"
                  },
                  "policy_id": {
                    "description": "Policy must have one or more applications. Mutually exclusive with `settings`.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                  },
                  "arg": {
                    "type": "string"
                  },
                  "context_ids": {
                    "description": "A set of resources within `policy_id` applications. Should be not set if policy type does not assume application in resource context. May be not set if policy type assumes application in resource context and the policy execution needs to run on ALL resources.",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/InternalID_2"
                    }
                  },
                  "context_selection_id": {
                    "description": "A set of resources within `policy_id` applications. Should be not set if policy type does not assume application in resource context. May be not set if policy type assumes application in resource context and the policy execution needs to run on ALL resources.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                  },
                  "policy_type": {
                    "description": "Specifies the policy type of the provided settings. Not required if execution is without `settings`.",
                    "type": "string"
                  },
                  "settings": {
                    "description": "The settings for a temporary policy to be run. Mutually exclusive with `policy_id`.",
                    "anyOf": [
                      {
                        "type": "object"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      },
                      {
                        "type": "boolean"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted for asynchronous run invocation.",
            "content": {}
          },
          "204": {
            "description": "Completed synchronously.",
            "content": {}
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_manager::admin"
            ]
          }
        ]
      }
    },
    "/policy_management/v4/policy_statuses": {
      "get": {
        "operationId": "Fetch application statuses by policy",
        "description": "Fetches a list of applications grouped by provided policy. Policies constituting the\nsame `CompositePolicy` are considered as single logical item for filtering, sorting and paging.\n",
        "parameters": [
          {
            "name": "context_id",
            "description": "Filter by one or more resource IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "join_not_applied",
            "description": "Include statuses for policies that have no applications.",
            "in": "query",
            "schema": {
              "description": "Include statuses for policies that have no applications.",
              "default": true,
              "type": "boolean"
            }
          },
          {
            "name": "status",
            "description": "Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more statuses. Items are of type `ExecutionStatus`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "search",
            "description": "TODO",
            "in": "query",
            "schema": {
              "description": "TODO",
              "type": "string"
            }
          },
          {
            "name": "parent_id",
            "description": "Filter by one or more parent IDs. Maximum 100 items. If this filter is set, parent policies (i.e., root policies) will be excluded from the response.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more parent IDs. Maximum 100 items. If this filter is set, parent policies (i.e., root policies) will be excluded from the response.",
              "type": "string"
            }
          },
          {
            "name": "policy_type",
            "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy types. Items are of type `PolicyType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_id",
            "description": "Filter by one or more policy IDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more policy IDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "policy_selection_id",
            "description": "Filter by policies that are in the policy selection.",
            "in": "query",
            "schema": {
              "description": "Filter by policies that are in the policy selection.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "created_at",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_validation_issues",
            "description": "Include application context's `validation_issues`.",
            "in": "query",
            "schema": {
              "description": "Include application context's `validation_issues`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_aggregate_status",
            "description": "If true, application's `aggregate` status values will be returned in place of self `ApplicationStatus` values.",
            "in": "query",
            "schema": {
              "description": "If true, application's `aggregate` status values will be returned in place of self `ApplicationStatus` values.",
              "type": "boolean"
            }
          },
          {
            "name": "order",
            "description": "Defines sorting by root applications' orderable items. Only one orderable is\nallowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or\n`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).\n\nAvailable orderable items:\n\n- `created_at`\n- `updated_at`\n- `policy_type`\n- `policy_name`\n- `policy_tenant_name`\n- `total_number_of_resources`\n- `number_of_resources_by_status`\n- `favorite`\n\nNote that `number_of_resources_by_status` is equivalent to \"order by number_of_resources_by_status_critical,\nnumber_of_resources_by_status_error, number_of_resources_by_status_warning,\nnumber_of_resources_by_status_ok,\nnumber_of_resources_by_status_running,\nnumber_of_resources_by_status_interaction_required\"\n",
            "in": "query",
            "schema": {
              "description": "Defines sorting by root applications' orderable items. Only one orderable is\nallowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or\n`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).\n\nAvailable orderable items:\n\n- `created_at`\n- `updated_at`\n- `policy_type`\n- `policy_name`\n- `policy_tenant_name`\n- `total_number_of_resources`\n- `number_of_resources_by_status`\n- `favorite`\n\nNote that `number_of_resources_by_status` is equivalent to \"order by number_of_resources_by_status_critical,\nnumber_of_resources_by_status_error, number_of_resources_by_status_warning,\nnumber_of_resources_by_status_ok,\nnumber_of_resources_by_status_running,\nnumber_of_resources_by_status_interaction_required\"\n",
              "type": "string"
            }
          },
          {
            "name": "links_and_issues",
            "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
            "in": "query",
            "schema": {
              "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
              "enum": [
                "embed_brief",
                "embed_detailed"
              ],
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of element in the page.",
            "in": "query",
            "schema": {
              "description": "Number of element in the page.",
              "type": "integer"
            }
          },
          {
            "name": "before",
            "description": "Cursor before the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor before the current page.",
              "type": "string"
            }
          },
          {
            "name": "after",
            "description": "Cursor after the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor after the current page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompositePolicyStatusPagedList"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::policy_management::read"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resources": {
      "get": {
        "operationId": "Fetch a list of all resources",
        "parameters": [
          {
            "name": "include_attributes",
            "description": "If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
            "in": "query",
            "schema": {
              "description": "If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_attribute_namespaces",
            "description": "Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
            "in": "query",
            "schema": {
              "description": "Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of element in the page.",
            "in": "query",
            "schema": {
              "description": "Number of element in the page.",
              "type": "integer"
            }
          },
          {
            "name": "before",
            "description": "Cursor before the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor before the current page.",
              "type": "string"
            }
          },
          {
            "name": "after",
            "description": "Cursor after the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor after the current page.",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "parent_id",
            "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "has_member_id",
            "description": "Filter by one or more member UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more member UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "type",
            "description": "Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "search",
            "description": "Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html",
            "in": "query",
            "schema": {
              "description": "Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html",
              "type": "string"
            }
          },
          {
            "name": "not_applied_only",
            "description": "Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.",
              "type": "boolean"
            }
          },
          {
            "name": "applicable_to_policy_id",
            "description": "Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.",
              "type": "string"
            }
          },
          {
            "name": "applicable_to_policy_selection_id",
            "description": "Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "applied_only",
            "description": "Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.",
              "type": "boolean"
            }
          },
          {
            "name": "applied_to_policy_id",
            "description": "Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
              "type": "string"
            }
          },
          {
            "name": "applied_to_policy_selection_id",
            "description": "Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "include_deleted",
            "description": "If true, includes deleted resources.",
            "in": "query",
            "schema": {
              "description": "If true, includes deleted resources.",
              "type": "boolean"
            }
          },
          {
            "name": "allowed_actions",
            "description": "Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section",
              "type": "string"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_group",
            "description": "If true, includes only groups. If false, includes only resources, without groups.",
            "in": "query",
            "schema": {
              "description": "If true, includes only groups. If false, includes only resources, without groups.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcePagedList"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "Delete resources",
        "parameters": [
          {
            "name": "resource_tag",
            "description": "Filter by resource tag",
            "in": "query",
            "schema": {
              "description": "Filter by resource tag",
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "description": "Filter by one or more resource IDs. The IDs are of type `ScopedExternalID`. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource IDs. The IDs are of type `ScopedExternalID`. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "description": "Filter by one agent UUID. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one agent UUID. Maximum 100 items.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Resources deleted successfully.",
            "content": {}
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "422": {
            "description": "There are issues that blocked the resource creation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      },
      "post": {
        "operationId": "Create a resource",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Client-generated ID is not allowed here, for the already existing ID upsert semantics will be used.",
                "type": "object",
                "required": [
                  "name",
                  "parent_group_ids",
                  "cti",
                  "type"
                ],
                "properties": {
                  "is_auto_created": {
                    "description": "Automatic creation happens in workload merge and cluster-like use case, when `aggregates_detection_query` is defined per-workload type. Otherwise, workload is explicitly created - at the time of metadata provisioning or at runtime by a vendor agent or connector, or at runtime by a cusomter.",
                    "type": "boolean"
                  },
                  "group_condition": {
                    "description": "Per-workload children selection query, if the workload is a dynamic group.",
                    "type": "string"
                  },
                  "_issues": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Issue_1"
                    }
                  },
                  "agent_id": {
                    "type": "string"
                  },
                  "external_id": {
                    "description": "ID from original external system.",
                    "type": "string"
                  },
                  "aspects": {
                    "description": "Calculatable field, representing all aspects of the aggregate (i.e. all aspect workloads with same `aggregate_id` value).",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Resource"
                    }
                  },
                  "created_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "name": {
                    "type": "string"
                  },
                  "allowed_member_types": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ResourceType"
                    }
                  },
                  "id": {
                    "$ref": "#/components/schemas/InternalID"
                  },
                  "updated_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "user_defined_name": {
                    "type": "string"
                  },
                  "aggregation_status": {
                    "description": "Aggregation / split status.",
                    "enum": [
                      "NOT_AGGREGATED",
                      "MERGED_AUTOMATICALLY",
                      "MERGED_MANUALLY",
                      "SPLIT_MANUALLY"
                    ],
                    "type": "string"
                  },
                  "attributes": {
                    "description": "Available base namespaces listed in the `ResourceAttributeNamespace` type definition.",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/NamedKeyValueSet"
                    }
                  },
                  "client_id": {
                    "description": "client ID of an agent or other subject, that manages and accesses the aspect. In case when a workload is managed by multiple agents, there should be multiple workload aspect instances, each aspect instance referencing different client ID of a corresponding agent, of same or different agent type.",
                    "type": "string"
                  },
                  "tag": {
                    "description": "Any user-defined string value, the resources can further be filtered by it",
                    "type": "string"
                  },
                  "parent_group_ids": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/InternalID_2"
                    }
                  },
                  "aggregate_id": {
                    "description": "Reference to workload aggregate.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                  },
                  "settings_schema": {
                    "$ref": "#/components/schemas/SchemaVersion"
                  },
                  "allowed_actions": {
                    "description": "Actions, allowed for the workload.",
                    "type": "array",
                    "items": {
                      "description": "ID used in Cyber Application to uniquely identify an entity either type or instance.\n\nGeneric format - cti.<ctx>[~<ctx>]*[~(<ctx>|<uuid>)]\n\n<ctx> - <vendor>.<application>.<name>.v<major>.<minor>\n<vendor> - vendor's short code (max 50 characters)\n<application> - application's short code (max 50 characters)\n<name> - entity's name (max 128 characters), may include `.` and `_` to be used for structuring\nv<major>.<minor> - entity's version\n\nBetter regex pattern (for advanced regex processors)\n  ^cti\\.(?'ctx'[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_.]{1,127}\\.v[\\d]+\\.[\\d]+)(~(?&ctx))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$\n",
                      "x-cti.reference": "cti.a.p.wm.action.v0.1",
                      "type": "string",
                      "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
                      "maxLength": 1024
                    }
                  },
                  "is_static": {
                    "description": "Is the workload a customer created static group.",
                    "type": "boolean"
                  },
                  "agent_cluster_id": {
                    "type": "string"
                  },
                  "cti": {
                    "description": "The specific workload type.",
                    "type": "string",
                    "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
                    "maxLength": 1024
                  },
                  "deleted_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "_links": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Link"
                    }
                  },
                  "type": {
                    "$ref": "#/components/schemas/ResourceType"
                  },
                  "tenant_id": {
                    "type": "string"
                  },
                  "is_customer_managed": {
                    "description": "Workload is managed if it's created at the time of vendor metadata provisioning, or at runtime by a vendor agent or connector. Otherwise it's managed at runtime by a cusomter (e.g. dynamic and static groups).",
                    "type": "boolean"
                  },
                  "_link_ids": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Action"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Resource posted successfully.",
            "content": {}
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "422": {
            "description": "There are issues that blocked the resource creation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_manager::admin"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resources/batch": {
      "post": {
        "operationId": "Post multiple resources in one request from a single agent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Resource_4"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Resources posted successfully.",
            "content": {}
          },
          "400": {
            "description": "Malformed request errors.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "422": {
            "description": "There are issues that blocked the resource creation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "issues"
                  ],
                  "properties": {
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_manager::admin"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resources/count": {
      "get": {
        "operationId": "Fetch a count of all resources that match filter parameters",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "parent_id",
            "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "has_member_id",
            "description": "Filter by one or more member UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more member UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "type",
            "description": "Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource types. Items are of type `ResourceType` or `cti.CTI` (for workloads derived from `cti.a.p.wm.workload.v1.0`). Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "search",
            "description": "Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html",
            "in": "query",
            "schema": {
              "description": "Search for resources by type and tags using an SQL-like syntax. See https://www.acronis.com/en-us/support/documentation/CyberProtectionService/index.html#operators-dynamic-groups.html",
              "type": "string"
            }
          },
          {
            "name": "not_applied_only",
            "description": "Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have no applied policies. Mutually exclusive with `not_applied_only` and `applied...` filters. Redundant if `applicable_to_policy_id` or `applicable_to_policy_selection_id` are also specified.",
              "type": "boolean"
            }
          },
          {
            "name": "applicable_to_policy_id",
            "description": "Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applicable to the policies with the given IDs. The IDs are of type `InternalID`. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applied...` filters.",
              "type": "string"
            }
          },
          {
            "name": "applicable_to_policy_selection_id",
            "description": "Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applicable to the policies in the policy selection. Mutually exclusive with `applied...` filters.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "applied_only",
            "description": "Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have applied policies. Mutually exclusive with `not_applied_only` and `applicable...` filters. Redundant if `applied_to_policy_id` or `applied_to_policy_selection_id` are also specified.",
              "type": "boolean"
            }
          },
          {
            "name": "applied_to_policy_id",
            "description": "Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that are applied to the policies with the given UUIDs. Maximum 100 items. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
              "type": "string"
            }
          },
          {
            "name": "applied_to_policy_selection_id",
            "description": "Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
            "in": "query",
            "schema": {
              "description": "Fetch all resources applied to the policies in the selection with the given id. Mutually exclusive with `not_applied_only` and `applicable...` filters.",
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "include_deleted",
            "description": "If true, includes deleted resources.",
            "in": "query",
            "schema": {
              "description": "If true, includes deleted resources.",
              "type": "boolean"
            }
          },
          {
            "name": "allowed_actions",
            "description": "Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section",
            "in": "query",
            "schema": {
              "description": "Fetch all resources that have matching allowed_actions. Note that you probably would also want to set links_and_issues to get actions in _links or _linkIds. List of possible actions is listed in Actions enum in common.raml, resource management section",
              "type": "string"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_group",
            "description": "If true, includes only groups. If false, includes only resources, without groups.",
            "in": "query",
            "schema": {
              "description": "If true, includes only groups. If false, includes only resources, without groups.",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "count"
                  ],
                  "properties": {
                    "count": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequestError"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resources/{resource_internal_or_external_id}": {
      "get": {
        "operationId": "Fetch a resource by ID",
        "parameters": [
          {
            "name": "include_attributes",
            "description": "If true, includes resource's attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
            "in": "query",
            "schema": {
              "description": "If true, includes resource's attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_attribute_namespaces",
            "description": "Includes resource's attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
            "in": "query",
            "schema": {
              "description": "Includes resource's attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
              "type": "string"
            }
          },
          {
            "name": "links_and_issues",
            "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
            "in": "query",
            "schema": {
              "description": "Request to calculate and return links and / or constraints on them. If `embed_brief` is requested - only non-constrained ('available') links should be returned (in `LinksAndIssues._linkIDs` array). If `embed_detailed` is requested - both links (non-constrained and constrained) and their constraint descriptions should be returned (in `LinksAndIssues._links` and `LinksAndIssues._issues` arrays).",
              "enum": [
                "embed_brief",
                "embed_detailed"
              ],
              "type": "string"
            }
          },
          {
            "name": "resource_internal_or_external_id",
            "required": true,
            "in": "path",
            "schema": {
              "$ref": "#/components/schemas/InternalOrExternalID"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Resource_4"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resources/{resource_internal_or_external_id}/attributes": {
      "get": {
        "operationId": "Fetch a list of resource's attributes",
        "description": "Fetches a list of resource's attributes from all namespaces.",
        "parameters": [
          {
            "name": "resource_internal_or_external_id",
            "required": true,
            "in": "path",
            "schema": {
              "$ref": "#/components/schemas/InternalOrExternalID"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "items"
                  ],
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/NamedKeyValueSet_5"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      }
    },
    "/resource_management/v4/resource_statuses": {
      "get": {
        "operationId": "Fetch the protection status of resources",
        "parameters": [
          {
            "name": "tenant_id",
            "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more tenant IDs or UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "agent_id",
            "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more agent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "parent_id",
            "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more parent UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "has_member_id",
            "description": "Filter by one or more member UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more member UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "type",
            "description": "Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource types. Items are of type `ResourceType`. Maximum 10 items.",
              "type": "string"
            }
          },
          {
            "name": "resource_id",
            "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
            "in": "query",
            "schema": {
              "description": "Filter by one or more resource UUIDs. Maximum 100 items.",
              "type": "string"
            }
          },
          {
            "name": "selection_id",
            "description": "Filter by one or more selection",
            "in": "query",
            "schema": {
              "description": "Filter by one or more selection",
              "type": "string"
            }
          },
          {
            "name": "search",
            "description": "Search for resources by type and tags using an SQL-like syntax.",
            "in": "query",
            "schema": {
              "description": "Search for resources by type and tags using an SQL-like syntax.",
              "type": "string"
            }
          },
          {
            "name": "include_deleted",
            "description": "If true, includes deleted resources.",
            "in": "query",
            "schema": {
              "description": "If true, includes deleted resources.",
              "type": "boolean"
            }
          },
          {
            "name": "include_attributes",
            "description": "If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
            "in": "query",
            "schema": {
              "description": "If true, includes resources' attributes in the response. Mutually exclusive with `include_attribute_namespaces`.",
              "type": "boolean"
            }
          },
          {
            "name": "include_attribute_namespaces",
            "description": "Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
            "in": "query",
            "schema": {
              "description": "Includes resources' attributes from specific namespaces. Mutually exclusive with `include_attributes`.",
              "type": "string"
            }
          },
          {
            "name": "updated_at",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "description": "Defines sorting by root applications' orderable items. Only one orderable is\nallowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or\n`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).\n\nAvailable orderable items:\n\n- `is_group`\n- `asc(updated_at)`\n",
            "in": "query",
            "schema": {
              "description": "Defines sorting by root applications' orderable items. Only one orderable is\nallowed. The format is `sorting_mode(orderable)` (where `sorting_mode` is `asc` or\n`desc`) or just `orderable` (with `sorting_mode` defaulted to `asc`).\n\nAvailable orderable items:\n\n- `is_group`\n- `asc(updated_at)`\n",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of element in the page.",
            "in": "query",
            "schema": {
              "description": "Number of element in the page.",
              "type": "integer"
            }
          },
          {
            "name": "before",
            "description": "Cursor before the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor before the current page.",
              "type": "string"
            }
          },
          {
            "name": "after",
            "description": "Cursor after the current page.",
            "in": "query",
            "schema": {
              "description": "Cursor after the current page.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceStatusPageList"
                }
              }
            }
          },
          "401": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/UnauthorizedRequestError"
                    },
                    {
                      "$ref": "#/components/schemas/AuthenticationTimeoutError"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessDeniedError"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth2": [
              "urn:acronis.com::resource_management::read"
            ]
          }
        ]
      }
    }
  },
  "x-roles": [
    {
      "name": "public",
      "id": "1",
      "description": "public role",
      "x-tags": [
        "public"
      ]
    },
    {
      "name": "private",
      "id": "2",
      "description": "private role",
      "x-tags": [
        "private"
      ]
    }
  ],
  "components": {
    "schemas": {
      "BoundCompositePolicyPagedList": {
        "type": "object",
        "required": [
          "paging",
          "items",
          "timestamp"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Page"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BoundCompositePolicy"
            }
          },
          "timestamp": {
            "description": "Server-side timestamp of query start.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BadRequestError": {
        "description": "Request is malformed.",
        "example": {
          "domain": "General",
          "code": "BadRequestError"
        },
        "type": "object",
        "required": [
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "BadRequestError"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "General"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "UnauthorizedRequestError": {
        "description": "Authorization failed.",
        "example": {
          "domain": "Access",
          "code": "UnauthorizedRequest"
        },
        "type": "object",
        "required": [
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "UnauthorizedRequest"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "Access"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "AuthenticationTimeoutError": {
        "description": "Access token is already expired or invalid.",
        "example": {
          "domain": "Access",
          "code": "AuthenticationTimeout"
        },
        "type": "object",
        "required": [
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "AuthenticationTimeout"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "Access"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "AccessDeniedError": {
        "description": "Access was denied.",
        "example": {
          "domain": "Access",
          "code": "AccessDeniedError",
          "context": {
            "scope": "urn:acronis.com::policy_management:1234567890:read urn:acronis.com::policy_management:0987654321:read",
            "required_scope": "urn:acronis.com::script_management:1234567890:reviewer"
          }
        },
        "type": "object",
        "required": [
          "context",
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object",
            "required": [
              "scope",
              "required_scope"
            ],
            "properties": {
              "scope": {
                "description": "Access scope of the caller",
                "type": "string"
              },
              "required_scope": {
                "description": "Required access scope",
                "type": "string"
              }
            }
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "AccessDeniedError"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "Access"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "InternalServerError": {
        "description": "Server encountered an unexpected condition that prevented it from fulfilling the request. Use as a base for more granular code and context definitions.",
        "example": {
          "domain": "General",
          "code": "InternalServerError"
        },
        "type": "object",
        "required": [
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "InternalServerError"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "General"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "BoundCompositePolicy": {
        "type": "object",
        "required": [
          "policy"
        ],
        "properties": {
          "policy": {
            "$ref": "#/components/schemas/CompositePolicy"
          },
          "context": {
            "description": "Must be empty for policy that assumes binding to a context during application.",
            "type": "object",
            "properties": {
              "_issues": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Issue_1"
                }
              },
              "id": {
                "$ref": "#/components/schemas/InternalID"
              },
              "_links": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Link"
                }
              },
              "_link_ids": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Action"
                }
              },
              "items": {
                "type": "array",
                "maxItems": 100,
                "items": {
                  "$ref": "#/components/schemas/InternalID"
                }
              },
              "tenant_id": {
                "type": "string"
              }
            }
          }
        }
      },
      "EntityTypeAndID": {
        "description": "Universal reference to an object with ID and type embedded. Formatted as 'id@type', see `EntityType` for `type` format.",
        "type": "string"
      },
      "Issue": {
        "type": "object",
        "required": [
          "severity"
        ],
        "properties": {
          "link": {
            "description": "Link name / ID or action / operation type, the issue is applied to.",
            "enum": [
              "policy_view",
              "policy_create",
              "policy_delete",
              "policy_update",
              "policy_enable",
              "policy_disable",
              "policy_add_child",
              "policy_remove_child",
              "policy_run",
              "policy_stop",
              "policy_apply",
              "policy_revoke",
              "policy_resume",
              "policy_pause",
              "policy_status",
              "backup",
              "restore",
              "getActivities",
              "largeScaleRecovery",
              "renameBackupPlans",
              "editBackupPlans",
              "collectSysinfo",
              "browse",
              "manageAsrm",
              "manageAsz",
              "activeProtection",
              "addToGroup",
              "removeFromGroup",
              "renameVMReplicationPlans",
              "editVMReplicationPlans",
              "startReplicaTest",
              "stopReplicaTest",
              "failover",
              "stopFailover",
              "failback",
              "finalize",
              "unmount",
              "detectApplications",
              "rebind",
              "permanentFailover",
              "remove",
              "replicate",
              "delete",
              "rename",
              "addResources",
              "removeResources",
              "move",
              "addStaticSubGroup",
              "addDynamicSubGroup",
              "editCondition",
              "changeCredentials",
              "changeMsSqlCredentials",
              "editCasSettings",
              "deleteCasSettings",
              "changeMsExchangeDbCredentials",
              "changeOffice365Credentials",
              "comment",
              "hostBackup",
              "removeAppliances",
              "select_disk_provision_mode",
              "reboot",
              "shutdown",
              "canDisasterRecovery",
              "manageLicense",
              "patchManagement",
              "remoteDesktop",
              "remoteWipe",
              "cyberDesktop"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Degree of trouble brought by the issue. If contains empty string, the severity is unknown.",
            "enum": [
              "ok",
              "warning",
              "error",
              "critical"
            ],
            "type": "string"
          },
          "error": {
            "description": "Detailed issue domain and code, and context description as well.",
            "type": "object",
            "required": [
              "code",
              "domain"
            ],
            "properties": {
              "context": {
                "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                "type": "object"
              },
              "code": {
                "description": "Error ID or code, unique in the domain.",
                "type": "string"
              },
              "domain": {
                "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message, describing the error.",
                "type": "string"
              }
            }
          }
        }
      },
      "PolicyIDAndOrder": {
        "type": "object",
        "required": [
          "id",
          "favorite"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "favorite": {
            "type": "boolean"
          },
          "favorite_order": {
            "type": "integer"
          }
        }
      },
      "NotFoundError": {
        "description": "Specified REST resource wasn't found.",
        "example": {
          "domain": "General",
          "code": "NotFoundError"
        },
        "type": "object",
        "required": [
          "code",
          "domain"
        ],
        "properties": {
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "enum": [
              "NotFoundError"
            ],
            "type": "string"
          },
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "enum": [
              "General"
            ],
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          }
        }
      },
      "Policy": {
        "description": "Identifiable and (optionally) named set of rules or settings. For some policies their rules / settings are specially organized to enable easy 're-use' in context of different and multiple 'resources'. Such policies must be bound to a context during application. But that is not the only case and policies may exist, which do not require binding to any additional contexts during application.",
        "type": "object",
        "required": [
          "enabled",
          "origin",
          "type"
        ],
        "properties": {
          "settings": {
            "$ref": "#/components/schemas/AnyType"
          },
          "favorite_order": {
            "description": "The order number of the policy.",
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "comment": {
            "type": "string"
          },
          "origin": {
            "$ref": "#/components/schemas/EntityOrigin"
          },
          "default_name_template_id": {
            "description": "Policy name template to be used when actual `name` is not user-assigned, e.g., for template policies.",
            "type": "string"
          },
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "template": {
            "description": "A `template` policy can't be applied and is used as a prototype for initialization of another policy of the same type.",
            "type": "boolean"
          },
          "temporary": {
            "description": "A `temporary` policy lives no more than `ttl` period, after that is removed automatically.",
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "external_dependencies": {
            "description": "References to dependencies. Represents objects in domains external to policy, which policy refers to, and access to whom needs to be adjusted on policy change. Should be filled upon policy validation at the first. validation stage",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalDependency"
            }
          },
          "name": {
            "description": "Is usually actual only for composite policy root.",
            "type": "string"
          },
          "parent_ids": {
            "description": "References to parent policies (which this policy is linked to).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          },
          "min_required_access_rules": {
            "description": "Minimal access rules required to access the policy and overriding default access rules. Calculated from `settings` including their external. dependencies",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleAccessRule"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "$ref": "#/components/schemas/InternalID"
          },
          "favorite": {
            "description": "True if the policy is favorite",
            "type": "boolean"
          },
          "run_args": {
            "description": "Arguments available for `PUT /applications/run`.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "settings_constraints": {
            "description": "Any constraint rules which applied to current policy settings - available enumerator values, numeric value ranges, string value patterns, etc.",
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "ls_features": {
            "description": "Licensing features calculated from `settings`. Empty when `enabled` is false.",
            "type": "string",
            "pattern": "^(\\w+)\\|?$"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityTag"
            }
          },
          "default": {
            "description": "True if the policy is default",
            "type": "boolean"
          },
          "settings_schema": {
            "$ref": "#/components/schemas/SchemaVersion"
          },
          "template_source_id": {
            "description": "Reference to the `template` policy, that was used as a prototype for initialization of this policy.",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "ttl": {
            "description": "Lifetime of the `temporary` policy, in seconds. Non-zero if set",
            "type": "integer"
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "type": {
            "$ref": "#/components/schemas/PolicyType"
          },
          "tenant_id": {
            "type": "string"
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          },
          "validation_dependencies": {
            "description": "References to dependencies. Only sub-policy IDs of same composite are expected (otherwise the ID will be ignored). Should be filled upon policy validation at the first validation stage with `check_validation_dependencies`. set to `false`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          }
        }
      },
      "InternalID": {
        "description": "Service-wide unique object ID generated server-side.",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "Issue_1": {
        "type": "object",
        "required": [
          "severity"
        ],
        "properties": {
          "link": {
            "description": "Link name / ID or action / operation type, the issue is applied to.",
            "enum": [
              "policy_view",
              "policy_create",
              "policy_delete",
              "policy_update",
              "policy_enable",
              "policy_disable",
              "policy_add_child",
              "policy_remove_child",
              "policy_run",
              "policy_stop",
              "policy_apply",
              "policy_revoke",
              "policy_resume",
              "policy_pause",
              "policy_status",
              "backup",
              "restore",
              "getActivities",
              "largeScaleRecovery",
              "renameBackupPlans",
              "editBackupPlans",
              "collectSysinfo",
              "browse",
              "manageAsrm",
              "manageAsz",
              "activeProtection",
              "addToGroup",
              "removeFromGroup",
              "renameVMReplicationPlans",
              "editVMReplicationPlans",
              "startReplicaTest",
              "stopReplicaTest",
              "failover",
              "stopFailover",
              "failback",
              "finalize",
              "unmount",
              "detectApplications",
              "rebind",
              "permanentFailover",
              "remove",
              "replicate",
              "delete",
              "rename",
              "addResources",
              "removeResources",
              "move",
              "addStaticSubGroup",
              "addDynamicSubGroup",
              "editCondition",
              "changeCredentials",
              "changeMsSqlCredentials",
              "editCasSettings",
              "deleteCasSettings",
              "changeMsExchangeDbCredentials",
              "changeOffice365Credentials",
              "comment",
              "hostBackup",
              "removeAppliances",
              "select_disk_provision_mode",
              "reboot",
              "shutdown",
              "canDisasterRecovery",
              "manageLicense",
              "patchManagement",
              "remoteDesktop",
              "remoteWipe",
              "cyberDesktop"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Degree of trouble brought by the issue. If contains empty string, the severity is unknown.",
            "enum": [
              "ok",
              "warning",
              "error",
              "critical"
            ],
            "type": "string"
          },
          "error": {
            "description": "Detailed issue domain and code, and context description as well.",
            "type": "object",
            "required": [
              "code",
              "domain"
            ],
            "properties": {
              "context": {
                "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                "type": "object"
              },
              "code": {
                "description": "Error ID or code, unique in the domain.",
                "type": "string"
              },
              "domain": {
                "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message, describing the error.",
                "type": "string"
              }
            }
          }
        }
      },
      "Link": {
        "type": "object",
        "required": [
          "rel"
        ],
        "properties": {
          "rel": {
            "description": "\\'Relation' - link name / ID or action / operation type.",
            "enum": [
              "policy_view",
              "policy_create",
              "policy_delete",
              "policy_update",
              "policy_enable",
              "policy_disable",
              "policy_add_child",
              "policy_remove_child",
              "policy_run",
              "policy_stop",
              "policy_apply",
              "policy_revoke",
              "policy_resume",
              "policy_pause",
              "policy_status",
              "backup",
              "restore",
              "getActivities",
              "largeScaleRecovery",
              "renameBackupPlans",
              "editBackupPlans",
              "collectSysinfo",
              "browse",
              "manageAsrm",
              "manageAsz",
              "activeProtection",
              "addToGroup",
              "removeFromGroup",
              "renameVMReplicationPlans",
              "editVMReplicationPlans",
              "startReplicaTest",
              "stopReplicaTest",
              "failover",
              "stopFailover",
              "failback",
              "finalize",
              "unmount",
              "detectApplications",
              "rebind",
              "permanentFailover",
              "remove",
              "replicate",
              "delete",
              "rename",
              "addResources",
              "removeResources",
              "move",
              "addStaticSubGroup",
              "addDynamicSubGroup",
              "editCondition",
              "changeCredentials",
              "changeMsSqlCredentials",
              "editCasSettings",
              "deleteCasSettings",
              "changeMsExchangeDbCredentials",
              "changeOffice365Credentials",
              "comment",
              "hostBackup",
              "removeAppliances",
              "select_disk_provision_mode",
              "reboot",
              "shutdown",
              "canDisasterRecovery",
              "manageLicense",
              "patchManagement",
              "remoteDesktop",
              "remoteWipe",
              "cyberDesktop"
            ],
            "type": "string"
          },
          "href": {
            "description": "URL of an endpoint that can be used for this action or operation.",
            "type": "string"
          }
        }
      },
      "Action": {
        "enum": [
          "policy_view",
          "policy_create",
          "policy_delete",
          "policy_update",
          "policy_enable",
          "policy_disable",
          "policy_add_child",
          "policy_remove_child",
          "policy_run",
          "policy_stop",
          "policy_apply",
          "policy_revoke",
          "policy_resume",
          "policy_pause",
          "policy_status",
          "backup",
          "restore",
          "getActivities",
          "largeScaleRecovery",
          "renameBackupPlans",
          "editBackupPlans",
          "collectSysinfo",
          "browse",
          "manageAsrm",
          "manageAsz",
          "activeProtection",
          "addToGroup",
          "removeFromGroup",
          "renameVMReplicationPlans",
          "editVMReplicationPlans",
          "startReplicaTest",
          "stopReplicaTest",
          "failover",
          "stopFailover",
          "failback",
          "finalize",
          "unmount",
          "detectApplications",
          "rebind",
          "permanentFailover",
          "remove",
          "replicate",
          "delete",
          "rename",
          "addResources",
          "removeResources",
          "move",
          "addStaticSubGroup",
          "addDynamicSubGroup",
          "editCondition",
          "changeCredentials",
          "changeMsSqlCredentials",
          "editCasSettings",
          "deleteCasSettings",
          "changeMsExchangeDbCredentials",
          "changeOffice365Credentials",
          "comment",
          "hostBackup",
          "removeAppliances",
          "select_disk_provision_mode",
          "reboot",
          "shutdown",
          "canDisasterRecovery",
          "manageLicense",
          "patchManagement",
          "remoteDesktop",
          "remoteWipe",
          "cyberDesktop"
        ],
        "type": "string"
      },
      "Draft": {
        "description": "Temporary policy (policies) or application snapshot (with context). Drafts API implements 'builder' pattern, helping assemble complex policies. Typically used in interactive policy creation or editing",
        "type": "object",
        "required": [
          "id",
          "policy",
          "clone",
          "state",
          "update"
        ],
        "properties": {
          "id": {
            "description": "Draft ID as whole. A policy beeing creating or edting and its linked policies all share the same context and draft state and draft-wide issues",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "policy": {
            "$ref": "#/components/schemas/CompositePolicy"
          },
          "clone": {
            "type": "boolean"
          },
          "context": {
            "description": "Either explicit or anonymous selection of resources",
            "type": "object",
            "properties": {
              "_issues": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Issue_1"
                }
              },
              "id": {
                "$ref": "#/components/schemas/InternalID"
              },
              "_links": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Link"
                }
              },
              "_link_ids": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Action"
                }
              },
              "items": {
                "type": "array",
                "maxItems": 100,
                "items": {
                  "$ref": "#/components/schemas/InternalID"
                }
              },
              "tenant_id": {
                "type": "string"
              }
            }
          },
          "state": {
            "$ref": "#/components/schemas/DraftState_6"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "update": {
            "type": "string",
            "format": "date-time"
          },
          "default_name_hint": {
            "description": "Parameter of default name template used to avoid duplicate default names, assuming default name is built a-la 'New policy {defaultNameHint}'. Greater than 0 if draft 'name' is a default name, equal to 0 if the 'name' is set explicitly",
            "type": "integer"
          },
          "default_name_template_ID": {
            "description": "ID of default name template. Convention for ID composition is - '<policy or root policy type>.<N>', where N starts from 0. Empty if draft 'name' is set explicitly",
            "type": "string"
          },
          "precheck_disabled": {
            "type": "boolean"
          }
        }
      },
      "DraftState": {
        "enum": [
          "creating",
          "editing",
          "cancelled",
          "done"
        ],
        "type": "string"
      },
      "InternalID_2": {
        "description": "Service-wide unique object ID generated server-side.",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "Policy_3": {
        "description": "Identifiable and (optionally) named set of rules or settings. For some policies their rules / settings are specially organized to enable easy 're-use' in context of different and multiple 'resources'. Such policies must be bound to a context during application. But that is not the only case and policies may exist, which do not require binding to any additional contexts during application.",
        "type": "object",
        "required": [
          "enabled",
          "origin",
          "type"
        ],
        "properties": {
          "settings": {
            "$ref": "#/components/schemas/AnyType"
          },
          "favorite_order": {
            "description": "The order number of the policy.",
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "comment": {
            "type": "string"
          },
          "origin": {
            "$ref": "#/components/schemas/EntityOrigin"
          },
          "default_name_template_id": {
            "description": "Policy name template to be used when actual `name` is not user-assigned, e.g., for template policies.",
            "type": "string"
          },
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "template": {
            "description": "A `template` policy can't be applied and is used as a prototype for initialization of another policy of the same type.",
            "type": "boolean"
          },
          "temporary": {
            "description": "A `temporary` policy lives no more than `ttl` period, after that is removed automatically.",
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "external_dependencies": {
            "description": "References to dependencies. Represents objects in domains external to policy, which policy refers to, and access to whom needs to be adjusted on policy change. Should be filled upon policy validation at the first. validation stage",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalDependency"
            }
          },
          "name": {
            "description": "Is usually actual only for composite policy root.",
            "type": "string"
          },
          "parent_ids": {
            "description": "References to parent policies (which this policy is linked to).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          },
          "min_required_access_rules": {
            "description": "Minimal access rules required to access the policy and overriding default access rules. Calculated from `settings` including their external. dependencies",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleAccessRule"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "$ref": "#/components/schemas/InternalID"
          },
          "favorite": {
            "description": "True if the policy is favorite",
            "type": "boolean"
          },
          "run_args": {
            "description": "Arguments available for `PUT /applications/run`.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "settings_constraints": {
            "description": "Any constraint rules which applied to current policy settings - available enumerator values, numeric value ranges, string value patterns, etc.",
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "ls_features": {
            "description": "Licensing features calculated from `settings`. Empty when `enabled` is false.",
            "type": "string",
            "pattern": "^(\\w+)\\|?$"
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityTag"
            }
          },
          "default": {
            "description": "True if the policy is default",
            "type": "boolean"
          },
          "settings_schema": {
            "$ref": "#/components/schemas/SchemaVersion"
          },
          "template_source_id": {
            "description": "Reference to the `template` policy, that was used as a prototype for initialization of this policy.",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "ttl": {
            "description": "Lifetime of the `temporary` policy, in seconds. Non-zero if set",
            "type": "integer"
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "type": {
            "$ref": "#/components/schemas/PolicyType"
          },
          "tenant_id": {
            "type": "string"
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          },
          "validation_dependencies": {
            "description": "References to dependencies. Only sub-policy IDs of same composite are expected (otherwise the ID will be ignored). Should be filled upon policy validation at the first validation stage with `check_validation_dependencies`. set to `false`",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          }
        }
      },
      "ApplicationPagedList": {
        "type": "object",
        "required": [
          "paging",
          "items",
          "timestamp"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Page"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompositeApplication"
            }
          },
          "timestamp": {
            "description": "Server-side timestamp of query start.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "KeyValuePair": {
        "description": "Generic key-value pair.",
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ]
              },
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    }
                  ]
                }
              }
            ]
          }
        }
      },
      "RunningState": {
        "enum": [
          "running",
          "idle",
          "cancelling",
          "interaction_required"
        ],
        "type": "string"
      },
      "CompositePolicyStatusPagedList": {
        "type": "object",
        "required": [
          "paging",
          "items",
          "timestamp"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Page"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompositePolicyStatus"
            }
          },
          "timestamp": {
            "description": "Server-side timestamp of query start.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ResourcePagedList": {
        "type": "object",
        "required": [
          "paging",
          "items",
          "timestamp"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Page"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Resource_4"
            }
          },
          "timestamp": {
            "description": "Server-side timestamp of query start.",
            "type": "string",
            "format": "date-time"
          },
          "dynamic_group_creation_forbidden": {
            "description": "This field defines that user can not create a group using query defined in 'search' query parameter (i.e. last_backup_time < '2020-12-20', isOnline = true)",
            "type": "boolean"
          }
        }
      },
      "SchemaVersion": {
        "description": "Schema version.",
        "type": "string",
        "pattern": "^([0-9]+)\\.([0-9]+)$"
      },
      "ResourceType": {
        "description": "A resource type in the `type.scope` format, where `type` is 'resource' and `scope` is\nlike one of the `ResourceScope` values defined in `impl/resource/type_scopes.raml`.\n",
        "type": "string"
      },
      "Resource": {
        "description": "An object, which status is interesting or important to track for some reason for\nend customer. Typically originates from an external (customer-owned) system or in any other\nway owned by customer. Identifiable and having a granularity enough to be easy to track\nto the customer. Actions executed on this object, that change status important to customer,\ncan be configured either per resource or via policies. In the latter case, multiple policies\n(i.e., multiple rules / settings sets) may be configured for the resource simultaneously.\n\nResources can be simple ('atomic') or composite ('groups') or / and linked with other\nresources, but no separate type for resource compositions is defined, as a consequence,\nsimple and composite resources share the same identifiers space.\n\nFrom policies perspective, resources serve as contexts to which policy rules / settings are\napplied and executed.\n",
        "type": "object",
        "required": [
          "name",
          "parent_group_ids",
          "cti",
          "type"
        ],
        "properties": {
          "is_auto_created": {
            "description": "Automatic creation happens in workload merge and cluster-like use case, when `aggregates_detection_query` is defined per-workload type. Otherwise, workload is explicitly created - at the time of metadata provisioning or at runtime by a vendor agent or connector, or at runtime by a cusomter.",
            "type": "boolean"
          },
          "group_condition": {
            "description": "Per-workload children selection query, if the workload is a dynamic group.",
            "type": "string"
          },
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "agent_id": {
            "type": "string"
          },
          "external_id": {
            "description": "ID from original external system.",
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "aspects": {
            "description": "Calculatable field, representing all aspects of the aggregate (i.e. all aspect workloads with same `aggregate_id` value).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Resource"
            }
          },
          "name": {
            "type": "string"
          },
          "allowed_member_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceType"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "$ref": "#/components/schemas/InternalID"
          },
          "aggregation_status": {
            "description": "Aggregation / split status.",
            "enum": [
              "NOT_AGGREGATED",
              "MERGED_AUTOMATICALLY",
              "MERGED_MANUALLY",
              "SPLIT_MANUALLY"
            ],
            "type": "string"
          },
          "user_defined_name": {
            "type": "string"
          },
          "attributes": {
            "description": "Available base namespaces listed in the `ResourceAttributeNamespace` type definition.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedKeyValueSet"
            }
          },
          "client_id": {
            "description": "client ID of an agent or other subject, that manages and accesses the aspect. In case when a workload is managed by multiple agents, there should be multiple workload aspect instances, each aspect instance referencing different client ID of a corresponding agent, of same or different agent type.",
            "type": "string"
          },
          "tag": {
            "description": "Any user-defined string value, the resources can further be filtered by it",
            "type": "string"
          },
          "parent_group_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          },
          "aggregate_id": {
            "description": "Reference to workload aggregate.",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "settings_schema": {
            "$ref": "#/components/schemas/SchemaVersion"
          },
          "allowed_actions": {
            "description": "Actions, allowed for the workload.",
            "type": "array",
            "items": {
              "description": "ID used in Cyber Application to uniquely identify an entity either type or instance.\n\nGeneric format - cti.<ctx>[~<ctx>]*[~(<ctx>|<uuid>)]\n\n<ctx> - <vendor>.<application>.<name>.v<major>.<minor>\n<vendor> - vendor's short code (max 50 characters)\n<application> - application's short code (max 50 characters)\n<name> - entity's name (max 128 characters), may include `.` and `_` to be used for structuring\nv<major>.<minor> - entity's version\n\nBetter regex pattern (for advanced regex processors)\n  ^cti\\.(?'ctx'[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_.]{1,127}\\.v[\\d]+\\.[\\d]+)(~(?&ctx))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$\n",
              "x-cti.reference": "cti.a.p.wm.action.v0.1",
              "type": "string",
              "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
              "maxLength": 1024
            }
          },
          "is_static": {
            "description": "Is the workload a customer created static group.",
            "type": "boolean"
          },
          "agent_cluster_id": {
            "type": "string"
          },
          "cti": {
            "description": "The specific workload type.",
            "type": "string",
            "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
            "maxLength": 1024
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "type": {
            "$ref": "#/components/schemas/ResourceType"
          },
          "is_customer_managed": {
            "description": "Workload is managed if it's created at the time of vendor metadata provisioning, or at runtime by a vendor agent or connector. Otherwise it's managed at runtime by a cusomter (e.g. dynamic and static groups).",
            "type": "boolean"
          },
          "tenant_id": {
            "type": "string"
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          }
        }
      },
      "NamedKeyValueSet": {
        "type": "object",
        "required": [
          "name",
          "kvs"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "kvs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair_7"
            }
          },
          "details": {
            "type": "object"
          }
        }
      },
      "Resource_4": {
        "description": "An object, which status is interesting or important to track for some reason for\nend customer. Typically originates from an external (customer-owned) system or in any other\nway owned by customer. Identifiable and having a granularity enough to be easy to track\nto the customer. Actions executed on this object, that change status important to customer,\ncan be configured either per resource or via policies. In the latter case, multiple policies\n(i.e., multiple rules / settings sets) may be configured for the resource simultaneously.\n\nResources can be simple ('atomic') or composite ('groups') or / and linked with other\nresources, but no separate type for resource compositions is defined, as a consequence,\nsimple and composite resources share the same identifiers space.\n\nFrom policies perspective, resources serve as contexts to which policy rules / settings are\napplied and executed.\n",
        "type": "object",
        "required": [
          "name",
          "parent_group_ids",
          "cti",
          "type"
        ],
        "properties": {
          "is_auto_created": {
            "description": "Automatic creation happens in workload merge and cluster-like use case, when `aggregates_detection_query` is defined per-workload type. Otherwise, workload is explicitly created - at the time of metadata provisioning or at runtime by a vendor agent or connector, or at runtime by a cusomter.",
            "type": "boolean"
          },
          "group_condition": {
            "description": "Per-workload children selection query, if the workload is a dynamic group.",
            "type": "string"
          },
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "agent_id": {
            "type": "string"
          },
          "external_id": {
            "description": "ID from original external system.",
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "aspects": {
            "description": "Calculatable field, representing all aspects of the aggregate (i.e. all aspect workloads with same `aggregate_id` value).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Resource"
            }
          },
          "name": {
            "type": "string"
          },
          "allowed_member_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceType"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "$ref": "#/components/schemas/InternalID"
          },
          "aggregation_status": {
            "description": "Aggregation / split status.",
            "enum": [
              "NOT_AGGREGATED",
              "MERGED_AUTOMATICALLY",
              "MERGED_MANUALLY",
              "SPLIT_MANUALLY"
            ],
            "type": "string"
          },
          "user_defined_name": {
            "type": "string"
          },
          "attributes": {
            "description": "Available base namespaces listed in the `ResourceAttributeNamespace` type definition.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedKeyValueSet"
            }
          },
          "client_id": {
            "description": "client ID of an agent or other subject, that manages and accesses the aspect. In case when a workload is managed by multiple agents, there should be multiple workload aspect instances, each aspect instance referencing different client ID of a corresponding agent, of same or different agent type.",
            "type": "string"
          },
          "tag": {
            "description": "Any user-defined string value, the resources can further be filtered by it",
            "type": "string"
          },
          "parent_group_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          },
          "aggregate_id": {
            "description": "Reference to workload aggregate.",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
          },
          "settings_schema": {
            "$ref": "#/components/schemas/SchemaVersion"
          },
          "allowed_actions": {
            "description": "Actions, allowed for the workload.",
            "type": "array",
            "items": {
              "description": "ID used in Cyber Application to uniquely identify an entity either type or instance.\n\nGeneric format - cti.<ctx>[~<ctx>]*[~(<ctx>|<uuid>)]\n\n<ctx> - <vendor>.<application>.<name>.v<major>.<minor>\n<vendor> - vendor's short code (max 50 characters)\n<application> - application's short code (max 50 characters)\n<name> - entity's name (max 128 characters), may include `.` and `_` to be used for structuring\nv<major>.<minor> - entity's version\n\nBetter regex pattern (for advanced regex processors)\n  ^cti\\.(?'ctx'[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_]{0,49}\\.[a-z][a-z0-9_.]{1,127}\\.v[\\d]+\\.[\\d]+)(~(?&ctx))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$\n",
              "x-cti.reference": "cti.a.p.wm.action.v0.1",
              "type": "string",
              "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
              "maxLength": 1024
            }
          },
          "is_static": {
            "description": "Is the workload a customer created static group.",
            "type": "boolean"
          },
          "agent_cluster_id": {
            "type": "string"
          },
          "cti": {
            "description": "The specific workload type.",
            "type": "string",
            "pattern": "^cti\\.([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+)(~([a-z][a-z0-9_]*\\.[a-z][a-z0-9_]*\\.[a-z][a-z0-9_.]+\\.v[\\d]+\\.[\\d]+))*(~[0-9a-f]{8}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{4}\\b-[0-9a-f]{12})?$",
            "maxLength": 1024
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "type": {
            "$ref": "#/components/schemas/ResourceType"
          },
          "is_customer_managed": {
            "description": "Workload is managed if it's created at the time of vendor metadata provisioning, or at runtime by a vendor agent or connector. Otherwise it's managed at runtime by a cusomter (e.g. dynamic and static groups).",
            "type": "boolean"
          },
          "tenant_id": {
            "type": "string"
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          }
        }
      },
      "InternalOrExternalID": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/InternalID"
          },
          {
            "$ref": "#/components/schemas/ScopedExternalID"
          }
        ]
      },
      "NamedKeyValueSet_5": {
        "type": "object",
        "required": [
          "name",
          "kvs"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "kvs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyValuePair_7"
            }
          },
          "details": {
            "type": "object"
          }
        }
      },
      "ResourceStatusPageList": {
        "type": "object",
        "required": [
          "paging",
          "items",
          "timestamp"
        ],
        "properties": {
          "paging": {
            "$ref": "#/components/schemas/Page"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceStatus"
            }
          },
          "timestamp": {
            "description": "Server-side timestamp of query start.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Page": {
        "description": "A subset of REST resources collection based on filter query.",
        "type": "object",
        "required": [
          "cursors"
        ],
        "properties": {
          "cursors": {
            "type": "object",
            "properties": {
              "before": {
                "$ref": "#/components/schemas/PageCursor"
              },
              "after": {
                "$ref": "#/components/schemas/PageCursor"
              },
              "total": {
                "description": "Total number of elements in the REST resources collection.",
                "type": "integer"
              }
            }
          }
        }
      },
      "CompositePolicy": {
        "description": "Policy can be linked to other policies making a policy composite. Policy composite is always an acyclic directed graph with a single 'root'. Composite policy 'root' does not have parents. Non-root policy within a composite may have multiple 'parents' (which it's linked to) and multiple 'children' (which are linked to it).",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Policy"
        }
      },
      "AnyType": {
        "anyOf": [
          {
            "type": "object"
          },
          {
            "type": "string"
          },
          {
            "type": "integer"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "EntityOrigin": {
        "description": "Object creation origin, also called 'authoritative source'.",
        "enum": [
          "upstream",
          "local"
        ],
        "type": "string"
      },
      "PolicyType": {
        "description": "A policy type in the `type.scope` format, where `type` is 'policy' and `scope` is\nlike one of the `PolicyScope` values defined in `impl/policy/type_scopes.raml`.\n",
        "type": "string"
      },
      "ExternalDependency": {
        "type": "object",
        "required": [
          "namespace",
          "tenant_id",
          "path",
          "timestamp"
        ],
        "properties": {
          "namespace": {
            "description": "Domain or namespace of the dependency object, e.g. 'credentials_store', 'script_repository'.",
            "type": "string"
          },
          "tenant_id": {
            "description": "Tenant that directly owns the dependency object.",
            "example": "123",
            "type": "string",
            "pattern": "^\\d+$"
          },
          "path": {
            "description": "Dependency object identifier (can be structured), e.g. credentials or script object ID. This identifier will be used to track dependency object changes and to manage dependency object access permissions.",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of creation or last update of the dependency object.",
            "type": "string",
            "format": "date-time"
          },
          "role": {
            "description": "Role (without namespace prefix), required to access the dependency object.",
            "type": "string"
          }
        }
      },
      "RoleAccessRule": {
        "type": "object",
        "required": [
          "link",
          "namespace",
          "role"
        ],
        "properties": {
          "link": {
            "description": "Type of access (link or action).",
            "enum": [
              "policy_view",
              "policy_create",
              "policy_delete",
              "policy_update",
              "policy_enable",
              "policy_disable",
              "policy_add_child",
              "policy_remove_child",
              "policy_run",
              "policy_stop",
              "policy_apply",
              "policy_revoke",
              "policy_resume",
              "policy_pause",
              "policy_status",
              "backup",
              "restore",
              "getActivities",
              "largeScaleRecovery",
              "renameBackupPlans",
              "editBackupPlans",
              "collectSysinfo",
              "browse",
              "manageAsrm",
              "manageAsz",
              "activeProtection",
              "addToGroup",
              "removeFromGroup",
              "renameVMReplicationPlans",
              "editVMReplicationPlans",
              "startReplicaTest",
              "stopReplicaTest",
              "failover",
              "stopFailover",
              "failback",
              "finalize",
              "unmount",
              "detectApplications",
              "rebind",
              "permanentFailover",
              "remove",
              "replicate",
              "delete",
              "rename",
              "addResources",
              "removeResources",
              "move",
              "addStaticSubGroup",
              "addDynamicSubGroup",
              "editCondition",
              "changeCredentials",
              "changeMsSqlCredentials",
              "editCasSettings",
              "deleteCasSettings",
              "changeMsExchangeDbCredentials",
              "changeOffice365Credentials",
              "comment",
              "hostBackup",
              "removeAppliances",
              "select_disk_provision_mode",
              "reboot",
              "shutdown",
              "canDisasterRecovery",
              "manageLicense",
              "patchManagement",
              "remoteDesktop",
              "remoteWipe",
              "cyberDesktop"
            ],
            "type": "string"
          },
          "namespace": {
            "description": "Domain or namespace of the dependency object.",
            "type": "string"
          },
          "role": {
            "description": "Role (without namespace prefix), required to access the policy. In case of multiple roles for the same link brought by multiple rules, each role is required to allow the access. To completely disable the access, require a not existing role.",
            "type": "string"
          }
        }
      },
      "EntityTag": {
        "description": "Key-value pair to use for object search and sorting.",
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              }
            ]
          }
        }
      },
      "DraftState_6": {
        "enum": [
          "creating",
          "editing",
          "cancelled",
          "done"
        ],
        "type": "string"
      },
      "CompositeApplication": {
        "description": "Applications grouped according to their parent policy.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Application"
        }
      },
      "CompositePolicyStatus": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/PolicyStatus"
        }
      },
      "KeyValuePair_7": {
        "description": "Generic key-value pair.",
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "integer"
                  }
                ]
              },
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    }
                  ]
                }
              }
            ]
          }
        }
      },
      "ScopedExternalID": {
        "description": "Scoped external ID is used to uniquely identify replica objects. Is represented via `id` and `type_or_scope` and 'tenant' parts, serialized as string in the `id@type_or_scope!tenant` format.",
        "type": "string",
        "pattern": "^(?<id>[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})(@(?<type_or_scope>[0-9a-zA-Z-_\\.]+)?)?(!(?<tenant>[0-9a-zA-Z-_\\.]+)?)?$"
      },
      "ResourceStatus": {
        "description": "Resource with aggregated status information.",
        "type": "object",
        "required": [
          "context"
        ],
        "properties": {
          "context": {
            "$ref": "#/components/schemas/Resource"
          },
          "aggregate": {
            "$ref": "#/components/schemas/AggregateStatus"
          },
          "licensing": {
            "$ref": "#/components/schemas/LicensingStatus"
          },
          "policies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyExecutions"
            }
          }
        }
      },
      "PageCursor": {
        "type": "string"
      },
      "Application": {
        "description": "Policy rules or settings applied, i.e., being used and executed. For policy that requires parametrization by context of a resource, the application is also bound to the resource.",
        "type": "object",
        "required": [
          "enabled",
          "context_tenant_id",
          "automatic_enabled_switch",
          "policy"
        ],
        "properties": {
          "enabled": {
            "description": "Pause or resume state of application policy execution for the application context. If `policy.enabled` is false for the corresponding policy, this `application.enabled` flag can only be false. But if `policy.enabled` is true for the corresponding policy, the `application.enabled` flag may explicitly allow or deny (if false) the execution. The `application.enabled` flag participates in the conflict related invariant - there should be only 0 or 1 root policy application with non-empty `multiple_applications_conflict` and `application.enabled` is true for the same context. The `application.enabled` flag has no dependency on other status fields (e.g., `validation_issues` and `licensing_issues`).",
            "type": "boolean"
          },
          "is_licensed": {
            "description": "Actual application licensing state (i.e., are application policy features licensed in the application context scope). It is the same for root application and all sub-applications for the same context, because licensing is done for all composite application policy features within a given context scope.",
            "type": "boolean"
          },
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "agent_id": {
            "description": "The agent ID of the application context.",
            "type": "string"
          },
          "last_success_time": {
            "description": "Last policy execution time completed without errors. Valid only for non-composite polices.",
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "context": {
            "description": "The resource that the application is associated with. Can be empty for applications of policies which are not applied to a resource (e.g., mini plans).",
            "type": "object",
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/InternalID_2"
              },
              "external_id": {
                "type": "string"
              },
              "type": {
                "$ref": "#/components/schemas/ResourceType_8"
              }
            }
          },
          "multiple_applications_conflict": {
            "description": "Reflects a check if other applications exist, which are bound to the same context and conflicting policy types (i.e., falling into a range of this application's `deny_multiple_applications_with_policy_types` policy trait).",
            "type": "object",
            "required": [
              "code",
              "context",
              "domain"
            ],
            "properties": {
              "code": {
                "description": "Error ID or code, unique in the domain.",
                "enum": [
                  "MultipleApplicationsWithPolicyTypesError"
                ],
                "type": "string"
              },
              "context": {
                "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                "type": "object",
                "required": [
                  "conflicts",
                  "subject_root_policy_id"
                ],
                "properties": {
                  "conflicts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "subject_policy",
                        "targets"
                      ],
                      "properties": {
                        "subject_policy": {
                          "description": "Policy within `subject_root_policy_id` composite.",
                          "type": "string"
                        },
                        "targets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "root_policy_id",
                              "resources"
                            ],
                            "properties": {
                              "root_policy_id": {
                                "description": "Policy ID of conflicting composite policy.",
                                "type": "string",
                                "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                              },
                              "policies": {
                                "description": "The conflicting policies within the `root_policy_id`.",
                                "type": "array",
                                "items": {
                                  "$ref": "#/components/schemas/EntityTypeAndID"
                                }
                              },
                              "resources": {
                                "description": "The conflicting policy application context.",
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "required": [
                                    "id"
                                  ],
                                  "properties": {
                                    "id": {
                                      "$ref": "#/components/schemas/InternalID_9"
                                    },
                                    "type": {
                                      "description": "Resource or group type.",
                                      "type": "string"
                                    },
                                    "group_id": {
                                      "$ref": "#/components/schemas/InternalID_9"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "subject_root_policy_id": {
                    "description": "Subject composite policy which is tried to apply.",
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                  }
                }
              },
              "domain": {
                "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                "enum": [
                  "PolicyManagement"
                ],
                "type": "string"
              },
              "message": {
                "description": "Human-readable message, describing the error.",
                "type": "string"
              }
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_run_time": {
            "description": "Last policy execution time. Valid only for non-composite polices.",
            "type": "string",
            "format": "date-time"
          },
          "most_severe_status_event": {
            "description": "If `status` not in `['running', 'interaction_required']` - most severe status event from `status_events` and `multiple_applications_conflict`, `validation_issues` and `deployment.errors` according to `status` calculation algorithm.",
            "type": "object",
            "required": [
              "id",
              "severity",
              "type"
            ],
            "properties": {
              "id": {
                "description": "ID of status event (alert ID for example).",
                "type": "string"
              },
              "severity": {
                "$ref": "#/components/schemas/Severity"
              },
              "type": {
                "description": "Metric name for event == alert type.",
                "type": "string"
              }
            }
          },
          "next_enable_time": {
            "description": "Next policy resume time. Valid only for non-composite polices.",
            "type": "string",
            "format": "date-time"
          },
          "running": {
            "description": "Valid only for non-composite polices.",
            "type": "object",
            "required": [
              "state"
            ],
            "properties": {
              "state": {
                "$ref": "#/components/schemas/RunningState_10"
              },
              "blockers": {
                "description": "So-called 'interaction required' escalations.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/error"
                }
              },
              "progress": {
                "type": "integer"
              },
              "activities": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Activity"
                }
              }
            }
          },
          "next_run_time": {
            "description": "For policies with periodic execution. Valid only for non-composite polices.",
            "type": "string",
            "format": "date-time"
          },
          "context_tenant_id": {
            "$ref": "#/components/schemas/IntegerID"
          },
          "automatic_enabled_switch": {
            "description": "Automatically switch pause or resume state. The switch is one-time.",
            "type": "object",
            "required": [
              "by_time_period",
              "by_events"
            ],
            "properties": {
              "by_time_period": {
                "description": "Time period in seconds.",
                "type": "integer"
              },
              "by_events": {
                "description": "Event identifiers.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "validation_issues": {
            "description": "Stores last validation check for the application's policy within the application's context. For already existing enabled application, critical validation issues may realize when a resource enters in a dynamic group (the latter being a context of another application). Non-critical validation issues are a common case, e.g., application agent version is incompatible with application policy, resource OS version is incompatible with policy, etc.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "enable_events": {
            "description": "Policy resume events. Valid only for non-composite polices.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventID"
            }
          },
          "policy": {
            "description": "The policy that the application is associated with.",
            "type": "object",
            "required": [
              "id",
              "type"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/InternalID_2"
              },
              "type": {
                "$ref": "#/components/schemas/PolicyType_11"
              },
              "temporary": {
                "type": "boolean"
              }
            }
          },
          "run_events": {
            "description": "Policy run events. Valid only for non-composite polices.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventID"
            }
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "origin_contexts": {
            "description": "Application to a resource can be created as a result of application to parent resource. If a policy p was applied to a context r directly, then `origin_contexts` equals to [r]. If a policy p was applied to contexts g1, g2 and r, and r is a (direct or indirect) member of g1 and g2 (no matter if g1 and g2 are members of each other or not), then `origin_contexts` equals to [r, g1, g2].",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InternalID_2"
            }
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "deployment": {
            "description": "Valid only for non-composite polices.",
            "type": "object",
            "required": [
              "state"
            ],
            "properties": {
              "errors": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/error"
                }
              },
              "state": {
                "$ref": "#/components/schemas/DeploymentState"
              }
            }
          },
          "tenant_id": {
            "$ref": "#/components/schemas/IntegerID"
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          },
          "sequenceId": {
            "description": "Technical field to confirm deployment of applications by the agent",
            "type": "integer"
          },
          "status": {
            "description": "Valid only for non-composite polices.",
            "enum": [
              "warning",
              "error",
              "critical",
              "no_policies_applied",
              "scheduled",
              "interaction_required",
              "running",
              "cancelling",
              "idle"
            ],
            "type": "string"
          }
        }
      },
      "PolicyStatus": {
        "type": "object",
        "required": [
          "policy"
        ],
        "properties": {
          "_issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue_1"
            }
          },
          "contexts": {
            "type": "object",
            "required": [
              "total_number_or_resources",
              "number_of_enabled_resource_applications",
              "number_of_resources_by_status",
              "number_of_multiple_applications_conflict_resources",
              "origin_contexts",
              "deployment_status"
            ],
            "properties": {
              "validation_issues": {
                "type": "array",
                "maxItems": 50,
                "items": {
                  "$ref": "#/components/schemas/Issue_12"
                }
              },
              "total_number_or_resources": {
                "description": "Total number of policy applications on resource contexts.",
                "type": "integer"
              },
              "number_of_enabled_resource_applications": {
                "description": "Number of policy applications on resource contexts with `application.enabled` set to true.",
                "type": "integer"
              },
              "number_of_resources_by_status": {
                "description": "Number of policy applications on resource contexts with `application.status` equal to each possible value of the `ExecutionStatus` enumerator.",
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "status",
                    "value"
                  ],
                  "properties": {
                    "status": {
                      "$ref": "#/components/schemas/ExecutionStatus"
                    },
                    "value": {
                      "type": "integer"
                    }
                  }
                }
              },
              "number_of_multiple_applications_conflict_resources": {
                "description": "Number of policy applications on resource contexts with `application.multiple_applications_conflict != null`.",
                "type": "integer"
              },
              "origin_contexts": {
                "description": "Deduplicated `origin_contexts` of policy applications on resource contexts.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InternalID_2"
                }
              },
              "deployment_status": {
                "$ref": "#/components/schemas/DeploymentStatus"
              }
            }
          },
          "policy": {
            "type": "object",
            "required": [
              "created_at",
              "updated_at",
              "id",
              "tenant_id",
              "tenant_name",
              "type",
              "enabled",
              "origin"
            ],
            "properties": {
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "id": {
                "$ref": "#/components/schemas/InternalID_2"
              },
              "tenant_id": {
                "$ref": "#/components/schemas/IntegerID"
              },
              "tenant_name": {
                "type": "string"
              },
              "type": {
                "$ref": "#/components/schemas/PolicyType_13"
              },
              "enabled": {
                "type": "boolean"
              },
              "name": {
                "type": "string"
              },
              "comment": {
                "type": "string"
              },
              "origin": {
                "$ref": "#/components/schemas/EntityOrigin_14"
              },
              "tags": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EntityTag_15"
                }
              },
              "parent_ids": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/InternalID_2"
                }
              }
            }
          },
          "_links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "_link_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          }
        }
      },
      "AggregateStatus": {
        "type": "object",
        "required": [
          "running",
          "status"
        ],
        "properties": {
          "running": {
            "$ref": "#/components/schemas/RunningStatus"
          },
          "names": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ExecutionStatus"
          }
        }
      },
      "LicensingStatus": {
        "type": "object",
        "required": [
          "current_offering_item",
          "previous_offering_item"
        ],
        "properties": {
          "current_offering_item": {
            "type": "string"
          },
          "previous_offering_item": {
            "type": "string"
          }
        }
      },
      "PolicyExecutions": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "last_run_time": {
            "type": "string",
            "format": "date-time"
          },
          "next_run_time": {
            "type": "string",
            "format": "date-time"
          },
          "last_success_run_time": {
            "type": "string",
            "format": "date-time"
          },
          "next_enable_time": {
            "type": "string",
            "format": "date-time"
          },
          "run_events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enable_events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "IntegerID": {
        "description": "An integer ID of the object.",
        "example": "123",
        "type": "string",
        "pattern": "^\\d+$"
      },
      "ResourceType_8": {
        "description": "A resource type in the `type.scope` format, where `type` is 'resource' and `scope` is\nlike one of the `ResourceScope` values defined in `impl/resource/type_scopes.raml`.\n",
        "type": "string"
      },
      "InternalID_9": {
        "description": "Service-wide unique object ID generated server-side.",
        "type": "string",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "Severity": {
        "enum": [
          "ok",
          "warning",
          "error",
          "critical"
        ],
        "type": "string"
      },
      "RunningState_10": {
        "enum": [
          "running",
          "idle",
          "cancelling",
          "interaction_required"
        ],
        "type": "string"
      },
      "error": {
        "type": "object",
        "required": [
          "domain",
          "code"
        ],
        "properties": {
          "domain": {
            "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
            "type": "string"
          },
          "code": {
            "description": "Error ID or code, unique in the domain.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable message, describing the error.",
            "type": "string"
          },
          "context": {
            "description": "Description of context (call parameters, environment, etc), where the error occurred.",
            "type": "object"
          }
        }
      },
      "Activity": {
        "enum": [
          "backup",
          "recover",
          "install",
          "reboot",
          "failback",
          "test_replica",
          "run_vm",
          "finalize",
          "failover",
          "replicate",
          "create_asz",
          "delete_asz",
          "resize_asz",
          "av_scan",
          "update_installation",
          "vulnerability_assessment",
          "data_protection_map",
          "disaster_recovery"
        ],
        "type": "string"
      },
      "EventID": {
        "enum": [
          "reboot"
        ],
        "type": "string"
      },
      "PolicyType_11": {
        "description": "A policy type in the `type.scope` format, where `type` is 'policy' and `scope` is\nlike one of the `PolicyScope` values defined in `impl/policy/type_scopes.raml`.\n",
        "type": "string"
      },
      "DeploymentState": {
        "enum": [
          "deploying",
          "deployed",
          "error",
          "not_available"
        ],
        "type": "string"
      },
      "DeploymentStatus": {
        "type": "object",
        "required": [
          "state"
        ],
        "properties": {
          "state": {
            "$ref": "#/components/schemas/DeploymentState"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      },
      "Issue_12": {
        "type": "object",
        "required": [
          "severity"
        ],
        "properties": {
          "link": {
            "description": "Link name / ID or action / operation type, the issue is applied to.",
            "enum": [
              "policy_view",
              "policy_create",
              "policy_delete",
              "policy_update",
              "policy_enable",
              "policy_disable",
              "policy_add_child",
              "policy_remove_child",
              "policy_run",
              "policy_stop",
              "policy_apply",
              "policy_revoke",
              "policy_resume",
              "policy_pause",
              "policy_status",
              "backup",
              "restore",
              "getActivities",
              "largeScaleRecovery",
              "renameBackupPlans",
              "editBackupPlans",
              "collectSysinfo",
              "browse",
              "manageAsrm",
              "manageAsz",
              "activeProtection",
              "addToGroup",
              "removeFromGroup",
              "renameVMReplicationPlans",
              "editVMReplicationPlans",
              "startReplicaTest",
              "stopReplicaTest",
              "failover",
              "stopFailover",
              "failback",
              "finalize",
              "unmount",
              "detectApplications",
              "rebind",
              "permanentFailover",
              "remove",
              "replicate",
              "delete",
              "rename",
              "addResources",
              "removeResources",
              "move",
              "addStaticSubGroup",
              "addDynamicSubGroup",
              "editCondition",
              "changeCredentials",
              "changeMsSqlCredentials",
              "editCasSettings",
              "deleteCasSettings",
              "changeMsExchangeDbCredentials",
              "changeOffice365Credentials",
              "comment",
              "hostBackup",
              "removeAppliances",
              "select_disk_provision_mode",
              "reboot",
              "shutdown",
              "canDisasterRecovery",
              "manageLicense",
              "patchManagement",
              "remoteDesktop",
              "remoteWipe",
              "cyberDesktop"
            ],
            "type": "string"
          },
          "severity": {
            "description": "Degree of trouble brought by the issue. If contains empty string, the severity is unknown.",
            "enum": [
              "ok",
              "warning",
              "error",
              "critical"
            ],
            "type": "string"
          },
          "error": {
            "description": "Detailed issue domain and code, and context description as well.",
            "type": "object",
            "required": [
              "code",
              "domain"
            ],
            "properties": {
              "context": {
                "description": "Description of context (call parameters, environment, etc), where the error occurred.",
                "type": "object"
              },
              "code": {
                "description": "Error ID or code, unique in the domain.",
                "type": "string"
              },
              "domain": {
                "description": "Error type or category. Can be ['Licensing','Access'] or name of specific domain model (e.g., `ResourceManagement` or `PolicyManagement`).",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message, describing the error.",
                "type": "string"
              }
            }
          }
        }
      },
      "ExecutionStatus": {
        "enum": [
          "warning",
          "error",
          "critical",
          "no_policies_applied",
          "scheduled",
          "interaction_required",
          "running",
          "cancelling",
          "idle"
        ],
        "type": "string"
      },
      "PolicyType_13": {
        "description": "A policy type in the `type.scope` format, where `type` is 'policy' and `scope` is\nlike one of the `PolicyScope` values defined in `impl/policy/type_scopes.raml`.\n",
        "type": "string"
      },
      "EntityOrigin_14": {
        "description": "Object creation origin, also called 'authoritative source'.",
        "enum": [
          "upstream",
          "local"
        ],
        "type": "string"
      },
      "EntityTag_15": {
        "description": "Key-value pair to use for object search and sorting.",
        "type": "object",
        "required": [
          "key",
          "value"
        ],
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              }
            ]
          }
        }
      },
      "RunningStatus": {
        "type": "object",
        "required": [
          "state"
        ],
        "properties": {
          "state": {
            "$ref": "#/components/schemas/RunningState_10"
          },
          "activities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Activity"
            }
          },
          "progress": {
            "type": "integer"
          },
          "blockers": {
            "description": "So-called 'interaction required' escalations.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/error"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 security scheme definition for a user authorization.",
        "flows": {
          "clientCredentials": {
            "scopes": {
              "urn:acronis.com::resource_management::read": "",
              "urn:acronis.com::resource_manager::admin": "",
              "urn:acronis.com::policy_management::read": "",
              "urn:acronis.com::policy_management::notify": "",
              "urn:acronis.com::policy_manager::admin": ""
            },
            "tokenUrl": "https://dev-cloud.acronis.com/api/2/idp/token"
          },
          "password": {
            "scopes": {
              "urn:acronis.com::resource_management::read": "",
              "urn:acronis.com::resource_manager::admin": "",
              "urn:acronis.com::policy_management::read": "",
              "urn:acronis.com::policy_management::notify": "",
              "urn:acronis.com::policy_manager::admin": ""
            },
            "tokenUrl": "https://dev-cloud.acronis.com/api/2/idp/token"
          },
          "authorizationCode": {
            "scopes": {
              "urn:acronis.com::resource_management::read": "",
              "urn:acronis.com::resource_manager::admin": "",
              "urn:acronis.com::policy_management::read": "",
              "urn:acronis.com::policy_management::notify": "",
              "urn:acronis.com::policy_manager::admin": ""
            },
            "authorizationUrl": "https://dev-cloud.acronis.com/api/2/idp/authorize",
            "tokenUrl": "https://dev-cloud.acronis.com/api/2/idp/token"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://dev-cloud.acronis.com/api",
      "variables": {}
    }
  ]
}