Veeam Policies API

The Policies API from Veeam — 15 operation(s) for policies.

OpenAPI Specification

veeam-policies-api-openapi.yml Raw ↑
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:

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/veeam/refs/heads/main/openapi/veeam-policies-api-openapi.yml