OpenAPI Specification
openapi: 3.0.0
info:
description: The Eon.io REST API
title: Eon accounts API
version: 1.0.0
servers:
- url: /
security:
- ApiKeyAuth: []
tags:
- description: Manage connected cloud accounts onboarded to Eon.
name: accounts
x-displayName: Connected Accounts
paths:
/v1/projects/{projectId}/source-accounts:
post:
description: 'Description: Connects a source cloud account to the given project.'
operationId: connectSourceAccount
parameters:
- description: 'ID of the project you want to connect the source account to.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectSourceAccountRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectSourceAccountResponse'
description: Source account connected.
'409':
description: Source account already exists in Eon.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Connect Source Account
tags:
- accounts
x-mcp: true
x-internal: false
x-data-access:
excluded: true
x-permissions:
- create:source_accounts
x-audit-log:
action: create
entityRefs:
- entityType: source_cloud_account
in: resBody
key: sourceAccount.id
/v1/projects/{projectId}/source-accounts/list:
post:
description: 'Description: Retrieves a list of source accounts for the given project.'
operationId: listSourceAccounts
parameters:
- description: 'ID of the project whose source accounts you want to retrieve.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ListSourceAccountsRequest'
description: 'Filter options.
'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListSourceAccountsResponse'
description: Source accounts retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Source Accounts
tags:
- accounts
x-mcp: true
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
/v1/projects/{projectId}/source-accounts/{accountId}:
delete:
description: 'Description: Deletes a source account from the project.
This option is available only for source accounts whose status is `DISCONNECTED` or `INSUFFICIENT_PERMISSIONS`.
Source accounts with `CONNECTED` status must be disconnected before they can be deleted.
'
operationId: deleteSourceAccount
parameters:
- description: 'ID of the project.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account to delete.
example: 64a698c5-540d-5d09-80f7-f4c39c7045c1
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
description: Source account deleted.
'404':
description: Source account wasn't found.
'409':
description: Source account is connected and can't be deleted.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Delete Source Account
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- delete:source_accounts
x-audit-log:
action: delete
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
get:
description: 'Description: Retrieve a source account by ID.'
operationId: getSourceAccount
parameters:
- description: ID of the project.
example: 512010dd-8eaa-5b68-ab64-287458195d44
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account.
example: 0fa724c4-9251-5bcb-94ae-b5dd5bcb7a93
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetSourceAccountResponse'
description: Source account retrieved.
'404':
description: Source account wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Get Source Account
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
patch:
description: 'Description: Updates source account properties.
'
operationId: updateSourceAccount
parameters:
- description: ID of the project.
example: 8b4655a7-5669-51d2-83b3-038e9bf6f12f
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account to update.
example: fc495499-9796-5fc9-ade7-1ba924cbcc42
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSourceAccountRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSourceAccountResponse'
description: Source account updated.
'400':
description: 'Invalid request.
Typically this indicates invalid JSON, invalid or changed source account ID, or the cloud provider did not accept verification of the updated role or service account.
'
'404':
description: Source account wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Update Source Account
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
/v1/projects/{projectId}/source-accounts/{accountId}/disconnect:
post:
description: 'Description: Disconnects a source account from the given project.
After disconnecting, resources in the source account are no longer backed up.
Resources with snapshots continue to be displayed in the inventory, and you can still explore, query, and restore them.
Resources with no remaining snapshots are removed from the inventory.
'
operationId: DisconnectSourceAccount
parameters:
- description: 'ID of the project.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account to disconnect.
example: 72d29280-a0be-59df-b33c-59f9015606c3
explode: false
in: path
name: accountId
required: true
schema:
format: tobedefined
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DisconnectSourceAccountResponse'
description: Source account disconnected.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Disconnect Source Account
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
/v1/projects/{projectId}/source-accounts/{accountId}/reconnect:
post:
description: 'Description: Reconnects a source account to the given project.
'
operationId: ReconnectSourceAccount
parameters:
- description: 'ID of the project whose source account you want to reconnect.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account to reconnect.
example: 72d29280-a0be-59df-b33c-59f9015606c3
explode: false
in: path
name: accountId
required: true
schema:
format: tobedefined
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ReconnectSourceAccountResponse'
description: Source account reconnected.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Reconnect Source Account
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
/v1/projects/{projectId}/source-accounts/{accountId}/metrics-config:
delete:
description: 'Description: Disables metrics for the specified source account.
'
operationId: disableSourceAccountMetricsConfig
parameters:
- description: 'ID of the project whose source account metrics configuration you want to disable.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: d593811b-bfbc-515b-a21d-9fb95eb1071b
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account.
example: 806f6781-1d66-4c7d-9f0e-e7da04e12541
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
description: Metrics disabled.
'404':
description: Source account wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Disable Source Account Metrics
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- delete:source_accounts
x-audit-log:
action: delete
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
get:
description: 'Description: Retrieves the metrics configuration of the specified source account.
'
operationId: getSourceAccountMetricsConfig
parameters:
- description: 'ID of the project whose source account metrics configuration you want to retrieve.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account.
example: 806f6781-1d66-4c7d-9f0e-e7da04e12541
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetSourceAccountMetricsConfigResponse'
description: Metrics configuration retrieved.
'404':
description: Source account wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Get Source Account Metrics Configuration
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- read:source_accounts
x-audit-log:
excluded: true
put:
description: 'Description: Enables or updates the metrics configuration of the specified source account.
'
operationId: enableSourceAccountMetricsConfig
parameters:
- description: 'ID of the project whose source account metrics you want to configure.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: b9c79c3f-399c-5e32-a8fb-762f87bebd7b
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the source account.
example: 806f6781-1d66-4c7d-9f0e-e7da04e12541
explode: false
in: path
name: accountId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EnableSourceAccountMetricsConfigRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EnableSourceAccountMetricsConfigResponse'
description: Metrics configuration set.
'404':
description: Source account wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Configure Source Account Metrics
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: source_cloud_account
in: path
key: accountId
/v1/projects/{projectId}/source-aws-organizational-units:
post:
description: 'Description: Connects an AWS organizational unit to the given project.
All current and future descendant AWS accounts within the organizational unit are discovered and available for backup.
'
operationId: connectSourceAwsOrganizationalUnit
parameters:
- description: 'ID of the project you want to connect the AWS organizational unit to.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectSourceAwsOrganizationalUnitRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectSourceAwsOrganizationalUnitResponse'
description: AWS organizational unit connected.
'409':
description: AWS organizational unit already exists in Eon.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Connect Source AWS Organizational Unit
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- create:source_accounts
x-audit-log:
action: create
entityRefs:
- entityType: account
in: resBody
key: id
/v1/projects/{projectId}/source-aws-organizational-units/list:
post:
description: 'Description: Retrieves a list of AWS organizational units for the given project.'
operationId: listSourceAwsOrganizationalUnits
parameters:
- description: 'ID of the project whose AWS organizational units you want to retrieve.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListSourceAwsOrganizationalUnitsResponse'
description: AWS organizational units retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Source AWS Organizational Units
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions: []
x-audit-log:
excluded: true
/v1/projects/{projectId}/source-aws-organizational-units/{organizationalUnitId}/reconnect:
post:
description: 'Description: Reconnects a previously disconnected AWS organizational unit and its descendant accounts to the given project.
'
operationId: reconnectSourceAwsOrganizationalUnit
parameters:
- description: 'ID of the project whose AWS organizational unit you want to reconnect.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the AWS organizational unit to reconnect.
example: 72d29280-a0be-59df-b33c-59f9015606c3
explode: false
in: path
name: organizationalUnitId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ReconnectSourceAwsOrganizationalUnitResponse'
description: AWS organizational unit reconnected.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Reconnect Source AWS Organizational Unit
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: account
in: path
key: organizationalUnitId
/v1/projects/{projectId}/source-aws-organizational-units/{organizationalUnitId}/disconnect:
post:
description: 'Description: Disconnects an AWS organizational unit (OU) and its accounts from the given project.
After disconnecting, resources in the OU descendant accounts are no longer backed up.
Resources with snapshots continue to be shown in the inventory, and you can still explore, query, and restore them.
Resources with no remaining snapshots are removed from the inventory.
'
operationId: disconnectSourceAwsOrganizationalUnit
parameters:
- description: 'ID of the project whose AWS organizational unit you want to disconnect.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the AWS organizational unit to disconnect.
example: 72d29280-a0be-59df-b33c-59f9015606c3
explode: false
in: path
name: organizationalUnitId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DisconnectSourceAwsOrganizationalUnitResponse'
description: AWS organizational unit disconnected.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Disconnect Source AWS Organizational Unit
tags:
- accounts
x-internal: false
x-data-access:
excluded: true
x-permissions:
- update:source_accounts
x-audit-log:
action: update
entityRefs:
- entityType: account
in: path
key: organizationalUnitId
/v1/projects/{projectId}/restore-aws-organizational-units:
post:
description: 'Description: Connects an AWS organizational unit to the given project as a restore target.
All current and future descendant AWS accounts within the organizational unit are discovered and available as restore accounts.
'
operationId: connectRestoreAwsOrganizationalUnit
parameters:
- description: 'ID of the project you want to connect the AWS organizational unit to.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: cc4fe8ee-0c62-56f2-9fda-f27bc7753e55
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: 'ID of an APPROVED action approval request authorizing this operation. When set, the gateway
validates the request envelope still matches the captured one and atomically
marks it EXECUTED before letting the operation run. Single-use; ignored on routes
that are not action-approval-protected.
'
explode: false
in: header
name: X-Action-Approval-Request-Id
required: false
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectRestoreAwsOrganizationalUnitRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectRestoreAwsOrganizationalUnitResponse'
description: AWS organizational unit connected.
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED s
# --- truncated at 32 KB (163 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eon/refs/heads/main/openapi/eon-accounts-api-openapi.yml