openapi: 3.0.0 info: version: 1.0-rev0 title: Veeam Backup for AWS public API 1.0 Agents Policies API description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery. security: - Bearer: [] tags: - name: Policies paths: /api/v1/policies: get: tags: - Policies operationId: PoliciesGetAll parameters: - name: SearchPattern in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: string - name: VirtualMachineId in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: string format: uuid - name: LastPolicySessionStatus in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' explode: true schema: type: array items: type: string enum: - Running - NeverExecuted - Succeeded - Warning - Failed - Canceled uniqueItems: false - name: PolicyStatus in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' explode: true schema: type: array items: type: string enum: - Enabled - Disabled uniqueItems: false - name: Sort in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' style: form explode: false schema: type: array items: type: string enum: - priorityAsc - priorityDesc - nameAsc - nameDesc - usnAsc - usnDesc - name: Usn in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: integer format: int64 - name: RepositoryId in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: string format: uuid - name: Offset in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: integer format: int32 minimum: 0 - name: Limit in: query required: false x-veeam-spec: $ref: '#/components/schemas/PoliciesFilters' schema: type: integer format: int32 minimum: -1 - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PoliciesPage' application/problem+json: schema: $ref: '#/components/schemas/PoliciesPage' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: CreatePolicy parameters: - $ref: '#/components/parameters/apiVersionParam' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/PolicySpec' application/json: schema: $ref: '#/components/schemas/PolicySpec' text/json: schema: $ref: '#/components/schemas/PolicySpec' application/*+json: schema: $ref: '#/components/schemas/PolicySpec' application/csp-report: schema: $ref: '#/components/schemas/PolicySpec' responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/Policy' application/problem+json: schema: $ref: '#/components/schemas/Policy' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}: get: tags: - Policies operationId: PoliciesGetOneById parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Policy' application/problem+json: schema: $ref: '#/components/schemas/Policy' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' put: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: UpdatePolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' requestBody: content: application/json-patch+json: schema: $ref: '#/components/schemas/Policy' application/json: schema: $ref: '#/components/schemas/Policy' text/json: schema: $ref: '#/components/schemas/Policy' application/*+json: schema: $ref: '#/components/schemas/Policy' application/csp-report: schema: $ref: '#/components/schemas/Policy' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Policy' application/problem+json: schema: $ref: '#/components/schemas/Policy' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' delete: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: DeletePolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Failed to delete policy, verify it is not in use and try again. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/selectedItems: get: tags: - Policies operationId: PoliciesGetSelectedItemsById parameters: - name: policyId in: path required: true schema: type: string format: uuid - name: Offset in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: integer format: int32 minimum: 0 - name: Limit in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: integer format: int32 minimum: -1 - name: SearchPattern in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: string - name: Sort in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' style: form explode: false schema: type: array items: type: string enum: - nameAsc - nameDesc - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PolicyItemsPage' application/problem+json: schema: $ref: '#/components/schemas/PolicyItemsPage' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/regions: get: tags: - Policies operationId: PoliciesGetRegionsById parameters: - name: policyId in: path required: true schema: type: string format: uuid - name: SearchPattern in: query required: false x-veeam-spec: $ref: '#/components/schemas/RegionsFilters' schema: type: string - name: Offset in: query required: false x-veeam-spec: $ref: '#/components/schemas/RegionsFilters' schema: type: integer format: int32 - name: Limit in: query required: false x-veeam-spec: $ref: '#/components/schemas/RegionsFilters' schema: type: integer format: int32 - name: Sort in: query required: false x-veeam-spec: $ref: '#/components/schemas/RegionsFilters' style: form explode: false schema: type: array items: type: string enum: - nameAsc - nameDesk uniqueItems: false - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/RegionsPage' application/problem+json: schema: $ref: '#/components/schemas/RegionsPage' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/excludedItems: get: tags: - Policies operationId: PoliciesGetExcludedItemsById parameters: - name: policyId in: path required: true schema: type: string format: uuid - name: Offset in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: integer format: int32 minimum: 0 - name: Limit in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: integer format: int32 minimum: -1 - name: SearchPattern in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' schema: type: string - name: Sort in: query required: false x-veeam-spec: $ref: '#/components/schemas/PolicyItemsFilters' style: form explode: false schema: type: array items: type: string enum: - nameAsc - nameDesc - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PolicyItemsPage' application/problem+json: schema: $ref: '#/components/schemas/PolicyItemsPage' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/enable: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: EnablePolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/disable: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: DisablePolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/start: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: StartPolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '202': description: Success content: application/json: schema: $ref: '#/components/schemas/SessionLink' application/problem+json: schema: $ref: '#/components/schemas/SessionLink' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: The policy has already started. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/stop: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: StopPolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '202': description: Success '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/export: get: tags: - Policies operationId: ExportPolicy parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/PolicyExportModel' application/problem+json: schema: $ref: '#/components/schemas/PolicyExportModel' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/import: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: ImportPolicy parameters: - $ref: '#/components/parameters/apiVersionParam' requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyExportModel' required: true responses: '202': description: Success content: application/json: schema: $ref: '#/components/schemas/SessionLink' application/problem+json: schema: $ref: '#/components/schemas/SessionLink' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/validate: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: Validate parameters: - $ref: '#/components/parameters/apiVersionParam' requestBody: $ref: '#/components/requestBodies/PolicySpec' responses: '200': description: Success content: text/plain: schema: uniqueItems: false type: array items: $ref: '#/components/schemas/ValidationMessage' application/json: schema: uniqueItems: false type: array items: $ref: '#/components/schemas/ValidationMessage' text/json: schema: uniqueItems: false type: array items: $ref: '#/components/schemas/ValidationMessage' application/problem+json: schema: uniqueItems: false type: array items: $ref: '#/components/schemas/ValidationMessage' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: text/plain: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' text/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: text/plain: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' text/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request. content: text/plain: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' text/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: text/plain: schema: $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' text/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/orderPriorities: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: PolicyOrderPriorityOfPolicies parameters: - $ref: '#/components/parameters/apiVersionParam' requestBody: content: application/json: schema: $ref: '#/components/schemas/PoliciesPrioritySpec' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/EmptySuccessResponse' application/problem+json: schema: $ref: '#/components/schemas/EmptySuccessResponse' '400': description: Bad Request. The request body is malformed, incomplete or otherwise invalid. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' /api/v1/policies/export: post: x-veeam-authorize: roles: - Portal Administrator - Portal Operator tags: - Policies operationId: ExportPolicies parameters: - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: text/csv: schema: type: string format: binary application/xml: schema: type: string format: binary '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: text/csv: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: text/csv: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' /api/v1/policies/{policyId}/cost: get: tags: - Policies operationId: GetPolicyCost parameters: - name: policyId in: path required: true schema: type: string format: uuid - $ref: '#/components/parameters/apiVersionParam' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/CostEstimationsPage' application/problem+json: schema: $ref: '#/components/schemas/CostEstimationsPage' '401': description: Unauthorized. The authorization header has been expected but not found (or found but is expired). content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found. One or more resources specified in the request could not be found in the specified resource collection. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error. The request has been received but could not be completed because of an internal error at the server side. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Error' components: schemas: PolicyNotificationSettings: type: object properties: recipient: type: string notifyOnSuccess: type: boolean notifyOnWarning: type: boolean notifyOnFailure: type: boolean Link: required: - rel - href - method type: object properties: rel: type: string href: type: string method: type: string enum: - GET - POST - PUT - DELETE CostEstimationsPage: required: - totalCount - items - isEmpty - instancesCosts - totalTrafficCost - totalTransactionCost - totalCost type: object properties: totalCount: format: int32 type: integer items: uniqueItems: false type: array items: $ref: '#/components/schemas/CostEstimationItem' isEmpty: type: boolean totalSnapshotCost: type: number format: double totalReplicaCost: type: number format: double totalBackupCost: type: number format: double totalTrafficCost: type: number format: double totalTransactionCost: type: number format: double totalCost: type: number format: double _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' WeeklyBackupScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PeriodRetentionOptions' schedule: $ref: '#/components/schemas/WeeklySchedule' ValidationMessage: type: object properties: severity: enum: - Warning - Error type: string message: type: string contextId: type: string format: uuid PoliciesSortColumns: type: string enum: - priorityAsc - priorityDesc - nameAsc - nameDesc - usnAsc - usnDesc PolicySnapshotSettings: type: object properties: additionalTags: uniqueItems: false type: array items: $ref: '#/components/schemas/TagSpec' copyTagsFromVolumeEnabled: type: boolean tryCreateVSSSnapshot: type: boolean PolicyItemsSortColumns: type: string enum: - nameAsc - nameDesc SessionStatuses: type: string enum: - Running - NeverExecuted - Succeeded - Warning - Failed - Canceled MonthlyScheduleSettings: required: - timeLocal - dayNumberInMonth - snapshotOptions type: object properties: timeLocal: format: date-time type: string dayNumberInMonth: $ref: '#/components/schemas/DayNumbersInMonth' dayOfWeek: $ref: '#/components/schemas/DaysOfWeek' dayOfMonth: format: int32 type: integer snapshotOptions: $ref: '#/components/schemas/MonthlySnapshotScheduleSettings' backupOptions: $ref: '#/components/schemas/MonthlyBackupScheduleSettings' replicaOptions: $ref: '#/components/schemas/MonthlyReplicaScheduleSettings' MonthlyBackupScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PeriodRetentionOptions' schedule: $ref: '#/components/schemas/MonthlySchedule' MonthlySnapshotScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/MonthlySchedule' MonthlySchedule: type: object required: - months properties: months: type: array uniqueItems: true minLength: 0 maxLength: 12 items: $ref: '#/components/schemas/Months' Region: required: - id - name type: object properties: id: type: string format: uuid name: type: string _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' YearlyScheduleSettings: required: - timeLocal - dayNumberInMonth - month - retention type: object properties: timeLocal: type: string format: date-time dayNumberInMonth: $ref: '#/components/schemas/DayNumbersInMonth' dayOfWeek: $ref: '#/components/schemas/DaysOfWeek' dayOfMonth: format: int32 type: integer month: $ref: '#/components/schemas/Months' retention: $ref: '#/components/schemas/YearlyRetentionOptions' Policy: required: - id - name - description - regionIds - priority - isEnabled - amazonAccountId - backupType type: object properties: id: format: uuid type: string snapshotSettings: $ref: '#/components/schemas/PolicySnapshotSettings' replicaSettings: $ref: '#/components/schemas/PolicyReplicaSettings' backupSettings: $ref: '#/components/schemas/PolicyBackupSettings' regionIds: minLength: 1 uniqueItems: false type: array items: type: string format: uuid selectedItems: $ref: '#/components/schemas/PolicyBackupItems' excludedItems: $ref: '#/components/schemas/PolicyBackupItems' scheduleSettings: $ref: '#/components/schemas/ScheduleSettings' name: type: string description: type: string priority: format: int64 type: integer amazonAccountId: type: string format: uuid retrySettings: $ref: '#/components/schemas/RetrySettings' policyNotificationSettings: $ref: '#/components/schemas/PolicyNotificationSettings' isEnabled: type: boolean backupType: $ref: '#/components/schemas/PolicySelectionTypes' createdBy: type: string modifiedBy: type: string lastPolicySessionStatus: $ref: '#/components/schemas/SessionStatuses' warning: type: string usn: format: int64 type: integer _embeddedResources: $ref: '#/components/schemas/PolicyEmbeddedResources' _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' RetentionTypes: type: string enum: - Days - Months DailyBackupScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PeriodRetentionOptions' schedule: $ref: '#/components/schemas/DailySchedule' Error: description: '' required: - type - title - status - errorCode type: object properties: type: type: string format: uri description: An URI reference that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g. using HTML). title: type: string description: A short, summary of the problem type. Written in English and readable for engineers (usually not suited for non technical stakeholders and not localized) status: type: integer format: int32 description: The HTTP status code generated by the origin server for this occurrence of the problem. minimum: 400 maximum: 600 exclusiveMaximum: true errorCode: description: The error code is a string that uniquely identifies an error condition and should be understood by programs that detect and handle errors by type enum: - AccessDenied - ExpiredToken - InvalidToken - InvalidURI - MethodNotAllowed - NotFound - NotImplemented - ServiceUnavailable - UnexpectedContent - UnknownError type: string details: description: The error message contains a generic description of the error condition in English. It is intended for a human audience type: string instance: description: ID of the object that is involved in the error (or empty) type: string format: uri data: type: object description: Error payload additionalProperties: type: object PolicyEmbeddedResources: type: object properties: lastBackupSession: $ref: '#/components/schemas/Link' lastFinishedBackupSession: $ref: '#/components/schemas/Link' targetRepository: $ref: '#/components/schemas/Link' protectedResources: $ref: '#/components/schemas/Link' excludedResources: $ref: '#/components/schemas/Link' regions: $ref: '#/components/schemas/Link' Months: enum: - January - February - March - April - May - June - July - August - September - October - November - December type: string WeeklyScheduleSettings: required: - timeLocal - snapshotOptions type: object properties: timeLocal: format: date-time type: string snapshotOptions: $ref: '#/components/schemas/WeeklySnapshotScheduleSettings' backupOptions: $ref: '#/components/schemas/WeeklyBackupScheduleSettings' replicaOptions: $ref: '#/components/schemas/WeeklyReplicaScheduleSettings' EmptySuccessResponse: description: Empty succes response ( 200, 201, 204 ) type: object YearlyRetentionOptions: required: - count - type type: object properties: count: type: integer format: int32 minimum: 0 type: type: string enum: - Years PolicyBackupSettings: type: object properties: targetRepositoryId: format: uuid type: string PoliciesFilters: type: object properties: SearchPattern: type: string VirtualMachineId: type: string format: uuid LastPolicySessionStatus: type: array items: $ref: '#/components/schemas/SessionStatuses' uniqueItems: false PolicyStatus: type: array items: $ref: '#/components/schemas/PolicyStatuses' uniqueItems: false Sort: type: array items: $ref: '#/components/schemas/PoliciesSortColumns' uniqueItems: false Usn: type: integer format: int64 RepositoryId: type: string format: uuid Offset: type: integer format: int32 minimum: 0 Limit: type: integer format: int32 minimum: -1 DaysOfWeek: enum: - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday type: string PolicySelectionTypes: enum: - AllItems - SelectedItems type: string DailySchedule: type: object required: - hours properties: hours: type: array uniqueItems: false minLength: 24 maxLength: 24 items: type: boolean RemoteMappingExportModel: required: - sourceRegionName - targetRegionName - targetAmazonAccountName type: object properties: sourceRegionName: type: string targetRegionName: type: string targetAmazonAccountName: type: string encryptionKey: type: string SessionLink: required: - sessionId type: object properties: sessionId: type: string format: uuid _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' PoliciesPrioritySpec: required: - priorities type: object properties: priorities: uniqueItems: false type: array items: $ref: '#/components/schemas/PolicyPrioritySpec' RetrySettings: required: - retryTimes type: object properties: retryTimes: format: int32 type: integer PolicyItemsPage: required: - totalCount - results type: object properties: totalCount: format: int32 type: integer results: uniqueItems: false type: array items: $ref: '#/components/schemas/PolicyItem' _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' RegionsFilters: type: object properties: SearchPattern: type: string Offset: type: integer format: int32 minimum: 0 Limit: type: integer format: int32 minimum: -1 Sort: type: array uniqueItems: false items: $ref: '#/components/schemas/RegionsSortColumns' PolicyBackupItemsExportModel: type: object properties: virtualMachines: uniqueItems: false type: array items: type: string tags: uniqueItems: false type: array items: $ref: '#/components/schemas/TagSpec' PolicyBackupItems: type: object properties: virtualMachineIds: uniqueItems: false type: array items: type: string format: uuid tagIds: uniqueItems: false type: array items: type: string format: uuid WeeklySnapshotScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/WeeklySchedule' WeeklySchedule: type: object required: - days properties: days: type: array uniqueItems: true minLength: 0 maxLength: 7 items: $ref: '#/components/schemas/DaysOfWeek' RegionsPage: required: - totalCount - results type: object properties: totalCount: format: int32 type: integer results: uniqueItems: false type: array items: $ref: '#/components/schemas/Region' _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' DailyScheduleSettings: required: - kind - runsPerHour - snapshotOptions type: object properties: kind: $ref: '#/components/schemas/DailyScheduleKinds' runsPerHour: type: integer format: int32 minimum: 1 days: uniqueItems: false type: array items: $ref: '#/components/schemas/DaysOfWeek' snapshotOptions: $ref: '#/components/schemas/DailySnapshotScheduleSettings' backupOptions: $ref: '#/components/schemas/DailyBackupScheduleSettings' replicaOptions: $ref: '#/components/schemas/DailyReplicaScheduleSettings' PolicyExportModel: required: - regions - name - amazonAccountName - isEnabled - backupType type: object properties: snapshotSettings: $ref: '#/components/schemas/PolicySnapshotSettings' replicaSettings: $ref: '#/components/schemas/ReplicaSettingsExportModel' backupSettings: $ref: '#/components/schemas/BackupSettingsExportModel' regions: minLength: 1 uniqueItems: false type: array items: type: string selectedItems: $ref: '#/components/schemas/PolicyBackupItemsExportModel' excludedItems: $ref: '#/components/schemas/PolicyBackupItemsExportModel' scheduleSettings: $ref: '#/components/schemas/ScheduleSettings' name: maxLength: 255 minLength: 1 type: string description: type: string priority: format: int64 type: integer amazonAccountName: type: string retrySettings: $ref: '#/components/schemas/RetrySettings' policyNotificationSettings: $ref: '#/components/schemas/PolicyNotificationSettings' isEnabled: type: boolean backupType: $ref: '#/components/schemas/PolicySelectionTypes' DayNumbersInMonth: enum: - First - Second - Third - Fourth - Last - OnDay type: string PolicyStatuses: type: string enum: - Enabled - Disabled ReplicaMapping: required: - sourceRegionId - targetRegionId - targetAmazonAccountId type: object properties: sourceRegionId: format: uuid type: string targetRegionId: format: uuid type: string targetAmazonAccountId: type: string format: uuid encryptionKey: type: string PolicyItem: type: object properties: name: type: string tag: $ref: '#/components/schemas/Link' virtualMachine: $ref: '#/components/schemas/Link' deletedItem: $ref: '#/components/schemas/PolicyItemDeletedFromAmazon' ScheduleSettings: required: - dailyScheduleEnabled - weeklyScheduleEnabled - monthlyScheduleEnabled - yearlyScheduleEnabled type: object properties: dailyScheduleEnabled: type: boolean dailySchedule: $ref: '#/components/schemas/DailyScheduleSettings' weeklyScheduleEnabled: type: boolean weeklySchedule: $ref: '#/components/schemas/WeeklyScheduleSettings' monthlyScheduleEnabled: type: boolean monthlySchedule: $ref: '#/components/schemas/MonthlyScheduleSettings' yearlyScheduleEnabled: type: boolean yearlySchedule: $ref: '#/components/schemas/YearlyScheduleSettings' DailyScheduleKinds: enum: - Everyday - WeekDays - SelectedDays type: string ReplicaSettingsExportModel: required: - mapping type: object properties: mapping: uniqueItems: false type: array items: $ref: '#/components/schemas/RemoteMappingExportModel' additionalTags: uniqueItems: false type: array items: $ref: '#/components/schemas/TagSpec' copyTagsFromVolumeEnabled: type: boolean MonthlyReplicaScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/MonthlySchedule' PolicyPrioritySpec: required: - policyId - priority type: object properties: policyId: type: string format: uuid priority: type: integer format: int32 PoliciesPage: required: - totalCount - results type: object properties: totalCount: format: int32 type: integer results: uniqueItems: false type: array items: $ref: '#/components/schemas/Policy' _links: type: array uniqueItems: false items: $ref: '#/components/schemas/Link' PolicyItemDeletedFromAmazon: required: - id - name - type type: object properties: id: type: string format: uuid name: type: string type: enum: - VirtualMachine - Tag - Region - Bucket type: string BackupSettingsExportModel: required: - targetRepositoryName type: object properties: targetRepositoryName: type: string DailyReplicaScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/DailySchedule' PolicySpec: required: - regions - name - amazonAccountId - backupType type: object properties: snapshotSettings: $ref: '#/components/schemas/PolicySnapshotSettings' replicaSettings: $ref: '#/components/schemas/PolicyReplicaSettings' backupSettings: $ref: '#/components/schemas/PolicyBackupSettings' regionIds: minLength: 1 uniqueItems: false type: array items: type: string format: uuid selectedItems: $ref: '#/components/schemas/PolicyBackupItems' excludedItems: $ref: '#/components/schemas/PolicyBackupItems' scheduleSettings: $ref: '#/components/schemas/ScheduleSettings' name: maxLength: 255 minLength: 1 type: string description: type: string amazonAccountId: type: string format: uuid retrySettings: $ref: '#/components/schemas/RetrySettings' policyNotificationSettings: $ref: '#/components/schemas/PolicyNotificationSettings' backupType: $ref: '#/components/schemas/PolicySelectionTypes' PeriodRetentionOptions: required: - type - count type: object properties: type: $ref: '#/components/schemas/RetentionTypes' count: type: integer format: int32 minimum: 0 DailySnapshotScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/DailySchedule' PolicyReplicaSettings: required: - mapping type: object properties: mapping: uniqueItems: false type: array items: $ref: '#/components/schemas/ReplicaMapping' additionalTags: uniqueItems: false type: array items: $ref: '#/components/schemas/TagSpec' copyTagsFromVolumeEnabled: type: boolean CostEstimationItem: required: - virtualMachineId - virtualMachineName - trafficCost - transactionCost - totalCost type: object properties: virtualMachineId: type: string format: uuid virtualMachineName: type: string snapshotCost: type: number format: double replicaCost: type: number format: double backupCost: type: number format: double trafficCost: type: number format: double transactionCost: type: number format: double totalCost: type: number format: double PointsRetentionOptions: required: - count type: object properties: count: type: integer format: int32 minimum: 0 PolicyItemsFilters: type: object properties: Offset: type: integer format: int32 minimum: 0 Limit: type: integer format: int32 minimum: -1 SearchPattern: type: string Sort: type: array items: $ref: '#/components/schemas/PolicyItemsSortColumns' uniqueItems: false TagSpec: required: - key - value type: object properties: key: type: string value: type: string RegionsSortColumns: type: string enum: - nameAsc - nameDesk WeeklyReplicaScheduleSettings: type: object required: - retention - schedule properties: retention: $ref: '#/components/schemas/PointsRetentionOptions' schedule: $ref: '#/components/schemas/WeeklySchedule' requestBodies: PolicySpec: content: application/json: schema: $ref: '#/components/schemas/PolicySpec' required: true parameters: apiVersionParam: name: x-api-version in: header required: true schema: type: string default: 1.0-rev0 securitySchemes: Bearer: name: Authorization in: header type: apiKey description: Bearer \