openapi: 3.0.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents Managed Servers API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
security:
- Bearer: []
tags:
- description: The Managed Servers section defines paths and operations for managing servers.
NOTE
In the current version, the REST API supports the following server types: *VMware vSphere*, *Linux* and *Windows*.
name: Managed Servers
paths:
/api/v1/backupInfrastructure/managedServers:
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/managedServers` path allows you to get an array of all servers that are added to the backup infrastructure.
operationId: GetAllManagedServers
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: Number of servers to skip.
in: query
name: skip
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
- description: Maximum number of servers to return.
in: query
name: limit
schema:
format: int32
type: integer
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
- description: Sorts servers by one of the server parameters.
in: query
name: orderColumn
schema:
$ref: '#/components/schemas/EManagedServersFiltersOrderColumn'
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
- description: Sorts servers in the ascending order by the `orderColumn` parameter.
in: query
name: orderAsc
schema:
type: boolean
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
- description: Filters servers by the `nameFilter` pattern. The pattern can match any server 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/ManagedServersFilters'
- description: Filters servers by server type.
in: query
name: typeFilter
schema:
$ref: '#/components/schemas/EManagedServerType'
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
- description: Filters servers by the type of VMware vSphere server.
in: query
name: viTypeFilter
schema:
$ref: '#/components/schemas/EViHostType'
x-veeam-spec:
$ref: '#/components/schemas/ManagedServersFilters'
responses:
'200':
content:
application/json:
example:
data:
- credentialsId: b860489e-490d-4e43-b20a-a91c4e7d2e76
description: Created by TECH\sheila.d.cory
id: 535b5414-788d-4720-a53a-ecc830d2589b
name: 172.17.53.67
sshSettings:
managementPort: 6162
portRangeEnd: 3300
portRangeStart: 2500
serverThisSide: false
sshTimeOutMs: 20000
type: LinuxHost
- credentialsId: fa4769b5-6722-4968-838b-866c29bd14d4
description: Created by TECH\sheila.d.cory
id: ee50f2fb-034f-41cd-8dc8-904aeae2d0d8
name: enterprise04.tech.local
networkSettings:
components:
- componentName: DeployerSvc
port: 6160
- componentName: Transport
port: 6162
- componentName: Nfs
port: 6161
- componentName: RestoreProxy
port: 6170
- componentName: WanAccelerator
port: 6164
- componentName: Tape
port: 6166
- componentName: CloudGate
port: 6168
- componentName: AgentConfigureService
port: 9380
- componentName: FileSystemVssIntegration
port: 6210
- componentName: VssHwSnapshotProvider
port: 6211
portRangeEnd: 3300
portRangeStart: 2500
serverThisSide: false
type: WindowsHost
- credentialsId: fa4769b5-6722-4968-838b-866c29bd14d4
description: Created by TECH\administrator
id: de28dc43-b8ee-4e17-8e63-3d38b6604033
name: vcenter01.tech.local
port: 443
type: ViHost
viHostType: VC
pagination:
total: 3
count: 3
limit: 200
skip: 0
schema:
$ref: '#/components/schemas/ManagedServersResult'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get All Servers
tags:
- Managed Servers
x-veeam-authorize:
claims:
- ViewManagedServers
post:
description: The HTTP POST request to the `/api/v1/backupInfrastructure/managedServers` path allows you to add a server to the backup infrastructure.
operationId: CreateManagedServer
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
example:
credentialsId: d7af15f3-8808-454e-ba79-2c2267acb05d
description: Backup Repository
name: enterprise01.tech.local
networkSettings:
components:
- componentName: DeployerSvc
port: 6160
- componentName: Transport
port: 6162
- componentName: Nfs
port: 6161
- componentName: RestoreProxy
port: 6170
- componentName: WanAccelerator
port: 6164
- componentName: Tape
port: 6166
- componentName: CloudGate
port: 6168
- componentName: AgentConfigureService
port: 9380
- componentName: FileSystemVssIntegration
port: 6210
- componentName: VssHwSnapshotProvider
port: 6211
portRangeEnd: 3313
portRangeStart: 2517
serverThisSide: true
type: WindowsHost
schema:
$ref: '#/components/schemas/ManagedServerSpec'
required: true
responses:
'201':
content:
application/json:
example:
sessionType: Infrastructure
id: 59f85a1e-2016-4d08-aea5-2676a03d548c
name: Infrastructure Item Saving
state: Working
usn: 0
activityId: 59f85a1e-2016-4d08-aea5-2676a03d548c
creationTime: '2022-01-28T19:48:43.117+01:00'
progressPercent: 0
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to add the server. 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 Server
tags:
- Managed Servers
x-veeam-authorize:
claims:
- CreateManagedServers
/api/v1/backupInfrastructure/managedServers/{id}:
delete:
description: The HTTP DELETE request to the `/api/v1/backupInfrastructure/managedServers/{id}` path allows you to remove a managed server that has the specified `id` from the backup infrastructure.
operationId: DeleteManagedServer
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the managed server.
in: path
name: id
required: true
schema:
format: uuid
type: string
responses:
'201':
content:
application/json:
example:
state: Working
sessionType: InfrastructureItemDeletion
id: af1a6027-3845-487e-9a16-6849f4775a1e
progressPercent: 0
creationTime: '2022-01-28T20:21:08.81+01:00'
usn: 0
activityId: fc5683a4-8c25-4f8e-97cc-0a40745a5729
name: Infrastructure Item Deletion
schema:
$ref: '#/components/schemas/SessionModel'
description: InfrastructureItemDeletion session has been created to remove the server. To check the progress, track the session `state`.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Remove Server
tags:
- Managed Servers
x-veeam-authorize:
claims:
- DeleteManagedServers
get:
description: The HTTP GET request to the `/api/v1/backupInfrastructure/managedServers/{id}` path allows you to get a managed server that has the specified `id`.
operationId: GetManagedServer
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the managed server.
in: path
name: id
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
example:
description: Backup repository
networkSettings:
components:
- componentName: DeployerSvc
port: 6160
- componentName: Transport
port: 6162
- componentName: Nfs
port: 6161
- componentName: RestoreProxy
port: 6170
- componentName: WanAccelerator
port: 6164
- componentName: Tape
port: 6166
- componentName: CloudGate
port: 6168
- componentName: AgentConfigureService
port: 9380
- componentName: FileSystemVssIntegration
port: 6210
- componentName: VssHwSnapshotProvider
port: 6211
portRangeEnd: 3300
portRangeStart: 2500
serverThisSide: false
id: fc5683a4-8c25-4f8e-97cc-0a40745a5729
credentialsId: 97d00492-92b7-4929-9e11-68eaa63b88e3
name: enterprise05.tech.local
type: WindowsHost
schema:
$ref: '#/components/schemas/ManagedServerModel'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get Server
tags:
- Managed Servers
x-veeam-authorize:
claims:
- ViewManagedServers
put:
description: The HTTP PUT request to the `/api/v1/backupInfrastructure/managedServers/{id}` path allows you to edit a managed server that has the specified `id`.
operationId: UpdateManagedServer
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the managed server.
in: path
name: id
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
example:
id: 71988b5d-e338-4c62-81e5-05ea944d233e
description: Backup repository
name: linuxsrv01.tech.local
type: LinuxHost
credentialsId: 76571109-fe6e-4638-ad37-2f1f30e3e9f1
sshSettings:
managementPort: 6162
portRangeEnd: 3300
portRangeStart: 2500
serverThisSide: false
sshTimeOutMs: 20000
schema:
$ref: '#/components/schemas/ManagedServerModel'
required: true
responses:
'201':
content:
application/json:
example:
name: Infrastructure Item Saving
usn: 0
activityId: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
progressPercent: 0
sessionType: Infrastructure
creationTime: '2022-01-28T20:18:47.563+01:00'
id: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
state: Working
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to edit the server. 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 Server
tags:
- Managed Servers
x-veeam-authorize:
claims:
- UpdateManagedServers
/api/v1/backupInfrastructure/managedServers/{id}/updateSingleUseCredentials:
post:
description: The HTTP POST request to the `/api/v1/backupInfrastructure/managedServers/{id}/updateSingleUseCredentials` path allows you to change from persistent to single-use credentials used to access a Linux server that has the specified `id`. Single-use type of credentials is required if you want to use the Linux server as a hardened repository.
operationId: UpdateSingleUseCredentials
parameters:
- $ref: '#/components/parameters/apiVersionParam'
- description: ID of the managed server.
in: path
name: id
required: true
schema:
format: uuid
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LinuxCredentialsSpec'
required: true
responses:
'201':
content:
application/json:
example:
creationTime: '2022-01-28T20:18:47.563+01:00'
name: Infrastructure Item Saving
sessionType: Infrastructure
state: Working
usn: 0
id: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
progressPercent: 0
activityId: e81a72de-9b0a-4f4a-a451-0d0ece4c54b2
schema:
$ref: '#/components/schemas/SessionModel'
description: Infrastructure session has been created to edit the server. 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: Change to Single-Use Credentials
tags:
- Managed Servers
x-veeam-authorize:
claims:
- UpdateManagedServers
components:
schemas:
BaseManagedServerSpec:
properties:
credentialsId:
description: ID of the credentials used to connect to the server.
format: uuid
type: string
description:
description: Description of the server.
type: string
name:
description: Full DNS name or IP address of the server.
type: string
type:
$ref: '#/components/schemas/EManagedServerType'
type: object
ECredentialsStorageType:
description: Credentials type used to connect to the Linux server.
enum:
- Permanent
- SingleUse
type: string
WindowsHostSpec:
allOf:
- $ref: '#/components/schemas/BaseManagedServerSpec'
- properties:
networkSettings:
$ref: '#/components/schemas/WindowsHostPortsModel'
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
ViHostSpec:
allOf:
- $ref: '#/components/schemas/BaseManagedServerSpec'
- properties:
certificateThumbprint:
description: Certificate thumbprint used to verify the server identity. For details on how to get the thumbprint, see [Request TLS Certificate or SSH Fingerprint](#tag/Connection/operation/GetConnectionCertificate).
type: string
port:
description: Port used to communicate with the server.
type: integer
type: object
WindowsHostComponentPortModel:
description: Ports used by Veeam Backup & Replication components.
properties:
componentName:
$ref: '#/components/schemas/EWindowsHostComponentType'
port:
description: Port used by the component.
type: integer
required:
- componentName
- port
type: object
BaseManagedServerModel:
properties:
credentialsId:
description: ID of a credentials record used to connect to the server.
format: uuid
type: string
description:
description: Description of the server.
type: string
id:
description: ID of the server.
format: uuid
type: string
name:
description: Full DNS name or IP address of the server.
type: string
type:
$ref: '#/components/schemas/EManagedServerType'
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
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
EManagedServerType:
description: Type of the server.
enum:
- WindowsHost
- LinuxHost
- ViHost
type: string
LinuxHostSSHSettingsModel:
description: SSH settings.
properties:
managementPort:
description: Port used as a control channel from the Veeam Backup & Replication console to the Linux server.
type: integer
portRangeEnd:
description: End port used for data transfer.
type: integer
portRangeStart:
description: Start port used for data transfer.
type: integer
serverThisSide:
description: If *true*, the server is run on this side.
type: boolean
sshTimeOutMs:
description: SSH timeout, in ms. If a task targeted at the server is inactive after the timeout, the task is terminated.
type: integer
type: object
ManagedServersResult:
properties:
data:
description: Array of managed servers.
items:
$ref: '#/components/schemas/ManagedServerModel'
type: array
pagination:
$ref: '#/components/schemas/PaginationResult'
required:
- data
- pagination
type: object
WindowsHostModel:
allOf:
- $ref: '#/components/schemas/BaseManagedServerModel'
- properties:
networkSettings:
$ref: '#/components/schemas/WindowsHostPortsModel'
type: object
ESessionResult:
description: Result status.
enum:
- None
- Success
- Warning
- Failed
type: string
BaseCredentialsSpec:
properties:
description:
description: Description of the credentials record.
type: string
password:
description: Password.
type: string
type:
$ref: '#/components/schemas/ECredentialsType'
username:
description: User name.
type: string
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
WindowsHostPortsModel:
description: Veeam Backup & Replication components installed on the server and ports used by the components.
properties:
components:
description: Array of Veeam Backup & Replication components.
items:
$ref: '#/components/schemas/WindowsHostComponentPortModel'
type: array
portRangeEnd:
description: End port used for data transfer.
type: integer
portRangeStart:
description: Start port used for data transfer.
type: integer
serverThisSide:
description: If *true*, the server is run on this side.
type: boolean
type: object
EWindowsHostComponentType:
description: Veeam Backup & Replication component.
enum:
- Transport
- Nfs
- HvIntegration
- DeployerSvc
- WanAccelerator
- Tape
- CloudGate
- CloudServiceInvoker
- CloudServiceRemoting
- RestoreProxy
- EpAgent
- EpAgentSqlLocalDB
- EpAgentSharedManagementObjects
- EpAgentSqlSysClrTypes
- AgentConfigureService
- VawRedist
- ValRedist
- GuestControl
- FileSystemVssIntegration
- VssHwSnapshotProvider
- Cdp
- VamRedist
type: string
LinuxHostSpec:
allOf:
- $ref: '#/components/schemas/BaseManagedServerSpec'
properties:
sshFingerprint:
description: SSH key fingerprint used to verify the server identity. For details on how to get the fingerprint, see [Request TLS Certificate or SSH Fingerprint](#tag/Connection/operation/GetConnectionCertificate).
type: string
sshSettings:
$ref: '#/components/schemas/LinuxHostSSHSettingsModel'
required:
- sshFingerprint
type: object
ViHostModel:
allOf:
- $ref: '#/components/schemas/BaseManagedServerModel'
- properties:
port:
description: Port used to communicate with the server.
type: integer
viHostType:
$ref: '#/components/schemas/EViHostType'
required:
- port
type: object
ManagedServersFilters:
properties:
limit:
format: int32
type: integer
nameFilter:
type: string
orderAsc:
type: boolean
orderColumn:
$ref: '#/components/schemas/EManagedServersFiltersOrderColumn'
skip:
format: int32
type: integer
typeFilter:
$ref: '#/components/schemas/EManagedServerType'
viTypeFilter:
$ref: '#/components/schemas/EViHostType'
type: object
LinuxCredentialsSpec:
allOf:
- $ref: '#/components/schemas/BaseCredentialsSpec'
- properties:
SSHPort:
description: SSH port used to connect to a Linux server.
type: integer
addToSudoers:
description: If *true*, the account is automatically added to the sudoers file.
type: boolean
autoElevated:
description: If *true*, the permissions of the account are automatically elevated to the root user.
type: boolean
passphrase:
description: Passphrase that protects the private key.
type: string
privateKey:
description: Private key.
type: string
rootPassword:
description: Password for the root account.
type: string
tag:
description: Tag used to identify the credentials record.
type: string
useSu:
description: If *true*, the `su` command is used for Linux distributions where the `sudo` command is not available.
type: boolean
type: object
EViHostType:
description: Type of the VMware vSphere server.
enum:
- ESX
- ESXi
- VC
type: string
ManagedServerSpec:
allOf:
- discriminator:
mapping:
LinuxHost: '#/components/schemas/LinuxHostSpec'
ViHost: '#/components/schemas/ViHostSpec'
WindowsHost: '#/components/schemas/WindowsHostSpec'
propertyName: type
oneOf:
- $ref: '#/components/schemas/WindowsHostSpec'
- $ref: '#/components/schemas/LinuxHostSpec'
- $ref: '#/components/schemas/ViHostSpec'
- $ref: '#/components/schemas/BaseManagedServerSpec'
ESessionState:
description: State of the session.
enum:
- Stopped
- Starting
- Stopping
- Working
- Pausing
- Resuming
- WaitingTape
- Idle
- Postprocessing
- WaitingRepository
- WaitingSlot
type: string
LinuxHostModel:
allOf:
- $ref: '#/components/schemas/BaseManagedServerModel'
- properties:
credentialsStorageType:
$ref: '#/components/schemas/ECredentialsStorageType'
sshSettings:
$ref: '#/components/schemas/LinuxHostSSHSettingsModel'
type: object
EManagedServersFiltersOrderColumn:
enum:
- Name
- Type
- Description
type: string
ESessionType:
description: Type of the session.
enum:
- Infrastructure
- Job
- Automation
- ConfigurationBackup
- RepositoryMaintenance
- RepositoryEvacuate
- InfrastructureItemDeletion
- RestoreVm
- InstantRecovery
- FirstClassDiskInstantRestore
- AzureApplianceDeploy
- QuickMigration
type: string
ECredentialsType:
description: Credentials type.
enum:
- Standard
- Linux
type: string
ManagedServerModel:
allOf:
- discriminator:
mapping:
LinuxHost: '#/components/schemas/LinuxHostModel'
ViHost: '#/components/schemas/ViHostModel'
WindowsHost: '#/components/schemas/WindowsHostModel'
propertyName: type
oneOf:
- $ref: '#/components/schemas/WindowsHostModel'
- $ref: '#/components/schemas/LinuxHostModel'
- $ref: '#/components/schemas/ViHostModel'
- $ref: '#/components/schemas/BaseManagedServerModel'
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.
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 \