openapi: 3.0.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents Proxies API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
security:
- Bearer: []
tags:
- description: The Proxies section defines paths and operations for managing backup proxies.
NOTE
In the current version, the REST API supports VMware backup proxies only.
name: Proxies
paths:
/api/v1/backupInfrastructure/proxies:
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/proxies` path allows you to get an array of all backup proxies that are added to the backup infrastructure.
operationId: GetAllProxies
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: Number of proxies to skip.
in: query
name: skip
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Maximum number of proxies to return.
in: query
name: limit
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Sorts proxies by one of the proxy parameters.
in: query
name: orderColumn
schema:
$ref: '#/components/schemas/EProxiesFiltersOrderColumn'
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Sorts proxies in the ascending order by the `orderColumn` parameter.
in: query
name: orderAsc
schema:
type: boolean
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Filters proxies by the `nameFilter` pattern. The pattern can match any proxy parameter. To substitute one or more characters, use the asterisk (*) character at the beginning, at the end or both.
in: query
name: nameFilter
schema:
type: string
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Filters proxies by proxy type.
in: query
name: typeFilter
schema:
$ref: '#/components/schemas/EProxyType'
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
- description: Filters proxies by ID of the backup server.
in: query
name: hostIdFilter
schema:
format: uuid
type: string
x-veeam-spec:
$ref: '#/components/schemas/ProxiesFilters'
responses:
'200':
content:
application/json:
example:
data:
- description: Created by TECH\sheila.d.cory
id: 0be53088-d516-4734-a956-a8093a568876
name: 172.17.53.67
server:
connectedDatastores:
autoSelect: true
datastores: []
failoverToNetwork: true
hostId: 535b5414-788d-4720-a53a-ecc830d2589b
hostToProxyEncryption: false
maxTaskCount: 2
transportMode: virtualAppliance
type: ViProxy
- description: Created by Veeam Backup & Replication
id: 18b661c1-d9dc-4233-90a0-7e7b10dc2d09
name: VMware Backup Proxy
server:
connectedDatastores:
autoSelect: true
datastores: []
failoverToNetwork: true
hostId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
hostToProxyEncryption: false
maxTaskCount: 2
transportMode: auto
type: ViProxy
pagination:
skip: 0
total: 2
count: 2
limit: 200
schema:
$ref: '#/components/schemas/ProxiesResult'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get All Proxies
tags:
- Proxies
x-veeam-authorize:
claims:
- ViewProxies
post:
description: The HTTP POST request to the `/api/v1/backupInfrastructure/proxies` path allows you to add a proxy to the backup infrastructure.
operationId: CreateProxy
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
example:
description: Created by TECH\sheila.d.cory
name: proxy01.tech.local
server:
maxTaskCount: 2
transportMode: auto
connectedDatastores:
datastores:
- datastore:
hostName: vcenter01.tech.local
name: esx04-ds1
objectId: datastore-78098
type: Datastore
vmCount: 98
- datastore:
hostName: vcenter01.tech.local
name: esx04-ds2
objectId: datastore-94394
type: Datastore
vmCount: 93
autoSelect: false
failoverToNetwork: true
hostId: 080b9a63-56f3-49e2-9b06-56fc252de34c
hostToProxyEncryption: false
type: ViProxy
schema:
$ref: '#/components/schemas/ProxySpec'
required: true
responses:
'201':
content:
application/json:
example:
activityId: 59f85a1e-2016-4d08-aea5-2676a03d548c
state: Working
sessionType: Infrastructure
creationTime: '2022-01-28T19:48:43.117+01:00'
usn: 0
name: Infrastructure Item Saving
progressPercent: 0
id: 59f85a1e-2016-4d08-aea5-2676a03d548c
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to add the proxy. To check the progress, track the session `state`.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Add Proxy
tags:
- Proxies
x-veeam-authorize:
claims:
- CreateProxies
/api/v1/backupInfrastructure/proxies/{id}:
delete:
description: The HTTP DELETE request to the `/api/v1/backupInfrastructure/proxies/{id}` path allows you to remove a backup proxy that has the specified `id` from the backup infrastructure.
operationId: DeleteProxy
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the backup proxy.
in: path
name: id
required: true
schema:
format: uuid
type: string
responses:
'204':
$ref: '#/components/responses/Deleted'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Remove Proxy
tags:
- Proxies
x-veeam-authorize:
claims:
- DeleteProxies
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/proxies/{id}` path allows you to get a backup proxy that has the specified `id`.
operationId: GetProxy
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the backup proxy.
in: path
name: id
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
example:
id: 18b661c1-d9dc-4233-90a0-7e7b10dc2d09
server:
maxTaskCount: 2
transportMode: auto
connectedDatastores:
autoSelect: true
datastores: []
failoverToNetwork: true
hostId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
hostToProxyEncryption: false
type: ViProxy
name: VMware Backup Proxy
description: Created by Veeam Backup & Replication
schema:
$ref: '#/components/schemas/ProxyModel'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get Proxy
tags:
- Proxies
x-veeam-authorize:
claims:
- ViewProxies
put:
description: The HTTP PUT request to the `/api/v1/backupInfrastructure/proxies/{id}` path allows you to edit a backup proxy that has the specified `id`.
operationId: UpdateProxy
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the backup proxy.
in: path
name: id
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
example:
description: Created by Veeam Backup & Replication
server:
transportMode: network
connectedDatastores:
autoSelect: true
datastores: []
failoverToNetwork: false
hostId: 6745a759-2205-4cd2-b172-8ec8f7e60ef8
hostToProxyEncryption: false
maxTaskCount: 2
name: VMware Backup Proxy
id: 18b661c1-d9dc-4233-90a0-7e7b10dc2d09
trafficRules:
rules:
- encryption: true
name: Internet
throttling: false
timePeriod: Anytime
type: ViProxy
schema:
$ref: '#/components/schemas/ProxyModel'
required: true
responses:
'201':
content:
application/json:
example:
progressPercent: 0
state: Working
creationTime: '2022-01-28T20:18:47.563+01:00'
activityId: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
sessionType: Infrastructure
usn: 0
id: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
name: Infrastructure Item Saving
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to edit the proxy. To check the progress, track the session `state`.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Edit Proxy
tags:
- Proxies
x-veeam-authorize:
claims:
- UpdateProxies
components:
schemas:
EProxiesFiltersOrderColumn:
enum:
- Name
- Type
- Description
type: string
ProxySpec:
allOf:
- discriminator:
mapping:
ViProxy: '#/components/schemas/ViProxySpec'
propertyName: type
oneOf:
- $ref: '#/components/schemas/ViProxySpec'
- $ref: '#/components/schemas/BaseProxySpec'
EBackupProxyTransportMode:
description: Transport mode of the backup proxy.
enum:
- auto
- directAccess
- virtualAppliance
- network
type: string
ProxiesResult:
properties:
data:
description: Array of backup proxies.
items:
$ref: '#/components/schemas/ProxyModel'
type: array
pagination:
$ref: '#/components/schemas/PaginationResult'
required:
- data
- pagination
type: object
VmwareObjectModel:
description: VMware vSphere object.
properties:
hostName:
description: Name of the VMware vSphere server that hosts the object.
type: string
name:
description: Name of the VMware vSphere object.
type: string
objectId:
description: ID of the VMware vSphere object. The parameter is required for all VMware vSphere objects except vCenter Servers and standalone ESXi hosts.
type: string
type:
$ref: '#/components/schemas/EVmwareInventoryType'
required:
- name
- type
- hostName
type: object
Error:
properties:
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
message:
description: The error message contains a generic description of the error condition in English. It is intended for a human audience
type: string
resourceId:
description: ID of the object that is involved in the error (or empty)
type: string
required:
- errorCode
- message
type: object
ProxiesFilters:
properties:
hostIdFilter:
format: uuid
type: string
limit:
format: int32
type: integer
nameFilter:
type: string
orderAsc:
type: boolean
orderColumn:
$ref: '#/components/schemas/EProxiesFiltersOrderColumn'
skip:
format: int32
type: integer
typeFilter:
$ref: '#/components/schemas/EProxyType'
type: object
EmptySuccessResponse:
description: Empty success response (200, 201, 204).
type: object
SessionModel:
properties:
activityId:
description: ID of the activity.
format: uuid
type: string
creationTime:
description: Date and time when the session was created.
format: date-time
type: string
endTime:
description: Date and time when the session was ended.
format: date-time
type: string
id:
description: ID of the session.
format: uuid
type: string
name:
description: Name of the session.
type: string
parentSessionId:
description: ID of the parent session.
format: uuid
type: string
progressPercent:
description: Progress percentage of the session.
type: integer
resourceId:
description: ID of the resource.
format: uuid
type: string
resourceReference:
description: URI of the resource.
type: string
result:
$ref: '#/components/schemas/SessionResultModel'
sessionType:
$ref: '#/components/schemas/ESessionType'
state:
$ref: '#/components/schemas/ESessionState'
usn:
description: Update sequence number.
format: int64
type: integer
required:
- activityId
- creationTime
- id
- name
- sessionType
- state
- usn
type: object
ProxyServerSettingsModel:
description: Server settings for the backup proxy.
properties:
connectedDatastores:
$ref: '#/components/schemas/ProxyDatastoreSettingsModel'
failoverToNetwork:
description: (For the Direct storage access and Virtual appliance transport modes) If *true*, Veeam Backup & Replication failovers to the network transport mode in case the primary mode fails or is unavailable.
type: boolean
hostId:
description: ID of the server.
format: uuid
type: string
hostToProxyEncryption:
description: (For the Network mode) If *true*, VM data is transferred over an encrypted TLS connection.
type: boolean
maxTaskCount:
description: Maximum number of concurrent tasks.
type: integer
transportMode:
$ref: '#/components/schemas/EBackupProxyTransportMode'
required:
- hostId
type: object
PaginationResult:
description: Pagination settings.
properties:
count:
description: Number of returned results.
format: int32
type: integer
limit:
description: Maximum number of results to return.
format: int32
type: integer
skip:
description: Number of skipped results.
format: int32
type: integer
total:
description: Total number of results.
format: int32
type: integer
required:
- total
- count
type: object
ViProxyModel:
allOf:
- $ref: '#/components/schemas/BaseProxyModel'
- properties:
server:
$ref: '#/components/schemas/ProxyServerSettingsModel'
required:
- server
type: object
ESessionResult:
description: Result status.
enum:
- None
- Success
- Warning
- Failed
type: string
ProxyModel:
allOf:
- discriminator:
mapping:
ViProxy: '#/components/schemas/ViProxyModel'
propertyName: type
oneOf:
- $ref: '#/components/schemas/ViProxyModel'
- $ref: '#/components/schemas/BaseProxyModel'
ViProxySpec:
allOf:
- $ref: '#/components/schemas/BaseProxySpec'
- properties:
server:
$ref: '#/components/schemas/ProxyServerSettingsModel'
required:
- server
type: object
SessionResultModel:
description: Session result.
properties:
isCanceled:
description: If *true*, the session has been canceled.
type: boolean
message:
description: Message that explains the session result.
type: string
result:
$ref: '#/components/schemas/ESessionResult'
required:
- result
type: object
ProxyDatastoreModel:
properties:
datastore:
$ref: '#/components/schemas/VmwareObjectModel'
vmCount:
description: Number of VMs.
type: integer
type: object
BaseProxySpec:
properties:
description:
description: Description of the backup proxy.
type: string
type:
$ref: '#/components/schemas/EProxyType'
type: object
EVmwareInventoryType:
description: Type of the VMware vSphere object.
enum:
- Unknown
- VirtualMachine
- vCenterServer
- Datacenter
- Cluster
- Host
- ResourcePool
- Folder
- Datastore
- DatastoreCluster
- StoragePolicy
- Template
- ComputeResource
- VirtualApp
- Tag
- Category
- Multitag
- Network
type: string
EProxyType:
description: Type of the backup proxy.
enum:
- ViProxy
type: string
ProxyDatastoreSettingsModel:
description: Datastores to which the backup proxy has a direct SAN or NFS connection.
properties:
autoSelect:
description: If *true*, all datastores that the backup proxy can access are detected automatically.
type: boolean
datastores:
description: Array of datastores to which the backup proxy has a direct SAN or NFS connection.
items:
$ref: '#/components/schemas/ProxyDatastoreModel'
type: array
required:
- autoSelect
type: object
ESessionState:
description: State of the session.
enum:
- Stopped
- Starting
- Stopping
- Working
- Pausing
- Resuming
- WaitingTape
- Idle
- Postprocessing
- WaitingRepository
- WaitingSlot
type: string
ESessionType:
description: Type of the session.
enum:
- Infrastructure
- Job
- Automation
- ConfigurationBackup
- RepositoryMaintenance
- RepositoryEvacuate
- InfrastructureItemDeletion
- RestoreVm
- InstantRecovery
- FirstClassDiskInstantRestore
- AzureApplianceDeploy
- QuickMigration
type: string
BaseProxyModel:
properties:
description:
description: Description of the backup proxy.
type: string
id:
description: ID of the backup proxy.
format: uuid
type: string
name:
description: Name of the backup proxy.
type: string
type:
$ref: '#/components/schemas/EProxyType'
type: object
responses:
Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Forbidden. The user sending the request does not have adequate privileges to access one or more objects specified in the request.
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
NotFound:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found. No object was found with the path parameter specified in the request.
InternalServerError:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal server error. The request has been received but could not be completed because of an internal error at the server side.
BadRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Bad request. This error is related to POST/PUT requests. The request body is malformed, incomplete or otherwise invalid.
Deleted:
content:
application/json:
schema:
$ref: '#/components/schemas/EmptySuccessResponse'
description: Removed.
parameters:
apiVersionParam:
description: Version and revision of the client REST API. Must be in the following format: `-`.
in: header
name: x-api-version
required: true
schema:
default: 1.1-rev0
type: string
securitySchemes:
Bearer:
name: Authorization
in: header
type: apiKey
description: Bearer \