openapi: 3.0.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents Traffic Rules API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
security:
- Bearer: []
tags:
- description: The Traffic Rules section defines paths and operations for retrieving and editing information about network traffic rules that are configured on the backup server.
name: Traffic Rules
paths:
/api/v1/trafficRules:
get:
description: The HTTP GET request to the `/api/v1/trafficRules` path allows you to get network traffic rules that control traffic transferred between backup infrastructure components.
operationId: GetAllTrafficRules
parameters:
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
content:
application/json:
example:
trafficRules:
- encryptionEnabled: true
id: 622b0112-a972-49c2-9987-24a57ddc930a
name: Internet
sourceIPEnd: ''
sourceIPStart: Any
targetIPEnd: ''
targetIPStart: Internet
throttlingEnabled: false
throttlingUnit: MbitPerSpec
throttlingValue: 1
throttlingWindowEnabled: false
throttlingWindowOptions:
days:
- day: sunday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: monday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: tuesday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: wednesday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: thursday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: friday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: saturday
hours: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
uploadStreamsCount: 5
preferredNetworks:
isEnabled: false
networks: []
useMultipleStreamsPerJob: true
schema:
$ref: '#/components/schemas/GlobalNetworkTrafficRulesModel'
description: OK
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get Traffic Rules
tags:
- Traffic Rules
x-veeam-authorize:
claims:
- ViewTrafficRules
put:
description: The HTTP PUT request to the `/api/v1/trafficRules` path allows you to edit network traffic rules that are configured on the backup server.
operationId: UpdateTrafficRules
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
example:
preferredNetworks:
isEnabled: true
networks:
- cidrNotation: '8'
ipAddress: 124.0.0.0
subnetMask: 255.0.0.0
- cidrNotation: '8'
ipAddress: 123.0.0.0
subnetMask: 255.0.0.0
trafficRules:
- encryptionEnabled: true
id: 622b0112-a972-49c2-9987-24a57ddc930a
name: Internet
sourceIPEnd: ''
sourceIPStart: Any
targetIPEnd: ''
targetIPStart: Internet
throttlingEnabled: false
throttlingUnit: MbitPerSpec
throttlingValue: 2
throttlingWindowEnabled: true
throttlingWindowOptions:
days:
- day: sunday
hours: 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: monday
hours: 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: tuesday
hours: 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: wednesday
hours: 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: thursday
hours: 1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: friday
hours: 1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: saturday
hours: 1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
useMultipleStreamsPerJob: true
uploadStreamsCount: 5
schema:
$ref: '#/components/schemas/GlobalNetworkTrafficRulesModel'
required: true
responses:
'201':
content:
application/json:
example:
uploadStreamsCount: 5
trafficRules:
- encryptionEnabled: true
id: 622b0112-a972-49c2-9987-24a57ddc930a
name: Internet
sourceIPEnd: ''
sourceIPStart: Any
targetIPEnd: ''
targetIPStart: Internet
throttlingEnabled: false
throttlingUnit: MbitPerSpec
throttlingValue: 2
throttlingWindowEnabled: true
throttlingWindowOptions:
days:
- day: sunday
hours: 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: monday
hours: 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: tuesday
hours: 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: wednesday
hours: 1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: thursday
hours: 1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: friday
hours: 1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- day: saturday
hours: 1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
useMultipleStreamsPerJob: true
preferredNetworks:
isEnabled: true
networks:
- cidrNotation: '8'
ipAddress: 124.0.0.0
subnetMask: 255.0.0.0
- cidrNotation: '8'
ipAddress: 123.0.0.0
subnetMask: 255.0.0.0
schema:
$ref: '#/components/schemas/GlobalNetworkTrafficRulesModel'
description: Infrastructure session has been created to edit the traffic rules. 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: Edit Traffic Rules
tags:
- Traffic Rules
x-veeam-authorize:
claims:
- UpdateTrafficRules
components:
schemas:
TrafficRuleModel:
properties:
encryptionEnabled:
description: If *true*, traffic encryption is enabled.
type: boolean
id:
description: ID of the rule.
format: uuid
type: string
name:
description: Name of the rule.
type: string
sourceIPEnd:
description: End IP address of the range for the backup infrastructure components on the source side.
type: string
sourceIPStart:
description: Start IP address of the range for the backup infrastructure components on the source side.
type: string
targetIPEnd:
description: End IP address of the range for the backup infrastructure components on the target side.
type: string
targetIPStart:
description: Start IP address of the range for the backup infrastructure components on the target side.
type: string
throttlingEnabled:
description: If *true*, traffic throttling is enabled.
type: boolean
throttlingUnit:
$ref: '#/components/schemas/ESpeedUnit'
throttlingValue:
description: Maximum speed that must be used to transfer data from source to target.
format: int32
type: integer
throttlingWindowEnabled:
description: If *true*, throttling window during which the speed must be limited is enabled.
type: boolean
throttlingWindowOptions:
$ref: '#/components/schemas/BackupWindowSettingModel'
required:
- name
- sourceIPStart
- sourceIPEnd
- targetIPStart
- targetIPEnd
type: object
BackupWindowDayHoursModel:
description: Hourly scheme for a day.
properties:
day:
$ref: '#/components/schemas/EDayOfWeek'
hours:
description: String of 24 hours in the following format:
*1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1*
where *1* means permitted, *0* means denied.
type: string
required:
- day
- hours
type: object
GlobalNetworkTrafficRulesModel:
properties:
preferredNetworks:
$ref: '#/components/schemas/PreferredNetworksModel'
trafficRules:
description: Array of traffic rules.
items:
$ref: '#/components/schemas/TrafficRuleModel'
type: array
uploadStreamsCount:
description: Number of TCP/IP connections per job.
format: integer
type: integer
useMultipleStreamsPerJob:
description: If *true*, Veeam Backup & Replication uses multiple TCP/IP transfer connection for every job session.
type: boolean
required:
- useMultipleStreamsPerJob
type: object
BackupWindowSettingModel:
description: Time scheme that defines permitted days and hours for the job to start.
properties:
days:
description: Array of per-day schemes.
items:
$ref: '#/components/schemas/BackupWindowDayHoursModel'
type: array
required:
- days
type: object
PreferredNetworkModel:
properties:
cidrNotation:
description: CIDR notation.
type: string
ipAddress:
description: IP address.
type: string
subnetMask:
description: Subnet mask.
type: string
type: object
ESpeedUnit:
description: Traffic speed unit.
enum:
- KbytePerSec
- MbitPerSpec
- MbytePerSec
type: string
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
EDayOfWeek:
description: Day of the week.
enum:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
type: string
PreferredNetworksModel:
description: Preferred networks used for backup and replication traffic.
properties:
isEnabled:
description: If *true*, prefered networks are enabled.
type: boolean
networks:
description: Array of networks.
items:
$ref: '#/components/schemas/PreferredNetworkModel'
type: array
required:
- isEnabled
type: object
responses:
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.
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).
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.
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 \