Veeam IAMRoles API
The IAMRoles API from Veeam — 6 operation(s) for iamroles.
The IAMRoles API from Veeam — 6 operation(s) for iamroles.
openapi: 3.0.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents IAMRoles API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
security:
- Bearer: []
tags:
- name: IAMRoles
paths:
/api/v1/accounts/amazon:
get:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- IAMRoles
operationId: AmazonAccountsGetAll
parameters:
- name: SearchPattern
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/AmazonAccountsFilters'
schema:
type: string
- name: Offset
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/AmazonAccountsFilters'
schema:
type: integer
format: int32
- name: Limit
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/AmazonAccountsFilters'
schema:
type: integer
format: int32
- name: Sort
in: query
required: false
x-veeam-spec:
$ref: '#/components/schemas/AmazonAccountsFilters'
style: form
explode: false
schema:
type: array
items:
enum:
- nameAsc
- nameDesc
type: string
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmazonAccountsPage'
application/problem+json:
schema:
$ref: '#/components/schemas/AmazonAccountsPage'
'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
tags:
- IAMRoles
operationId: AddAmazonAccount
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
application/json:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
text/json:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
application/*+json:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
application/csp-report:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
application/problem+json:
schema:
$ref: '#/components/schemas/AmazonAccountCreateSpec'
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmazonAccount'
application/problem+json:
schema:
$ref: '#/components/schemas/AmazonAccount'
'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/accounts/amazon/validateName:
post:
x-veeam-authorize:
roles:
- Portal Administrator
tags:
- IAMRoles
operationId: ValidateAmazonAccountName
parameters:
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AmazonAccountNameValidationSpec'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
application/problem+json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
'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'
'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/accounts/amazon/{amazonAccountId}/validateDelete:
post:
x-veeam-authorize:
roles:
- Portal Administrator
tags:
- IAMRoles
operationId: ValidateDeleteAmazonAccount
parameters:
- name: amazonAccountId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
application/json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
application/problem+json:
schema:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/ValidationMessage'
'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/accounts/amazon/{amazonAccountId}:
get:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- IAMRoles
operationId: AmazonAccountsGetOneById
parameters:
- name: amazonAccountId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmazonAccount'
application/problem+json:
schema:
$ref: '#/components/schemas/AmazonAccount'
'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'
put:
tags:
- IAMRoles
operationId: UpdateAmazonAccount
parameters:
- name: amazonAccountId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/AmazonAccountUpdateSpec'
application/json:
schema:
$ref: '#/components/schemas/AmazonAccountUpdateSpec'
text/json:
schema:
$ref: '#/components/schemas/AmazonAccountUpdateSpec'
application/*+json:
schema:
$ref: '#/components/schemas/AmazonAccountUpdateSpec'
application/csp-report:
schema:
$ref: '#/components/schemas/AmazonAccountUpdateSpec'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AmazonAccount'
application/problem+json:
schema:
$ref: '#/components/schemas/AmazonAccount'
'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:
tags:
- IAMRoles
operationId: DeleteAmazonAccount
parameters:
- name: amazonAccountId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
'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/accounts/amazon/{amazonAccountId}/rescan:
post:
x-veeam-authorize:
roles:
- Portal Administrator
- Portal Operator
tags:
- IAMRoles
operationId: RescanAmazonAccount
parameters:
- name: amazonAccountId
in: path
required: true
schema:
type: string
format: uuid
- $ref: '#/components/parameters/apiVersionParam'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RescanCloudAccountSpec'
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: '#/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/accounts/amazon/export:
post:
x-veeam-authorize:
roles:
- Portal Administrator
tags:
- IAMRoles
operationId: ExportAmazonAccounts
parameters:
- $ref: '#/components/parameters/apiVersionParam'
responses:
'200':
description: Success
content:
text/csv:
schema:
type: string
format: binary
application/xml:
schema:
type: string
format: binary
'401':
description: Unauthorized. The authorization header has been expected but not found (or found but is expired).
content:
text/csv:
schema:
$ref: '#/components/schemas/Error'
application/xml:
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:
text/csv:
schema:
$ref: '#/components/schemas/Error'
application/xml:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Link:
required:
- rel
- href
- method
type: object
properties:
rel:
type: string
href:
type: string
method:
type: string
enum:
- GET
- POST
- PUT
- DELETE
ValidationMessage:
type: object
properties:
severity:
enum:
- Warning
- Error
type: string
message:
type: string
contextId:
type: string
format: uuid
AmazonAccountIAMRoleFromAnotherAccountUpdateSpec:
required:
- accountId
- roleName
type: object
properties:
accountId:
type: string
roleName:
type: string
externalId:
type: string
RegionTypes:
enum:
- Global
- Emulator
- Government
- China
type: string
AmazonAccountIAMRoleFromAnotherAccount:
required:
- parentAmazonAccountId
- accountId
- roleName
type: object
properties:
parentAmazonAccountId:
format: uuid
type: string
accountId:
type: string
roleName:
type: string
AmazonAccountsFilters:
type: object
properties:
searchPattern:
type: string
offset:
type: integer
format: int32
minimum: 0
limit:
type: integer
format: int32
minimum: -1
sort:
type: array
uniqueItems: false
items:
$ref: '#/components/schemas/AmazonAccountsSortColumns'
Error:
description: ''
required:
- type
- title
- status
- errorCode
type: object
properties:
type:
type: string
format: uri
description: An URI reference that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g. using HTML).
title:
type: string
description: A short, summary of the problem type. Written in English and readable for engineers (usually not suited for non technical stakeholders and not localized)
status:
type: integer
format: int32
description: The HTTP status code generated by the origin server for this occurrence of the problem.
minimum: 400
maximum: 600
exclusiveMaximum: true
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
details:
description: The error message contains a generic description of the error condition in English. It is intended for a human audience
type: string
instance:
description: ID of the object that is involved in the error (or empty)
type: string
format: uri
data:
type: object
description: Error payload
additionalProperties:
type: object
AmazonAccountAccessKeysCreateSpec:
required:
- accessKey
- secretKey
- defaultRegionType
type: object
properties:
accessKey:
type: string
secretKey:
type: string
defaultRegionType:
$ref: '#/components/schemas/RegionTypes'
AmazonAccountIAMRoleCreateSpec:
required:
- roleName
type: object
properties:
roleName:
type: string
RescanCloudAccountSpec:
type: object
properties:
regionIds:
type: array
uniqueItems: false
items:
type: string
format: uuid
SessionLink:
required:
- sessionId
type: object
properties:
sessionId:
type: string
format: uuid
_links:
type: array
uniqueItems: false
items:
$ref: '#/components/schemas/Link'
AmazonAccountCreateSpec:
required:
- name
- username
type: object
properties:
name:
maxLength: 255
minLength: 0
type: string
description:
maxLength: 512
minLength: 0
type: string
accessKeys:
$ref: '#/components/schemas/AmazonAccountAccessKeysCreateSpec'
IAMRole:
$ref: '#/components/schemas/AmazonAccountIAMRoleCreateSpec'
IAMRoleFromAnotherAccount:
$ref: '#/components/schemas/AmazonAccountIAMRoleFromAnotherAccountCreateSpec'
AmazonAccountNameValidationSpec:
required:
- name
type: object
properties:
name:
minLength: 1
type: string
AmazonAccountsPage:
required:
- results
- totalCount
type: object
properties:
results:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/AmazonAccount'
totalCount:
format: int32
type: integer
_links:
type: array
uniqueItems: false
items:
$ref: '#/components/schemas/Link'
AmazonAccountAccessKeys:
required:
- accessKey
- defaultRegionType
type: object
properties:
accessKey:
type: string
defaultRegion:
$ref: '#/components/schemas/RegionTypes'
AmazonAccountIAMRole:
required:
- roleName
- isDefault
type: object
properties:
parentAmazonAccountId:
format: uuid
type: string
roleName:
type: string
isDefault:
type: boolean
AmazonAccountIAMRoleFromAnotherAccountCreateSpec:
required:
- accountId
- roleName
type: object
properties:
accountId:
type: string
roleName:
type: string
externalId:
type: string
AmazonAccountUpdateSpec:
required:
- name
type: object
properties:
name:
maxLength: 255
minLength: 0
type: string
description:
maxLength: 512
minLength: 0
type: string
accessKeys:
$ref: '#/components/schemas/AmazonAccountAccessKeysUpdateSpec'
IAMRole:
$ref: '#/components/schemas/AmazonAccountIAMRoleUpdateSpec'
IAMRoleFromAnotherAccount:
$ref: '#/components/schemas/AmazonAccountIAMRoleFromAnotherAccountUpdateSpec'
AmazonAccountIAMRoleUpdateSpec:
required:
- roleName
type: object
properties:
roleName:
type: string
AmazonAccountsSortColumns:
enum:
- nameAsc
- nameDesc
type: string
AmazonAccount:
required:
- id
- name
- awsid
- description
type: object
properties:
id:
format: uuid
type: string
name:
type: string
description:
type: string
awsid:
type: string
regionType:
$ref: '#/components/schemas/RegionTypes'
accessKeys:
$ref: '#/components/schemas/AmazonAccountAccessKeys'
IAMRole:
$ref: '#/components/schemas/AmazonAccountIAMRole'
IAMRoleFromAnotherAccount:
$ref: '#/components/schemas/AmazonAccountIAMRoleFromAnotherAccount'
_links:
type: array
uniqueItems: false
items:
$ref: '#/components/schemas/Link'
AmazonAccountAccessKeysUpdateSpec:
required:
- accessKey
- secretKey
- defaultRegionType
type: object
properties:
accessKey:
type: string
secretKey:
type: string
defaultRegionType:
$ref: '#/components/schemas/RegionTypes'
parameters:
apiVersionParam:
name: x-api-version
in: header
required: true
schema:
type: string
default: 1.0-rev0
securitySchemes:
Bearer:
name: Authorization
in: header
type: apiKey
description: Bearer \<JWT\>