Veeam IAMRoles API
The IAMRoles API from Veeam — 6 operation(s) for iamroles.
The IAMRoles API from Veeam — 6 operation(s) for iamroles.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/veeam-iamroles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0-rev0
title: Veeam Backup for AWS public API 1.0 Agents IAM Roles API
description: The Agents section defines paths and operations for managing recovery tokens used for bare metal recovery.
servers:
- url: https://localhost:9419
description: Base URL declared by the provider in apis.yml (roadmap#122).
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:
RegionTypes:
enum:
- Global
- Emulator
- Government
- China
type: string
AmazonAccountAccessKeysUpdateSpec:
required:
- accessKey
- secretKey
- defaultRegionType
type: object
properties:
accessKey:
type: string
secretKey:
type: string
defaultRegionType:
$ref: '#/components/schemas/RegionTypes'
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
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'
ValidationMessage:
type: object
properties:
severity:
enum:
- Warning
- Error
type: string
message:
type: string
contextId:
type: string
format: uuid
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
exclusiveMaximum: 600
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
AmazonAccountIAMRole:
required:
- roleName
- isDefault
type: object
properties:
parentAmazonAccountId:
format: uuid
type: string
roleName:
type: string
isDefault:
type: boolean
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'
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'
AmazonAccountNameValidationSpec:
required:
- name
type: object
properties:
name:
minLength: 1
type: string
RescanCloudAccountSpec:
type: object
properties:
regionIds:
type: array
uniqueItems: false
items:
type: string
format: uuid
AmazonAccountAccessKeys:
required:
- accessKey
- defaultRegionType
type: object
properties:
accessKey:
type: string
defaultRegion:
$ref: '#/components/schemas/RegionTypes'
AmazonAccountsSortColumns:
enum:
- nameAsc
- nameDesc
type: string
AmazonAccountIAMRoleFromAnotherAccount:
required:
- parentAmazonAccountId
- accountId
- roleName
type: object
properties:
parentAmazonAccountId:
format: uuid
type: string
accountId:
type: string
roleName:
type: string
AmazonAccountIAMRoleUpdateSpec:
required:
- roleName
type: object
properties:
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'
AmazonAccountIAMRoleFromAnotherAccountUpdateSpec:
required:
- accountId
- roleName
type: object
properties:
accountId:
type: string
roleName:
type: string
externalId:
type: string
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'
Link:
required:
- rel
- href
- method
type: object
properties:
rel:
type: string
href:
type: string
method:
type: string
enum:
- GET
- POST
- PUT
- DELETE
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\>