Veeam Proxies API
The Proxies section defines paths and operations for managing backup proxies.NOTEIn the current version, the REST API supports VMware backup proxies only.
The Proxies section defines paths and operations for managing backup proxies.NOTEIn the current version, the REST API supports VMware backup proxies only.
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.<br><div class="note"><strong>NOTE</strong><br>In the current version, the REST API supports VMware backup proxies only.</div>
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: `<version>-<revision>`.
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 \<JWT\>