{
  "openapi": "3.0.0",
  "info": {
    "title": "Agents API",
    "version": "2"
  },
  "paths": {
    "/agents": {
      "get": {
        "operationId": "FetchAgents",
        "description": "Fetches all registered agents seen from specified tenant.\n\nResult includes all agents registered in this tenant and in all its child tenants that don't\nblock parent access using visibility barrier.\n",
        "parameters": [
          {
            "name": "after",
            "description": "Cursor that designates the last element of a previously returned registered agent subset\n(page). If this parameter is provided, the next agent page will be returned in the response\n(according to ordering requirements that were specified in the first request).\nThis parameter is mutually exclusive with all other but limit query parameters.\nClient must treat it as opaque string.\n",
            "in": "query",
            "schema": {
              "description": "Cursor that designates the last element of a previously returned registered agent subset\n(page). If this parameter is provided, the next agent page will be returned in the response\n(according to ordering requirements that were specified in the first request).\nThis parameter is mutually exclusive with all other but limit query parameters.\nClient must treat it as opaque string.\n",
              "example": "aGVhbHRoY2hlY2s6C",
              "type": "string"
            }
          },
          {
            "name": "before",
            "description": "Cursor that designates the first element of a previously returned registered agent subset\n(page). If this parameter is provided, the previous agent page will be returned in the response\n(according to ordering requirements that were specified in the first request).\nThis parameter is mutually exclusive with all other but limit query parameters.\nClient must treat it as opaque string.\n",
            "in": "query",
            "schema": {
              "description": "Cursor that designates the first element of a previously returned registered agent subset\n(page). If this parameter is provided, the previous agent page will be returned in the response\n(according to ordering requirements that were specified in the first request).\nThis parameter is mutually exclusive with all other but limit query parameters.\nClient must treat it as opaque string.\n",
              "example": "aGVhbHRoY2hlY2s6C",
              "type": "string"
            }
          },
          {
            "name": "hostname",
            "description": "Either a full name or a name segment (name mask) of a host where registered agent\nis installed. If this parameter is provided, only agents which host names match the parameter\nvalue are returned. Name mask is specified using one of match-like functions:\n- `hlike` - host name starts with specified string.\n- `like` - host name contains specified string in any position.\n- `tlike` - host name ends with specified string.\n",
            "in": "query",
            "schema": {
              "description": "Either a full name or a name segment (name mask) of a host where registered agent\nis installed. If this parameter is provided, only agents which host names match the parameter\nvalue are returned. Name mask is specified using one of match-like functions:\n- `hlike` - host name starts with specified string.\n- `like` - host name contains specified string in any position.\n- `tlike` - host name ends with specified string.\n",
              "example": "hlike(server1)",
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Maximum number of registered agents to return in the response. If this parameter is not provided or\nset to zero, there is no limit on number of returned agents.\n",
            "in": "query",
            "schema": {
              "description": "Maximum number of registered agents to return in the response. If this parameter is not provided or\nset to zero, there is no limit on number of returned agents.\n",
              "example": 100,
              "type": "integer"
            }
          },
          {
            "name": "online",
            "description": "Flag that filters returned registered agents by their current responsiveness.\nIf true, only responsive agents will be returned. If false, only irresponsive agents will be returned.\n",
            "in": "query",
            "schema": {
              "description": "Flag that filters returned registered agents by their current responsiveness.\nIf true, only responsive agents will be returned. If false, only irresponsive agents will be returned.\n",
              "example": true,
              "type": "boolean"
            }
          },
          {
            "name": "order",
            "description": "Ordering requirements on returned sequence of registered agents. They are specified as\na comma-separated list of order specifications for agent attributes. Each attribute order\nspecification is either asc (non-descending order) or desc (non-ascending order) function\napplied to an attribute name.\nCurrently ordering by the following attributes is supported:\n- `hostname` - agents with same host names are further ordered in non-descending order by\ntheir agent identifiers\n",
            "in": "query",
            "schema": {
              "description": "Ordering requirements on returned sequence of registered agents. They are specified as\na comma-separated list of order specifications for agent attributes. Each attribute order\nspecification is either asc (non-descending order) or desc (non-ascending order) function\napplied to an attribute name.\nCurrently ordering by the following attributes is supported:\n- `hostname` - agents with same host names are further ordered in non-descending order by\ntheir agent identifiers\n",
              "example": "desc(hostname)",
              "type": "string"
            }
          },
          {
            "name": "os_family",
            "description": "Parameter that filters registered agents by OS family name they were built for. OS family name is case-insensitive.\n",
            "in": "query",
            "schema": {
              "description": "Parameter that filters registered agents by OS family name they were built for. OS family name is case-insensitive.\n",
              "enum": [
                "UNKNOWN",
                "WINDOWS",
                "LINUX",
                "MACOSX",
                "SOLARIS"
              ],
              "example": "SOLARIS",
              "type": "string"
            }
          },
          {
            "name": "tenant_id",
            "description": "Identifier of a tenant subtree root. Only agents that belong to tenants of this subtree\nare returned. If this parameter is missing, value from `X-Apigw-Tenant-Id` header is used.\nIf this header is also missing, tenant identifiers from relevant elements of scope\ncollection of access token are used.\n",
            "in": "query",
            "schema": {
              "description": "Identifier of a tenant subtree root. Only agents that belong to tenants of this subtree\nare returned. If this parameter is missing, value from `X-Apigw-Tenant-Id` header is used.\nIf this header is also missing, tenant identifiers from relevant elements of scope\ncollection of access token are used.\n",
              "example": "62",
              "type": "string"
            }
          },
          {
            "name": "unit",
            "description": "Name of registered agent unit. If this parameter is provided, only agents that have at\nleast one of specified units are returned.\n",
            "in": "query",
            "schema": {
              "description": "Name of registered agent unit. If this parameter is provided, only agents that have at\nleast one of specified units are returned.\n",
              "example": "atp-agent",
              "type": "string"
            }
          },
          {
            "name": "up_to_date",
            "description": "Flag specifying whether agents with current or outdated software should only be returned.\n",
            "in": "query",
            "schema": {
              "description": "Flag specifying whether agents with current or outdated software should only be returned.\n",
              "example": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection of registered agents was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentCollection"
                }
              }
            }
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "DeleteAgents",
        "description": "Cancels registration of the agents with Platform and deletes their service accounts.",
        "parameters": [
          {
            "name": "id",
            "description": "Identifier of agent to be deleted.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Identifier of agent to be deleted.",
              "example": "32b9375f-6400-4928-ae4f-5156e8aab21a",
              "type": "string"
            }
          },
          {
            "name": "force",
            "description": "Flag specifying whether agent registration should be cancelled even if this is the\nlast agent instance associated with a resource it manages. This flag is only respected\nfor agents that have MMS unit. Other agents are deleted unconditionally.\n",
            "in": "query",
            "schema": {
              "description": "Flag specifying whether agent registration should be cancelled even if this is the\nlast agent instance associated with a resource it manages. This flag is only respected\nfor agents that have MMS unit. Other agents are deleted unconditionally.\n",
              "default": false,
              "example": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Registration of specified agents with Platform was either successfully cancelled or didn't exist.",
            "content": {}
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Request violates some invariant.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_UPDATE_NOT_SUSPENDED",
                        "CLUSTER_ALREADY_EXISTS",
                        "CLUSTER_IS_NOT_EMPTY",
                        "HARDWARE_NODE_ALREADY_EXISTS",
                        "HARDWARE_NODE_IS_OCCUPIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_unregistrar",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/agents/update:force": {
      "post": {
        "operationId": "RunAgentUpdateNow",
        "description": "Launches agent(s) update operation disregarding maintenance window settings, if any.\nNote that if an empty agent ID collection is passed with the request, all tenant's agents\nbecome potential subject of update.\n\nMaximum number of agents being updated simultaneously is limited.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "IDs of agents to update.",
                "type": "object",
                "properties": {
                  "agent_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Agent(s) update request was accepted.",
            "content": {}
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_registrar",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/agents/{agent_id}": {
      "get": {
        "operationId": "FetchAgent",
        "description": "Fetches the specific agent.",
        "parameters": [
          {
            "name": "agent_id",
            "description": "The registered agent ID.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "The registered agent ID.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Agent description was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Agent description.",
                  "type": "object",
                  "required": [
                    "online",
                    "enabled",
                    "installer_version",
                    "meta",
                    "units",
                    "name",
                    "tenant",
                    "platform",
                    "registration_date",
                    "core_version",
                    "id",
                    "timezone",
                    "auto_update",
                    "registration_id",
                    "hostname"
                  ],
                  "properties": {
                    "online": {
                      "description": "Flag designating if the agent is currently online.",
                      "type": "boolean"
                    },
                    "network": {
                      "description": "Agent host's network configuration.",
                      "type": "object",
                      "required": [
                        "network_interfaces"
                      ],
                      "properties": {
                        "gateway": {
                          "description": "IP address or host name of the gateway.",
                          "type": "string"
                        },
                        "network_interfaces": {
                          "description": "Network interfaces at agent's host.",
                          "type": "array",
                          "minItems": 1,
                          "items": {
                            "$ref": "#/components/schemas/NetworkInterface"
                          }
                        },
                        "dns_server_ip_addresses": {
                          "description": "IP addresses of DNS servers. This collection may include addresses of both IPv4 and IPv6 servers.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "enabled": {
                      "description": "Flag designating if the agent is currently enabled.",
                      "type": "boolean"
                    },
                    "comment": {
                      "description": "User-added comment on the agent.",
                      "type": "string"
                    },
                    "installer_version": {
                      "description": "Agent installer versions.",
                      "type": "object",
                      "required": [
                        "current"
                      ],
                      "properties": {
                        "current": {
                          "description": "The currently installed version.",
                          "type": "object",
                          "required": [
                            "minor",
                            "build_number",
                            "major"
                          ],
                          "properties": {
                            "minor": {
                              "description": "Minor version number.",
                              "type": "integer",
                              "minimum": 0
                            },
                            "build_number": {
                              "description": "Build number.",
                              "type": "integer",
                              "minimum": 0
                            },
                            "major": {
                              "description": "Major version number.",
                              "type": "integer",
                              "minimum": 0
                            }
                          }
                        },
                        "latest": {
                          "description": "The latest available version. It is only present if the latest version is newer than the current one.",
                          "type": "object",
                          "required": [
                            "minor",
                            "build_number",
                            "major"
                          ],
                          "properties": {
                            "minor": {
                              "description": "Minor version number.",
                              "type": "integer",
                              "minimum": 0
                            },
                            "build_number": {
                              "description": "Build number.",
                              "type": "integer",
                              "minimum": 0
                            },
                            "major": {
                              "description": "Major version number.",
                              "type": "integer",
                              "minimum": 0
                            }
                          }
                        }
                      }
                    },
                    "unattended_update": {
                      "description": "Details of unattended agent update. If the agent does not support unattended update, the value is absent.",
                      "type": "object",
                      "required": [
                        "automatic",
                        "update_channel",
                        "status"
                      ],
                      "properties": {
                        "automatic": {
                          "description": "Boolean flag specifying whether agent should be automatically updated to the latest version available in its update channel.",
                          "default": false,
                          "type": "boolean"
                        },
                        "inherited_from_tenant_id": {
                          "description": "If the update details were inherited from a parent tenant, this is the tenant ID. Otherwise, the value is absent.",
                          "example": "50",
                          "type": "string"
                        },
                        "maintenance_window": {
                          "description": "Time intervals when agent update is allowed. If the window is not specified, this means that agent can be updated at any time. The window should be ignored if automatic update is disabled.",
                          "type": "object",
                          "required": [
                            "time_from",
                            "days_of_week",
                            "time_to"
                          ],
                          "properties": {
                            "time_from": {
                              "description": "Time of day when agent maintenance may start. It is agent local time.",
                              "example": "08:33:19",
                              "type": "string",
                              "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                              "minLength": 8,
                              "maxLength": 8
                            },
                            "days_of_week": {
                              "description": "Days of week when agent maintenance may start (window's start time belongs to these days). They can be given in any order but duplicates are not allowed.",
                              "type": "array",
                              "maxItems": 7,
                              "minItems": 1,
                              "uniqueItems": true,
                              "items": {
                                "$ref": "#/components/schemas/DayOfWeek"
                              }
                            },
                            "time_to": {
                              "description": "Time of day agent maintenance must complete before. It is agent local time. If this time is less than or equal to maintenance start time, this means the maintenance may proceed until this time next day.",
                              "example": "08:33:19",
                              "type": "string",
                              "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                              "minLength": 8,
                              "maxLength": 8
                            }
                          }
                        },
                        "update_channel": {
                          "$ref": "#/components/schemas/AgentUpdateChannel"
                        },
                        "status": {
                          "description": "Current status of unattended update of particular agent.",
                          "enum": [
                            "OK",
                            "SUSPENDED_ON_FAILURES"
                          ],
                          "type": "string"
                        }
                      }
                    },
                    "meta": {
                      "description": "The agent metadata.",
                      "type": "object"
                    },
                    "units": {
                      "description": "Components the agent consists of. This can be an empty list if the agent has only Agent Core component installed.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SoftwareUnit"
                      }
                    },
                    "name": {
                      "description": "Agent name as seen by a user.",
                      "example": "My Appliance 6490-78",
                      "type": "string"
                    },
                    "tenant": {
                      "description": "Tenant descriptor of the agent owner.",
                      "type": "object",
                      "required": [
                        "id",
                        "name"
                      ],
                      "properties": {
                        "id": {
                          "description": "The tenant identifier.",
                          "type": "string"
                        },
                        "name": {
                          "description": "The tenant name.",
                          "type": "string"
                        }
                      }
                    },
                    "platform": {
                      "description": "Descriptor of operating system the agent is running on.",
                      "type": "object",
                      "required": [
                        "name",
                        "version_minor",
                        "family",
                        "arch",
                        "version_major"
                      ],
                      "properties": {
                        "service_pack": {
                          "description": "OS service pack number if applicable.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "name": {
                          "description": "Full Operating System name.",
                          "type": "string"
                        },
                        "version_minor": {
                          "description": "OS minor version number.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "sku": {
                          "description": "OS stock keeping unit ID.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "product_type": {
                          "description": "OS product type if applicable.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "family": {
                          "description": "Operating System family.",
                          "enum": [
                            "UNKNOWN",
                            "WINDOWS",
                            "LINUX",
                            "MACOSX",
                            "SOLARIS"
                          ],
                          "type": "string"
                        },
                        "arch": {
                          "description": "Operating System target hardware architecture.",
                          "enum": [
                            "X86",
                            "X64",
                            "ARM",
                            "ARM64"
                          ],
                          "type": "string"
                        },
                        "version_major": {
                          "description": "OS major version number.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "caps": {
                          "description": "OS capability mask if applicable.",
                          "type": "integer",
                          "format": "int32"
                        },
                        "suite_mask": {
                          "description": "OS suite mask if applicable.",
                          "type": "integer",
                          "format": "int32"
                        }
                      }
                    },
                    "registration_date": {
                      "description": "Agent registration date in RFC 1123 format with numeric time zone.",
                      "example": "Tue, 04 Jun 2019 18:32:26 +0300",
                      "type": "string"
                    },
                    "core_version": {
                      "description": "Agent Core version.",
                      "type": "object",
                      "required": [
                        "current"
                      ],
                      "properties": {
                        "current": {
                          "description": "The currently installed version.",
                          "type": "object",
                          "required": [
                            "build",
                            "release_id"
                          ],
                          "properties": {
                            "build": {
                              "description": "Build number.",
                              "example": "42",
                              "type": "string"
                            },
                            "release_id": {
                              "description": "Release identifier.",
                              "example": "1.0.0",
                              "type": "string"
                            },
                            "release_name": {
                              "description": "Human-readable release name.",
                              "type": "string"
                            }
                          }
                        },
                        "latest": {
                          "description": "The latest available version. It is only present if the latest version is newer than the current one.",
                          "type": "object",
                          "required": [
                            "build",
                            "release_id"
                          ],
                          "properties": {
                            "build": {
                              "description": "Build number.",
                              "example": "42",
                              "type": "string"
                            },
                            "release_id": {
                              "description": "Release identifier.",
                              "example": "1.0.0",
                              "type": "string"
                            },
                            "release_name": {
                              "description": "Human-readable release name.",
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "id": {
                      "description": "Unique agent ID. This must be valid string representation of a UUID. The ID is used for client ID construction of the agent service account.",
                      "example": "3953e625-d0a2-420c-86a6-afb9d91aca3e",
                      "type": "string"
                    },
                    "timezone": {
                      "$ref": "#/components/schemas/TimeZoneOffset"
                    },
                    "auto_update": {
                      "description": "Flag specifying whether the agent is configured to update in automatic unattended mode.\nDeprecated. Use 'unattended_update' property instead: if it is absent, the agent cannot\nupdate automatically; otherwise, check value of 'unattended_update.automatic' property.\n",
                      "type": "boolean"
                    },
                    "distribution_type": {
                      "description": "Software distribution type.",
                      "example": "SPLA_INFRASTRUCTURE",
                      "type": "string"
                    },
                    "registration_id": {
                      "description": "Agent registration ID.",
                      "example": "eO2uM8QwSIC3nh0FxiZmjArpW-U",
                      "type": "string"
                    },
                    "hostname": {
                      "description": "Host name.",
                      "example": "server1.acme.local",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The requested entity cannot be found.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_NOT_FOUND",
                        "AGENT_UNIT_NOT_FOUND",
                        "TENANT_NOT_FOUND",
                        "HARDWARE_NODE_NOT_FOUND",
                        "NOT_FOUND",
                        "UNATTENDED_AGENT_UPDATE_SETTINGS_NOT_FOUND"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "DeleteAgent",
        "description": "Cancels the agent registration with Platform and deletes agent service account.",
        "parameters": [
          {
            "name": "force",
            "description": "Flag specifying whether agent registration should be cancelled even if\nthis is the last agent instance associated with a resource it manages.\nThis flag is only respected for an agent that has MMS unit. Any other agent is deleted unconditionally.\n",
            "in": "query",
            "schema": {
              "description": "Flag specifying whether agent registration should be cancelled even if\nthis is the last agent instance associated with a resource it manages.\nThis flag is only respected for an agent that has MMS unit. Any other agent is deleted unconditionally.\n",
              "default": false,
              "example": true,
              "type": "boolean"
            }
          },
          {
            "name": "agent_id",
            "description": "The registered agent ID.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "The registered agent ID.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Registration of specified agent with Platform was either successfully cancelled or didn't exist.",
            "content": {}
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Request violates some invariant.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_UPDATE_NOT_SUSPENDED",
                        "CLUSTER_ALREADY_EXISTS",
                        "CLUSTER_IS_NOT_EMPTY",
                        "HARDWARE_NODE_ALREADY_EXISTS",
                        "HARDWARE_NODE_IS_OCCUPIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_unregistrar",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/agent_update_references": {
      "get": {
        "operationId": "FetchAgentUpdateReferenceByAttributes",
        "description": "Fetches reference to agent update package that matches specified update channel, OS family,\nOS architecture and white-labeled flag attributes.\n",
        "parameters": [
          {
            "name": "update_channel",
            "description": "Update channel the agent update belongs to.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Update channel the agent update belongs to.",
              "enum": [
                "CURRENT",
                "STABLE"
              ],
              "type": "string"
            }
          },
          {
            "name": "os_family",
            "description": "Name of operating system family the update was built for.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Name of operating system family the update was built for.",
              "enum": [
                "WINDOWS",
                "LINUX",
                "MACOSX",
                "SOLARIS"
              ],
              "type": "string"
            }
          },
          {
            "name": "os_arch",
            "description": "CPU architecture of operating system the update was built for.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "CPU architecture of operating system the update was built for.",
              "enum": [
                "X86",
                "X64",
                "ARM",
                "ARM64"
              ],
              "type": "string"
            }
          },
          {
            "name": "white_labeled",
            "description": "Flag specifying whether information about the update package that installs an agent that does not contain references to Acronis as its manufacturer ought to be returned.",
            "in": "query",
            "schema": {
              "description": "Flag specifying whether information about the update package that installs an agent that does not contain references to Acronis as its manufacturer ought to be returned.",
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Agent update reference was successfully fetched.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Agent update reference.",
                  "type": "object",
                  "required": [
                    "version",
                    "os_family",
                    "os_arch",
                    "url",
                    "white_labeled",
                    "update_channel"
                  ],
                  "properties": {
                    "version": {
                      "description": "Version of the update package.",
                      "type": "object",
                      "required": [
                        "build",
                        "release_id"
                      ],
                      "properties": {
                        "build": {
                          "description": "Build number.",
                          "example": "42",
                          "type": "string"
                        },
                        "release_id": {
                          "description": "Release identifier.",
                          "example": "1.0.0",
                          "type": "string"
                        },
                        "release_name": {
                          "description": "Human-readable release name.",
                          "type": "string"
                        }
                      }
                    },
                    "os_family": {
                      "description": "Name of operating system family the update was built for.",
                      "enum": [
                        "WINDOWS",
                        "LINUX",
                        "MACOSX",
                        "SOLARIS"
                      ],
                      "type": "string"
                    },
                    "os_arch": {
                      "description": "CPU architecture of operating system the update was built for.",
                      "enum": [
                        "X86",
                        "X64",
                        "ARM",
                        "ARM64"
                      ],
                      "type": "string"
                    },
                    "url": {
                      "description": "The update package URL.",
                      "type": "string"
                    },
                    "white_labeled": {
                      "description": "Flag specifying whether the update package installs an agent that does not contain references to Acronis as its manufacturer.",
                      "type": "boolean"
                    },
                    "update_channel": {
                      "description": "Update channel the agent update belongs to.",
                      "enum": [
                        "CURRENT",
                        "STABLE"
                      ],
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The requested entity cannot be found.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_NOT_FOUND",
                        "AGENT_UNIT_NOT_FOUND",
                        "TENANT_NOT_FOUND",
                        "HARDWARE_NODE_NOT_FOUND",
                        "NOT_FOUND",
                        "UNATTENDED_AGENT_UPDATE_SETTINGS_NOT_FOUND"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_update_reference_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/agent_update_settings": {
      "put": {
        "operationId": "UploadAgentUpdateSettings",
        "description": "Stores new or updates existing agent-specific or/and master agent update settings. The agent must be\nregistered to have its specific settings stored.\n\nEach settings object is considered to be agent-specific if it has agent ID field. Otherwise, it is treated\nas master settings. The collection must contain single item for each agent or/and tenant.\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "The collection of settings to store.",
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "description": "Collection of unattended agent update settings to be stored by Agent Manager.",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/AgentUpdateSettingsIn"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Unattended agent update settings were successfully stored.",
            "content": {}
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_update_settings_modifier",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "DeleteAgentUpdateSettingsCollection",
        "description": "Deletes collection of existing agent-specific or master unattended agent update settings.",
        "parameters": [
          {
            "name": "id",
            "description": "Identifier of agent or tenant which unattended agent update settings to be deleted.",
            "required": true,
            "in": "query",
            "schema": {
              "description": "Identifier of agent or tenant which unattended agent update settings to be deleted.",
              "example": "32b9375f-6400-4928-ae4f-5156e8aab21a",
              "type": "string"
            }
          },
          {
            "name": "master",
            "description": "Boolean flag specifying whether master unattended agent update settings are to be deleted. If the value is true then `id` query parameter is interpreted as ID of tenant the settings belong to. Otherwise, the `id` is interpreted as agent ID.",
            "in": "query",
            "schema": {
              "description": "Boolean flag specifying whether master unattended agent update settings are to be deleted. If the value is true then `id` query parameter is interpreted as ID of tenant the settings belong to. Otherwise, the `id` is interpreted as agent ID.",
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Specified agent-specific or master unattended agent update settings were successfully deleted, did not exist or the caller does not have access to them.",
            "content": {}
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_update_settings_modifier",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/agent_update_settings/{id}": {
      "get": {
        "operationId": "FetchAgentUpdateSettings",
        "description": "Fetches agent-specific or master unattended agent update settings.\n\nIf agent-specific settings are requested and the caller has access to tenant that the agent belongs to\naccording to usual tenant accessibility rules, Agent Manager checks if settings stored specifically for\nthis agent exist. If they do, they are returned. Otherwise, Agent Manager returns settings it would\nreturn in response to request for master settings of agent's tenant, with the only difference being that\nif the master settings are found, they have agent identifier of the agent and do not have tenant\nidentifier on output.\n\nIf master settings of a tenant are requested, Agent Manager behaves differently depending on whether the\ncaller has access to specified tenant according to usual tenant accessibility rules. If access is\ngranted but tenant-specific settings are absent, Agent Manager searches for their substitute among\ntenants up tenant hierarchy along locator of specified tenant. This locator omits all tenants between\nthe hierarchy root (as it is seen to Agent Manager) and a tenant with visibility barrier set nearest to\nspecified tenant. This way the caller may retrieve master settings from a tenant beyond its usual\naccess scope.\n\nIf specified tenant is inaccessible to the caller, search for a substitute is not performed.\nSettings of the tenant are only returned to the caller if there is a tenant from caller's access scope\nthey would be returned for.\n\nIf a substitute for master settings is found, it has tenant identifier of the specified tenant on output.\n",
        "parameters": [
          {
            "name": "master",
            "description": "Boolean flag specifying whether master unattended agent update settings should be returned. If the value is true then `{id}` is interpreted as the ID of tenant the settings belong to. Otherwise, the `{id}` is interpreted as the agent ID.",
            "in": "query",
            "schema": {
              "description": "Boolean flag specifying whether master unattended agent update settings should be returned. If the value is true then `{id}` is interpreted as the ID of tenant the settings belong to. Otherwise, the `{id}` is interpreted as the agent ID.",
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "id",
            "description": "If query parameter is false or missing, this is a registered agent ID. Otherwise, this is a tenant ID.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "If query parameter is false or missing, this is a registered agent ID. Otherwise, this is a tenant ID.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Unattended agent update settings were successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Agent update settings.",
                  "type": "object",
                  "required": [
                    "automatic",
                    "update_channel"
                  ],
                  "properties": {
                    "agent_id": {
                      "description": "ID of a registered agent the settings belong to. This must only be present if tenant ID is absent.",
                      "example": "836fe933-d232-4ed1-b3be-2218f3bbf134",
                      "type": "string"
                    },
                    "automatic": {
                      "description": "Boolean flag specifying whether agent should be automatically updated to the latest version available in its update channel.",
                      "default": false,
                      "type": "boolean"
                    },
                    "inherited_from_tenant_id": {
                      "description": "If the update details were inherited from a parent tenant, this is the tenant ID. Otherwise, the value is absent.",
                      "example": "50",
                      "type": "string"
                    },
                    "maintenance_window": {
                      "description": "Time intervals when agent update is allowed. If the window is not specified, this means that agent can be updated at any time. The window should be ignored if automatic update is disabled.",
                      "type": "object",
                      "required": [
                        "time_from",
                        "days_of_week",
                        "time_to"
                      ],
                      "properties": {
                        "time_from": {
                          "description": "Time of day when agent maintenance may start. It is agent local time.",
                          "example": "08:33:19",
                          "type": "string",
                          "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                          "minLength": 8,
                          "maxLength": 8
                        },
                        "days_of_week": {
                          "description": "Days of week when agent maintenance may start (window's start time belongs to these days). They can be given in any order but duplicates are not allowed.",
                          "type": "array",
                          "maxItems": 7,
                          "minItems": 1,
                          "uniqueItems": true,
                          "items": {
                            "$ref": "#/components/schemas/DayOfWeek"
                          }
                        },
                        "time_to": {
                          "description": "Time of day agent maintenance must complete before. It is agent local time. If this time is less than or equal to maintenance start time, this means the maintenance may proceed until this time next day.",
                          "example": "08:33:19",
                          "type": "string",
                          "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                          "minLength": 8,
                          "maxLength": 8
                        }
                      }
                    },
                    "update_channel": {
                      "$ref": "#/components/schemas/AgentUpdateChannel"
                    },
                    "tenant_id": {
                      "description": "ID of a tenant the settings belong to. This must only be present if agent ID is absent.",
                      "example": "62",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The requested entity cannot be found.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_NOT_FOUND",
                        "AGENT_UNIT_NOT_FOUND",
                        "TENANT_NOT_FOUND",
                        "HARDWARE_NODE_NOT_FOUND",
                        "NOT_FOUND",
                        "UNATTENDED_AGENT_UPDATE_SETTINGS_NOT_FOUND"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_update_settings_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      },
      "delete": {
        "operationId": "DeleteAgentUpdateSettings",
        "description": "Deletes existing agent-specific or master unattended agent update settings.",
        "parameters": [
          {
            "name": "master",
            "description": "Boolean flag specifying whether master unattended agent update settings are to be deleted. If the value is true then `{id}` is interpreted as the ID of tenant the settings belong to. Otherwise, the `{id}` is interpreted as the agent ID.",
            "in": "query",
            "schema": {
              "description": "Boolean flag specifying whether master unattended agent update settings are to be deleted. If the value is true then `{id}` is interpreted as the ID of tenant the settings belong to. Otherwise, the `{id}` is interpreted as the agent ID.",
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "id",
            "description": "If query parameter is false or missing, this is a registered agent ID. Otherwise, this is a tenant ID.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "If query parameter is false or missing, this is a registered agent ID. Otherwise, this is a tenant ID.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Specified agent-specific or master unattended agent update settings were successfully deleted, did not exist or the caller does not have access to them.",
            "content": {}
          },
          "400": {
            "description": "Request is malformed.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "BAD_REQUEST",
                        "BAD_UNATTENDED_AGENT_UPDATE_SETTINGS",
                        "UNMARSHALLING_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_update_settings_modifier",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/hardware_nodes": {
      "get": {
        "operationId": "FetchHardwareNodes",
        "description": "Fetches all hardware nodes visible by the specified tenant.\n\nResult includes all nodes registered in this tenant and in all its child tenants that don't\nblock parent access using visibility barrier.\n",
        "responses": {
          "200": {
            "description": "Hardware node list was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hardware node list.",
                  "type": "object",
                  "required": [
                    "items"
                  ],
                  "properties": {
                    "items": {
                      "description": "Collection of hardware node descriptions.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/HardwareNode"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    },
    "/hardware_nodes/{node_id}": {
      "get": {
        "operationId": "FetchHardwareNode",
        "description": "Fetches the specific hardware node.",
        "parameters": [
          {
            "name": "node_id",
            "description": "The node ID.",
            "required": true,
            "in": "path",
            "schema": {
              "description": "The node ID.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Hardware node description was successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Hardware node description.",
                  "type": "object",
                  "required": [
                    "cpu",
                    "storage",
                    "ram",
                    "id",
                    "tenant_id"
                  ],
                  "properties": {
                    "cpu": {
                      "description": "CPU description.",
                      "type": "object",
                      "required": [
                        "model",
                        "slots",
                        "cores"
                      ],
                      "properties": {
                        "model": {
                          "description": "CPU model name.",
                          "example": "Intel Xeon E5-2620 V4 Broadwell-EP 2.0 GHz",
                          "type": "string"
                        },
                        "slots": {
                          "description": "Total number of CPU slots.",
                          "example": 2,
                          "type": "integer",
                          "format": "int32"
                        },
                        "cores": {
                          "description": "Total number of CPU cores.",
                          "example": 16,
                          "type": "integer",
                          "format": "int32"
                        }
                      }
                    },
                    "agent_id": {
                      "description": "The identifier of the agent managing the node.",
                      "type": "string"
                    },
                    "model": {
                      "description": "Hardware model name.",
                      "example": "BDR-R1008",
                      "type": "string"
                    },
                    "storage": {
                      "description": "Storage description.",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/HardwareNodeStorage"
                      }
                    },
                    "ram": {
                      "description": "RAM description.",
                      "type": "object",
                      "required": [
                        "capacity"
                      ],
                      "properties": {
                        "model": {
                          "description": "Model of RAM module.\n\nThe model is not specified if several modules of different models are\ninstalled.\n",
                          "example": "Samsung M393A4K40BB1-CRC",
                          "type": "string"
                        },
                        "capacity": {
                          "description": "Total physical RAM capacity in bytes.",
                          "example": 137438953472,
                          "type": "integer",
                          "format": "int64"
                        }
                      }
                    },
                    "hardware_id": {
                      "description": "Hardware unique identifier.",
                      "type": "string"
                    },
                    "id": {
                      "description": "Hardware node internal ID.",
                      "type": "string"
                    },
                    "tenant_id": {
                      "description": "Tenant ID of the node owner.",
                      "type": "string"
                    },
                    "serial_number": {
                      "description": "Hardware serial number.",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "User authorization failed. There are many reasons for the error.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "UNAUTHORIZED_REQUEST",
                        "AUTHENTICATION_TIMEOUT"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "GENERAL"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Access was denied for roles a user plays in Platform.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "ACCESS_DENIED"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The requested entity cannot be found.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "AGENT_NOT_FOUND",
                        "AGENT_UNIT_NOT_FOUND",
                        "TENANT_NOT_FOUND",
                        "HARDWARE_NODE_NOT_FOUND",
                        "NOT_FOUND",
                        "UNATTENDED_AGENT_UPDATE_SETTINGS_NOT_FOUND"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Service encountered an unexpected condition that prevented it from fulfilling the request.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "REST error object.",
                  "type": "object",
                  "required": [
                    "code",
                    "domain",
                    "debug"
                  ],
                  "properties": {
                    "code": {
                      "description": "Domain-specific error code.",
                      "enum": [
                        "MARSHALLING_ERROR",
                        "DATABASE_ERROR",
                        "BAD_RESPONSE",
                        "COMMUNICATION_ERROR"
                      ],
                      "type": "string"
                    },
                    "domain": {
                      "description": "Business domain the error belongs to.",
                      "enum": [
                        "AGENT_MANAGER"
                      ],
                      "type": "string"
                    },
                    "debug": {
                      "description": "Additional information about the error.",
                      "type": "object",
                      "required": [
                        "msg"
                      ],
                      "properties": {
                        "msg": {
                          "description": "Error description.",
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0_user": [
              "urn:acronis.com::agent_manager::agent_viewer",
              "urn:acronis.com::agent_manager::admin"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AgentCollection": {
        "description": "Collection of registered agents.",
        "example": {
          "items": [
            {
              "id": "8f27a66f-71ff-4b5c-b665-75ec0f42b849",
              "core_version": {
                "current": {
                  "release_id": "1.0.0",
                  "build": "42"
                }
              },
              "units": [
                {
                  "name": "atp",
                  "version": {
                    "current": {
                      "release_id": "1.0.0",
                      "build": "42"
                    },
                    "latest": {
                      "release_id": "1.0.1",
                      "build": "57"
                    }
                  }
                },
                {
                  "name": "backup",
                  "version": {
                    "current": {
                      "release_id": "1.0.0",
                      "build": "42"
                    }
                  }
                }
              ],
              "auto_update": true,
              "meta": {},
              "hostname": "server1.acme.local",
              "platform": {
                "family": "WINDOWS",
                "arch": "X64",
                "name": "Windows 2019",
                "version_major": 10,
                "version_minor": 0
              },
              "tenant": {
                "id": "64",
                "name": "ACME"
              },
              "name": "My Appliance 6490-78",
              "online": true,
              "enabled": true,
              "registration_date": "Tue, 04 Jun 2019 18:32:26 +0300",
              "registration_id": "eO2uM8QwSIC3nh0FxiZmjArpW-U",
              "installer_version": {
                "current": {
                  "major": 15,
                  "minor": 0,
                  "build_number": 27714
                }
              },
              "timezone": "+0300"
            }
          ],
          "paging": {
            "cursors": {
              "after": "aGVhbHRoY2hlY2s6C",
              "before": "CiAgdGltZW91dDogMTBzCi"
            }
          }
        },
        "type": "object",
        "required": [
          "items",
          "paging"
        ],
        "properties": {
          "items": {
            "description": "Collection of registered agents.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Agent"
            }
          },
          "paging": {
            "description": "Position descriptor of returned collection in entire sequence of agents that satisfy the\nsame filter and ordering requirements as returned agents do.\n",
            "type": "object",
            "required": [
              "cursors"
            ],
            "properties": {
              "cursors": {
                "description": "",
                "type": "object",
                "properties": {
                  "after": {
                    "description": "Opaque string that designates the last element of a resource page. If this parameter is\nmissing this means that the page is the last one in associated resource sequence.\n",
                    "example": "aGVhbHRoY2hlY2s6C",
                    "type": "string"
                  },
                  "before": {
                    "description": "Opaque string that designates the first element of a resource page. If this parameter is\nmissing this means that the page is the first one in associated resource sequence.\n",
                    "example": "aGVhbHRoY2hlY2s6C",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "TimeZoneOffset": {
        "description": "Agent's time zone offset from UTC time zone in SHHMM format, where:\n  \n  - S is either '+' or '-'\n  - HH is number of hours [00,23]\n  - MM is number of minutes [00,59]\n\nFor zero offset, 'UTC' string can be used.\n",
        "example": "+0300",
        "type": "string",
        "pattern": "^UTC|(?:\\+|-)(?:[0-1][0-9]|2[0-3])[0-5][0-9]$"
      },
      "NetworkInterface": {
        "description": "A network interface of a host.",
        "example": {
          "cidr_notations": [
            "10.110.64.0/27",
            "2a00:1370:8127:c109:0812:d5c0:1800:0000/102"
          ],
          "mac_address": "44-AF-28-1E-54-8C"
        },
        "type": "object",
        "required": [
          "cidr_notations"
        ],
        "properties": {
          "cidr_notations": {
            "description": "Network IP addresses and their associated network masks in CIDR notation. This collection may include items for both IPv4 and IPv6 protocol versions.",
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "mac_address": {
            "description": "MAC address of the network interface.",
            "type": "string"
          }
        }
      },
      "AgentUpdateChannel": {
        "description": "Source of new agent versions.",
        "enum": [
          "CURRENT",
          "STABLE"
        ],
        "type": "string"
      },
      "DayOfWeek": {
        "description": "Day of week specifier.",
        "enum": [
          "MONDAY",
          "TUESDAY",
          "WEDNESDAY",
          "THURSDAY",
          "FRIDAY",
          "SATURDAY",
          "SUNDAY"
        ],
        "type": "string"
      },
      "SoftwareUnit": {
        "description": "Unit name. This must be specified in Agent Manager configuration and there must be corresponding client role in Backup Account Server configuration.",
        "type": "object",
        "required": [
          "name",
          "version"
        ],
        "properties": {
          "name": {
            "description": "Unit name.",
            "type": "string"
          },
          "version": {
            "description": "Unit version.",
            "type": "object",
            "required": [
              "current"
            ],
            "properties": {
              "current": {
                "description": "The currently installed version.",
                "type": "object",
                "required": [
                  "build",
                  "release_id"
                ],
                "properties": {
                  "build": {
                    "description": "Build number.",
                    "example": "42",
                    "type": "string"
                  },
                  "release_id": {
                    "description": "Release identifier.",
                    "example": "1.0.0",
                    "type": "string"
                  },
                  "release_name": {
                    "description": "Human-readable release name.",
                    "type": "string"
                  }
                }
              },
              "latest": {
                "description": "The latest available version. It is only present if the latest version is newer than the current one.",
                "type": "object",
                "required": [
                  "build",
                  "release_id"
                ],
                "properties": {
                  "build": {
                    "description": "Build number.",
                    "example": "42",
                    "type": "string"
                  },
                  "release_id": {
                    "description": "Release identifier.",
                    "example": "1.0.0",
                    "type": "string"
                  },
                  "release_name": {
                    "description": "Human-readable release name.",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "AgentUpdateSettingsIn": {
        "description": "Unattended agent update settings to be stored by Agent Manager. The settings can be assigned either to a particular agent instance or to a tenant. In the latter case they are called master settings and apply to every agent that belongs to the tenant and does not have its own settings assigned. Master settings also recursively apply to tenants down tenant hierarchy until a tenant with its own master settings or visibility barrier set is encountered.",
        "type": "object",
        "required": [
          "automatic",
          "update_channel"
        ],
        "properties": {
          "agent_id": {
            "description": "ID of a registered agent the settings belong to. This must only be present if tenant ID is absent.",
            "example": "836fe933-d232-4ed1-b3be-2218f3bbf134",
            "type": "string"
          },
          "automatic": {
            "description": "Boolean flag specifying whether agent should be automatically updated to the latest version available in its update channel.",
            "default": false,
            "type": "boolean"
          },
          "maintenance_window": {
            "description": "Time intervals when agent update is allowed. If the window is not specified, this means that agent can be updated at any time. The window should be ignored if automatic update is disabled.",
            "type": "object",
            "required": [
              "time_from",
              "days_of_week",
              "time_to"
            ],
            "properties": {
              "time_from": {
                "description": "Time of day when agent maintenance may start. It is agent local time.",
                "example": "08:33:19",
                "type": "string",
                "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                "minLength": 8,
                "maxLength": 8
              },
              "days_of_week": {
                "description": "Days of week when agent maintenance may start (window's start time belongs to these days). They can be given in any order but duplicates are not allowed.",
                "type": "array",
                "maxItems": 7,
                "minItems": 1,
                "uniqueItems": true,
                "items": {
                  "$ref": "#/components/schemas/DayOfWeek"
                }
              },
              "time_to": {
                "description": "Time of day agent maintenance must complete before. It is agent local time. If this time is less than or equal to maintenance start time, this means the maintenance may proceed until this time next day.",
                "example": "08:33:19",
                "type": "string",
                "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                "minLength": 8,
                "maxLength": 8
              }
            }
          },
          "update_channel": {
            "$ref": "#/components/schemas/AgentUpdateChannel"
          },
          "tenant_id": {
            "description": "ID of a tenant the settings belong to. This must only be present if agent ID is absent. It is possible to omit both identifiers, in which case value from `X-Apigw-Tenant-Id` request header is used. If the header is also absent, root of tenant hierarchy as it is seen to Agent Manager (according to properties of its service account) is used.",
            "example": "62",
            "type": "string"
          }
        }
      },
      "HardwareNode": {
        "description": "Hardware node descriptor.",
        "example": {
          "id": "8f27a66f-71ff-4b5c-b665-75ec0f42b849",
          "cpu": {
            "model": "Intel Xeon E5-2620 V4 Broadwell-EP 2.0 GHz",
            "slots": 4,
            "cores": 32
          },
          "ram": {
            "capacity": 68719476736
          },
          "storage": [
            {
              "type": "SSD",
              "capacity": 687194767360
            }
          ],
          "tenant_id": "37"
        },
        "type": "object",
        "required": [
          "id",
          "cpu",
          "ram",
          "storage",
          "tenant_id"
        ],
        "properties": {
          "id": {
            "description": "Hardware node internal ID.",
            "type": "string"
          },
          "agent_id": {
            "description": "The identifier of the agent managing the node.",
            "type": "string"
          },
          "model": {
            "description": "Hardware model name.",
            "example": "BDR-R1008",
            "type": "string"
          },
          "hardware_id": {
            "description": "Hardware unique identifier.",
            "type": "string"
          },
          "serial_number": {
            "description": "Hardware serial number.",
            "type": "string"
          },
          "cpu": {
            "description": "CPU description.",
            "type": "object",
            "required": [
              "model",
              "slots",
              "cores"
            ],
            "properties": {
              "model": {
                "description": "CPU model name.",
                "example": "Intel Xeon E5-2620 V4 Broadwell-EP 2.0 GHz",
                "type": "string"
              },
              "slots": {
                "description": "Total number of CPU slots.",
                "example": 2,
                "type": "integer",
                "format": "int32"
              },
              "cores": {
                "description": "Total number of CPU cores.",
                "example": 16,
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "ram": {
            "description": "RAM description.",
            "type": "object",
            "required": [
              "capacity"
            ],
            "properties": {
              "model": {
                "description": "Model of RAM module.\n\nThe model is not specified if several modules of different models are\ninstalled.\n",
                "example": "Samsung M393A4K40BB1-CRC",
                "type": "string"
              },
              "capacity": {
                "description": "Total physical RAM capacity in bytes.",
                "example": 137438953472,
                "type": "integer",
                "format": "int64"
              }
            }
          },
          "storage": {
            "description": "Storage description.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HardwareNodeStorage"
            }
          },
          "tenant_id": {
            "description": "Tenant ID of the node owner.",
            "type": "string"
          }
        }
      },
      "HardwareNodeStorage": {
        "description": "Hardware node storage device description.",
        "type": "object",
        "required": [
          "type",
          "capacity"
        ],
        "properties": {
          "type": {
            "description": "Type of the device.",
            "example": "SSD",
            "type": "string"
          },
          "capacity": {
            "description": "Total physical capacity of the device in bytes.",
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "Agent": {
        "description": "An agent registered with Platform.",
        "example": {
          "id": "8f27a66f-71ff-4b5c-b665-75ec0f42b849",
          "core_version": {
            "current": {
              "release_id": "1.0.0",
              "build": "42"
            }
          },
          "units": [
            {
              "name": "atp",
              "version": {
                "current": {
                  "release_id": "1.0.0",
                  "build": "42"
                },
                "latest": {
                  "release_id": "1.0.1",
                  "build": "57"
                }
              }
            },
            {
              "name": "backup",
              "version": {
                "current": {
                  "release_id": "1.0.0",
                  "build": "42"
                }
              }
            }
          ],
          "auto_update": true,
          "unattended_update": {
            "inherited_from_tenant_id": "50",
            "update_channel": "CURRENT",
            "automatic": true,
            "maintenance_window": {
              "time_from": "22:15:00",
              "time_to": "05:00:00",
              "days_of_week": [
                "MONDAY",
                "WEDNESDAY",
                "SATURDAY"
              ]
            },
            "status": "OK"
          },
          "meta": {},
          "hostname": "server1.acme.local",
          "platform": {
            "family": "WINDOWS",
            "arch": "X64",
            "name": "Windows 2019",
            "version_major": 10,
            "version_minor": 0
          },
          "tenant": {
            "id": "64",
            "name": "ACME"
          },
          "name": "My Appliance 6490-78",
          "online": true,
          "enabled": true,
          "registration_date": "Tue, 04 Jun 2019 18:32:26 -0700",
          "registration_id": "eO2uM8QwSIC3nh0FxiZmjArpW-U",
          "network": {
            "network_interfaces": [
              {
                "cidr_notations": [
                  "10.110.64.0/27"
                ],
                "mac_address": "44-AF-28-1E-54-8C"
              }
            ],
            "gateway": "10.110.64.1",
            "dns_server_ip_addresses": [
              "10.110.64.2"
            ]
          },
          "installer_version": {
            "current": {
              "major": 15,
              "minor": 0,
              "build_number": 26822
            },
            "latest": {
              "major": 15,
              "minor": 0,
              "build_number": 27714
            }
          },
          "timezone": "-0700"
        },
        "type": "object",
        "required": [
          "online",
          "enabled",
          "installer_version",
          "meta",
          "units",
          "name",
          "tenant",
          "platform",
          "registration_date",
          "core_version",
          "id",
          "timezone",
          "auto_update",
          "hostname",
          "registration_id"
        ],
        "properties": {
          "online": {
            "description": "Flag designating if the agent is currently online.",
            "type": "boolean"
          },
          "network": {
            "description": "Agent host's network configuration.",
            "type": "object",
            "required": [
              "network_interfaces"
            ],
            "properties": {
              "gateway": {
                "description": "IP address or host name of the gateway.",
                "type": "string"
              },
              "network_interfaces": {
                "description": "Network interfaces at agent's host.",
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/NetworkInterface"
                }
              },
              "dns_server_ip_addresses": {
                "description": "IP addresses of DNS servers. This collection may include addresses of both IPv4 and IPv6 servers.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "enabled": {
            "description": "Flag designating if the agent is currently enabled.",
            "type": "boolean"
          },
          "comment": {
            "description": "User-added comment on the agent.",
            "type": "string"
          },
          "installer_version": {
            "description": "Agent installer versions.",
            "type": "object",
            "required": [
              "current"
            ],
            "properties": {
              "current": {
                "description": "The currently installed version.",
                "type": "object",
                "required": [
                  "minor",
                  "build_number",
                  "major"
                ],
                "properties": {
                  "minor": {
                    "description": "Minor version number.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "build_number": {
                    "description": "Build number.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "major": {
                    "description": "Major version number.",
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "latest": {
                "description": "The latest available version. It is only present if the latest version is newer than the current one.",
                "type": "object",
                "required": [
                  "minor",
                  "build_number",
                  "major"
                ],
                "properties": {
                  "minor": {
                    "description": "Minor version number.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "build_number": {
                    "description": "Build number.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "major": {
                    "description": "Major version number.",
                    "type": "integer",
                    "minimum": 0
                  }
                }
              }
            }
          },
          "unattended_update": {
            "description": "Details of unattended agent update. If the agent does not support unattended update, the value is absent.",
            "type": "object",
            "required": [
              "automatic",
              "update_channel",
              "status"
            ],
            "properties": {
              "automatic": {
                "description": "Boolean flag specifying whether agent should be automatically updated to the latest version available in its update channel.",
                "default": false,
                "type": "boolean"
              },
              "inherited_from_tenant_id": {
                "description": "If the update details were inherited from a parent tenant, this is the tenant ID. Otherwise, the value is absent.",
                "example": "50",
                "type": "string"
              },
              "maintenance_window": {
                "description": "Time intervals when agent update is allowed. If the window is not specified, this means that agent can be updated at any time. The window should be ignored if automatic update is disabled.",
                "type": "object",
                "required": [
                  "time_from",
                  "days_of_week",
                  "time_to"
                ],
                "properties": {
                  "time_from": {
                    "description": "Time of day when agent maintenance may start. It is agent local time.",
                    "example": "08:33:19",
                    "type": "string",
                    "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                    "minLength": 8,
                    "maxLength": 8
                  },
                  "days_of_week": {
                    "description": "Days of week when agent maintenance may start (window's start time belongs to these days). They can be given in any order but duplicates are not allowed.",
                    "type": "array",
                    "maxItems": 7,
                    "minItems": 1,
                    "uniqueItems": true,
                    "items": {
                      "$ref": "#/components/schemas/DayOfWeek"
                    }
                  },
                  "time_to": {
                    "description": "Time of day agent maintenance must complete before. It is agent local time. If this time is less than or equal to maintenance start time, this means the maintenance may proceed until this time next day.",
                    "example": "08:33:19",
                    "type": "string",
                    "pattern": "^(?:[0-1][0-9]|2[0-3])(?::[0-5][0-9]){2}$",
                    "minLength": 8,
                    "maxLength": 8
                  }
                }
              },
              "update_channel": {
                "$ref": "#/components/schemas/AgentUpdateChannel"
              },
              "status": {
                "description": "Current status of unattended update of particular agent.",
                "enum": [
                  "OK",
                  "SUSPENDED_ON_FAILURES"
                ],
                "type": "string"
              }
            }
          },
          "meta": {
            "description": "The agent metadata.",
            "type": "object"
          },
          "units": {
            "description": "Components the agent consists of. This can be an empty list if the agent has only Agent Core component installed.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SoftwareUnit"
            }
          },
          "name": {
            "description": "Agent name as seen by a user.",
            "example": "My Appliance 6490-78",
            "type": "string"
          },
          "tenant": {
            "description": "Tenant descriptor of the agent owner.",
            "type": "object",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "description": "The tenant identifier.",
                "type": "string"
              },
              "name": {
                "description": "The tenant name.",
                "type": "string"
              }
            }
          },
          "platform": {
            "description": "Descriptor of operating system the agent is running on.",
            "type": "object",
            "required": [
              "name",
              "version_minor",
              "family",
              "arch",
              "version_major"
            ],
            "properties": {
              "service_pack": {
                "description": "OS service pack number if applicable.",
                "type": "integer",
                "format": "int32"
              },
              "name": {
                "description": "Full Operating System name.",
                "type": "string"
              },
              "version_minor": {
                "description": "OS minor version number.",
                "type": "integer",
                "format": "int32"
              },
              "sku": {
                "description": "OS stock keeping unit ID.",
                "type": "integer",
                "format": "int32"
              },
              "product_type": {
                "description": "OS product type if applicable.",
                "type": "integer",
                "format": "int32"
              },
              "family": {
                "description": "Operating System family.",
                "enum": [
                  "UNKNOWN",
                  "WINDOWS",
                  "LINUX",
                  "MACOSX",
                  "SOLARIS"
                ],
                "type": "string"
              },
              "arch": {
                "description": "Operating System target hardware architecture.",
                "enum": [
                  "X86",
                  "X64",
                  "ARM",
                  "ARM64"
                ],
                "type": "string"
              },
              "version_major": {
                "description": "OS major version number.",
                "type": "integer",
                "format": "int32"
              },
              "caps": {
                "description": "OS capability mask if applicable.",
                "type": "integer",
                "format": "int32"
              },
              "suite_mask": {
                "description": "OS suite mask if applicable.",
                "type": "integer",
                "format": "int32"
              }
            }
          },
          "registration_date": {
            "description": "Agent registration date in RFC 1123 format with numeric time zone.",
            "example": "Tue, 04 Jun 2019 18:32:26 +0300",
            "type": "string"
          },
          "core_version": {
            "description": "Agent Core version.",
            "type": "object",
            "required": [
              "current"
            ],
            "properties": {
              "current": {
                "description": "The currently installed version.",
                "type": "object",
                "required": [
                  "build",
                  "release_id"
                ],
                "properties": {
                  "build": {
                    "description": "Build number.",
                    "example": "42",
                    "type": "string"
                  },
                  "release_id": {
                    "description": "Release identifier.",
                    "example": "1.0.0",
                    "type": "string"
                  },
                  "release_name": {
                    "description": "Human-readable release name.",
                    "type": "string"
                  }
                }
              },
              "latest": {
                "description": "The latest available version. It is only present if the latest version is newer than the current one.",
                "type": "object",
                "required": [
                  "build",
                  "release_id"
                ],
                "properties": {
                  "build": {
                    "description": "Build number.",
                    "example": "42",
                    "type": "string"
                  },
                  "release_id": {
                    "description": "Release identifier.",
                    "example": "1.0.0",
                    "type": "string"
                  },
                  "release_name": {
                    "description": "Human-readable release name.",
                    "type": "string"
                  }
                }
              }
            }
          },
          "id": {
            "description": "Unique agent ID. This must be valid string representation of a UUID. The ID is used for client ID construction of the agent service account.",
            "example": "3953e625-d0a2-420c-86a6-afb9d91aca3e",
            "type": "string"
          },
          "timezone": {
            "$ref": "#/components/schemas/TimeZoneOffset"
          },
          "distribution_type": {
            "description": "Software distribution type.",
            "example": "SPLA_INFRASTRUCTURE",
            "type": "string"
          },
          "auto_update": {
            "description": "Flag specifying whether the agent is configured to update in automatic unattended mode.\nDeprecated. Use 'unattended_update' property instead: if it is absent, the agent cannot\nupdate automatically; otherwise, check value of 'unattended_update.automatic' property.\n",
            "type": "boolean"
          },
          "hostname": {
            "description": "Host name.",
            "example": "server1.acme.local",
            "type": "string"
          },
          "registration_id": {
            "description": "Agent registration ID.",
            "example": "eO2uM8QwSIC3nh0FxiZmjArpW-U",
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "oauth_2_0_user": {
        "type": "oauth2",
        "description": "OAuth 2.0 security scheme definition for a user authorization.",
        "flows": {
          "password": {
            "scopes": {
              "urn:acronis.com::agent_manager::admin": "",
              "urn:acronis.com::agent_manager::agent_registrar": "",
              "urn:acronis.com::agent_manager::agent_unregistrar": "",
              "urn:acronis.com::agent_manager::agent_update_reference_viewer": "",
              "urn:acronis.com::agent_manager::agent_update_settings_modifier": "",
              "urn:acronis.com::agent_manager::agent_update_settings_viewer": "",
              "urn:acronis.com::agent_manager::agent_viewer": ""
            },
            "tokenUrl": "/api/2/idp/token"
          },
          "clientCredentials": {
            "scopes": {
              "urn:acronis.com::agent_manager::admin": "",
              "urn:acronis.com::agent_manager::agent_registrar": "",
              "urn:acronis.com::agent_manager::agent_unregistrar": "",
              "urn:acronis.com::agent_manager::agent_update_reference_viewer": "",
              "urn:acronis.com::agent_manager::agent_update_settings_modifier": "",
              "urn:acronis.com::agent_manager::agent_update_settings_viewer": "",
              "urn:acronis.com::agent_manager::agent_viewer": ""
            },
            "tokenUrl": "/api/2/idp/token"
          },
          "authorizationCode": {
            "scopes": {
              "urn:acronis.com::agent_manager::admin": "",
              "urn:acronis.com::agent_manager::agent_registrar": "",
              "urn:acronis.com::agent_manager::agent_unregistrar": "",
              "urn:acronis.com::agent_manager::agent_update_reference_viewer": "",
              "urn:acronis.com::agent_manager::agent_update_settings_modifier": "",
              "urn:acronis.com::agent_manager::agent_update_settings_viewer": "",
              "urn:acronis.com::agent_manager::agent_viewer": ""
            },
            "authorizationUrl": "/api/2/idp/authorize",
            "tokenUrl": "/api/2/idp/token"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://dev-cloud.acronis.com/api/agent_manager/v2",
      "variables": {}
    }
  ]
}