openapi: 3.0.0
info:
description: The Eon.io REST API
title: Eon accounts snapshots API
version: 1.0.0
servers:
- url: /
security:
- ApiKeyAuth: []
tags:
- description: Manage resource snapshots and point-in-time recovery points.
name: snapshots
x-displayName: Snapshots
paths:
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-files:
post:
description: 'Description: Restores files from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreFiles
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: tobedefined
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreFilesRequest'
required: true
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore Files
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_file
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-bucket:
post:
description: 'Description: Restores a bucket from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreBucket
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: tobedefined
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreBucketRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore Bucket
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-bigquery-dataset:
post:
description: 'Description: Restores a BigQuery dataset from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreBigQueryDataset
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: tobedefined
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreBigQueryDatasetRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore BigQuery Dataset
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-ec2-ebs-volume:
post:
description: 'Description: Restores an EBS volume from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreEbsVolume
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: tobedefined
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreVolumeToEbsRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Volume, snapshot, or restore 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: Restore EBS Volume
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/convert-ec2-ebs-snapshot:
post:
description: 'Description: Restores an Eon volume snapshot to an EBS snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreToEbsSnapshot
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreVolumeToEbsSnapshotRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Volume, snapshot, or restore account not 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: Restore to EBS Snapshot
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-rds-instance:
post:
description: 'Description: Restores an RDS instance from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreDatabase
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreDbToRdsInstanceRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore RDS Instance
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-ec2-instance:
post:
description: 'Description: Restores an EC2 instance from an Eon snapshot.
When restoring an EC2 instance, you''ll need to specify the configurations of the instance and each volume you want to restore.
You can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backups/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backups/snapshots/list-resource-snapshots).
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreEc2Instance
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreAwsEc2InstanceRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore EC2 Instance
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-dynamo-db-table:
post:
description: 'Description: Restores a DynamoDB table from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreDynamoDBTable
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 2f97ca76-6a78-55d8-94d3-66c2f2cfff23
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: ac3014c2-9ab3-5d7f-ab4c-73412d6b9ef5
explode: false
in: path
name: snapshotId
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/RestoreDynamoDBTableRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore DynamoDB Table
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-vm-instance:
post:
description: 'Description: Restores an Azure VM instance from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreAzureVmInstance
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreAzureVmInstanceRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore Azure VM Instance
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-sql-database:
post:
description: 'Description: Restores an Azure SQL Database from an Eon snapshot.
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreAzureSqlDatabase
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreAzureSqlDatabaseRequest'
description: The request body for restoring the instance
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore Azure SQL Database
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-azure-disk:
post:
description: 'Description: Restores an Azure disk from an Eon snapshot.
When restoring a disk, you''ll specify the configurations of the disk you want to restore.
You can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backups/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backups/snapshots/list-resource-snapshots).
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreAzureDisk
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: c11d3c11-7be5-4ee4-9eb8-2024d9c04904
explode: false
in: path
name: snapshotId
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/RestoreAzureDiskRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Volume, snapshot, or restore 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: Restore Azure Disk
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-disk:
post:
description: 'Description: Restores a GCP disk from an Eon snapshot.
When restoring a disk, you''ll specify the configurations of the disk you want to restore.
You can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backups/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backups/snapshots/list-resource-snapshots).
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreGcpDisk
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreGcpDiskRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore GCP Disk
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-vm-instance:
post:
description: 'Description: Restores a GCP VM instance from an Eon snapshot.
When restoring a GCP VM instance, you''ll need to specify the configurations of the instance and each disk you want to restore.
You can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backups/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backups/snapshots/list-resource-snapshots).
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreGcpVmInstance
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreGcpVmInstanceRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore GCP VM Instance
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/resources/{id}/snapshots/{snapshotId}/restore-gcp-cloudsql:
post:
description: 'Description: Restores a GCP Cloud SQL instance from an Eon snapshot.
When restoring a GCP Cloud SQL instance, you''ll need to specify the configurations of the database instance you want to restore.
You can retrieve the configurations from the snapshot by calling [Get Snapshot](/api/api-reference/backups/snapshots/get-snapshot) or [List Resource Snapshots](/api/api-reference/backups/snapshots/list-resource-snapshots).
This operation is asynchronous.
It triggers a restore job and returns a job ID, which can be used to track the progress of the restore job.
You can follow the progress of the restore job by calling [Get Restore Job](/api/api-reference/jobs/restore-jobs/get-restore-job) with the job ID.
'
operationId: restoreGcpCloudSql
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned resource ID.
example: fb806ce1-1cd3-5034-928a-33a87be714da
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon [snapshot](/api/api-reference/backups/snapshots/list-resource-snapshots) to restore.
example: 3dc6c0c6-f94d-5e85-a174-4b981a4bb262
explode: false
in: path
name: snapshotId
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/RestoreGcpCloudSqlRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/RestoreJobInitiationResponse'
description: Restore job started.
'404':
description: Project, resource, or snapshot 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: Restore GCP Cloud SQL Instance
tags:
- snapshots
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: snapshotId
- in: reqBody
entityType: restore_account
key: restoreAccountId
x-permissions:
- create:restore_resource
x-mpa:
operation: MPA_OPERATION_RESTORE_RESOURCE
target:
entityType: snapshot
in: path
key: snapshotId
x-audit-log:
action: trigger
entityRefs:
- entityType: restore_cloud_account
in: reqBody
key: restoreAccountId
- entityType: cloud_resource
in: path
key: id
- entityType: snapshot
in: path
key: snapshotId
- entityType: restore_job
in: resBody
key: jobId
/v1/projects/{projectId}/snapshots/{id}:
get:
description: 'Description: Retrieves an Eon snapshot.'
operationId: getSnapshot
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon snapshot to retrieve.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetSnapshotResponse'
description: Snapshot retrieved.
'404':
description: Snapshot 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 Snapshot
tags:
- snapshots
x-mcp: true
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: snapshot
key: id
x-permissions:
- read:inventory
x-audit-log:
excluded: true
/v1/projects/{projectId}/snapshots/{id}/hold:
patch:
description: 'Description: Places a user hold on an Eon snapshot.
Snapshots with user holds are protected from removal even if their expiration time passes.
Point-in-time recovery (PiTR) snapshots can''t be placed on hold.
'
operationId: holdSnapshot
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon snapshot.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HoldSnapshotRequest'
required: false
responses:
'200':
content:
application/json:
schema:
properties: {}
type: object
description: Hold was placed on the snapshot.
'400':
description: 'Invalid snapshot hold requested.
This includes attempts to hold PiTR snapshots, which aren''t supported.
'
'404':
description: Snapshot 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: Hold Snapshot
tags:
- snapshots
x-internal: false
x-data-access:
excluded: true
x-permissions:
- create:jobs
x-audit-log:
action: update
entityRefs:
- entityType: snapshot
in: path
key: id
/v1/projects/{projectId}/snapshots/{id}/remove-hold:
patch:
description: 'Description: Removes user hold from an Eon snapshot, allowing it to be removed once it passes its expiration time.
If the snapshot is past its expiration time, it''s marked for removal as soon as the hold is removed.
'
operationId: removeSnapshotHold
parameters:
- description: 'ID of the project the snapshot is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the Eon snapshot.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
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
responses:
'200':
content:
application/json:
schema:
properties: {}
type: object
description: User hold removed from snapshot.
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/MPAInterceptedResponse'
description: 'The operation is MPA-protected. An MPA request was created in CREATED status.
The caller should confirm via the submit endpoint (POST .../submit with action CONFIRM)
or discard (action DISCARD). The operation did not run.
'
'404':
description: Snapshot 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: Remove Snapshot Hold
tags:
- snapshots
x-internal: false
x-data-access:
excluded: true
x-permissions:
- create:jobs
x-mpa:
operation: MPA_OPERATION_REMOVE_SNAPSHOT_HOLD
target:
entityType: snapshot
in: path
key: id
x-audit-log:
action: update
entityRefs:
- entityType: snapshot
in: path
key: id
/v1/projects/{projectId}/resources/{id}/snapshots:
post:
description: 'Description: Retrieves a list of Eon snapshots for the given resource.
'
operationId: listResourceSnapshots
parameters:
- description: 'ID of the project the resource is in.
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: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: Eon-assigned ID of the resource whose Eon snapshots you want to retrieve.
example: 043090df-9fe5-4f89-9859-45db589c2936
explode: false
in: path
name: id
required: true
schema:
format: uuid
type: string
style: simple
- 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: OGRjZmRkNjYtZjJiMy00MmQ3LWIyMjMtNzU2M2NmMThiYWM2fDE=
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/ListInventorySnapshotsRequest'
description: Filter options.
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListInventorySnapshotsResponse'
description: Snapshots retrieved.
'404':
description: Resource 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: List Resource Snapshots
tags:
- snapshots
x-mcp: true
x-internal: false
x-data-access:
excluded: false
entityRefs:
- in: path
entityType: resource
key: id
x-permissions:
- read:inventory
x-audit-log:
excluded: true
components:
schemas:
SnapshotSortField:
description: Field to sort by.
enum:
- pointInTime
example: pointInTime
type: string
x-enum-varnames:
- SNAPSHOT_SORT_POINT_IN_TIME
RestoreGcpDiskRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
providerDiskId: '5178361631409150158'
destination:
gcpDisk:
settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
zone: us-central1-a
properties:
providerDiskId:
description: Cloud-provider-assigned ID of the disk to restore.
example: '5178361631409150158'
type: string
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/GcpDiskRestoreDestination'
required:
- destination
- providerDiskId
- restoreAccountId
type: object
RestoreDynamoDBTableRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
awsDynamodb:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
restoreRegion: eu-west-1
writeCapacityUnits: 50000
restoredName: my-restored-table
tags:
eon_api_restore: 'true'
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/DynamodbTableRestoreDestination'
required:
- destination
- restoreAccountId
type: object
StorageAccountRestoreTarget:
description: 'Information about the storage account where you want to restore the files.
If you don''t specify a target, the files are restored to the original storage account.
'
example:
container: my-restore-container-12345
resourceGroup: my-restore-resource-group-12345
prefix: my-restore-prefix
name: my-restore-storage-account-12345
properties:
name:
description: Name of the storage account to restore the files to.
example: my-restore-storage-account-12345
type: string
resourceGroup:
description: Name of the resource group that contains the storage account.
example: my-restore-resource-group-12345
type: string
container:
description: Name of the container in the storage account to restore the files to.
example: my-restore-container-12345
type: string
prefix:
description: 'Prefix to add to the restore path.
If you don''t specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the container.
'
example: my-restore-prefix
type: string
required:
- container
- name
type: object
VolumeSettings:
description: Provisioned volume settings.
example:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
properties:
type:
description: Volume type.
example: gp3
type: string
sizeBytes:
description: Volume size in bytes.
example: 10000000000
format: int64
type: integer
iops:
description: Volume IOPS.
example: 3000
type: integer
throughput:
description: Volume throughput.
example: 125
type: integer
required:
- sizeBytes
- type
type: object
EbsTarget:
example:
description: Restored through the Eon API
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
availabilityZone: eu-central-1a
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
eon_api_restore: 'true'
properties:
description:
description: 'Description to apply to the restored volume.
Default: No description.
'
example: Restored through the Eon API
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored volume as key-value pairs, where key and value are both strings.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
volumeEncryptionKeyId:
description: ID of the key you want Eon to use for encrypting the restored volume.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
type: string
availabilityZone:
description: Availability zone to restore the volume to.
example: eu-central-1a
type: string
volumeSettings:
$ref: '#/components/schemas/VolumeSettings'
required:
- availabilityZone
- volumeEncryptionKeyId
- volumeSettings
type: object
SnapshotFilterConditions:
additionalProperties: false
example:
pointInTime:
endDate: endDate
startDate: startDate
properties:
pointInTime:
$ref: '#/components/schemas/SnapshotDateFilters'
type: object
ResourceSnapshot:
description: Details about the backed-up resource at the time the snapshot was taken.
example:
properties:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
tags:
Name: customers
resourceType: AWS_EC2
properties:
properties:
$ref: '#/components/schemas/ResourceSnapshotProperties'
tags:
additionalProperties:
type: string
description: 'Resource tags as key-value pairs.
Both keys and values are strings.
If a tag is a key with no value, the value is presented as an empty string.
**Example:** `{"Name": "customers"}`
'
example:
Name: customers
type: object
resourceType:
$ref: '#/components/schemas/ResourceType'
type: object
AzureVmSnapshotProperties:
description: 'Properties of the original Azure Virtual Machine instance at the time the snapshot was taken.
Present only when `resourceType` is set to `AZURE_VIRTUAL_MACHINE`.
'
example:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
nullable: true
properties:
name:
description: VM name.
type: string
sizeBytes:
description: VM size, in bytes.
type: string
disks:
description: List of disks attached to the resource.
items:
$ref: '#/components/schemas/AzureDisk'
type: array
type: object
HoldSnapshotRequest:
example:
description: Keeping for the Q3 audit until finance signs off.
properties:
description:
description: 'Optional free-text note explaining why the snapshot is being held.
Shown on the snapshot''s hold badge and cleared when the hold is removed.
'
example: Keeping for the Q3 audit until finance signs off.
maxLength: 500
type: string
type: object
MPAInterceptedResponse:
description: Body returned when an operation is intercepted by an MPA policy.
example:
actionApprovalRequest:
requesterEmail: requester@example.com
resolvedTime: 2026-05-05 02:10:12+00:00
requesterName: Riley Chen
approvalExpirationTime: 2026-05-05 03:00:05+00:00
executionExpirationTime: 2026-05-05 07:00:05+00:00
createdTime: 2026-05-04 23:00:05+00:00
comment: Removing a backup policy that has been replaced.
id: 018f3b3f-4818-7c31-a0d7-2e02f2f83a10
policyDetails:
- approverIdpId: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
requiredApprovals: 2
approverProviderGroupId: platform-admins
executionWindowHours: 4
description: Require approval before deleting backup policies.
approvalWindowHours: 24
currentApprovals: 1
- approverIdpId: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
requiredApprovals: 2
approverProviderGroupId: platform-admins
executionWindowHours: 4
description: Require approval before deleting backup policies.
approvalWindowHours: 24
currentApprovals: 1
operation: MPA_OPERATION_DELETE_BACKUP_POLICY
status: PENDING_APPROVAL
properties:
actionApprovalRequest:
$ref: '#/components/schemas/MPARequest'
required:
- actionApprovalRequest
- mpaPolicies
type: object
x-nullable: true
GcpDiskRestoreDestination:
example:
gcpDisk:
settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
zone: us-central1-a
properties:
gcpDisk:
$ref: '#/components/schemas/GcpDiskTarget'
type: object
FilePath:
example:
path: path
isDirectory: true
properties:
path:
description: Absolute path to the file or directory to restore.
type: string
isDirectory:
description: 'Whether `path` is a directory.
If `true`, Eon restores all files in all subdirectories under the path.
If `false`, Eon restores only the file at the path.
'
type: boolean
required:
- isDirectory
- path
type: object
AzureDiskRestoreDestination:
example:
azureDisk:
settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
resourceGroupName: my-resource-group-12345
region: region
properties:
azureDisk:
$ref: '#/components/schemas/AzureDiskTarget'
type: object
AzureSqlDatabaseRestoreTarget:
example:
resourceGroupName: my-resource-group-12345
adminUserName: myadminuser
serverName: my-mssql-server
region: eastus
tags:
key: tags
properties:
region:
description: Region to restore to.
example: eastus
type: string
resourceGroupName:
description: Name of the resource group to restore to.
example: my-resource-group-12345
type: string
serverName:
description: Restored SQL server name.
example: my-mssql-server
type: string
adminUserName:
description: Username to set for admin of user of the restored database.
example: myadminuser
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored instance as key-value pairs, where key and value are both strings.
If not provided, defaults to an empty object, with no tags applied.
**Example:** `{"eon_api_restore": "true"}`
'
type: object
required:
- adminUserName
- region
- resourceGroupName
- serverName
type: object
RdsPasswordConfig:
description: 'Password management configuration for the restored RDS database.
'
example:
password: password
secretsManagerKmsKeyId: secretsManagerKmsKeyId
passwordManagementType: AWS_SECRETS_MANAGER
nullable: true
properties:
passwordManagementType:
description: 'Password management type to apply to the restored database.
'
enum:
- AWS_SECRETS_MANAGER
- SELF_MANAGED
type: string
x-fern-enum:
AWS_SECRETS_MANAGER:
description: 'Manage password through AWS Secrets Manager.
Use with `secretsManagerKmsKeyId`.
'
SELF_MANAGED:
description: 'Set a master user password on the database.
Use with `password`.
'
password:
description: 'Customer-managed password.
Required when password management type is `SELF_MANAGED`.
'
type: string
writeOnly: true
secretsManagerKmsKeyId:
description: 'ARN of a KMS key to encrypt the secret that stores the database master password.
The secret is managed through Amazon Secrets Manager.
Applicable when password management type is `AWS_SECRETS_MANAGER`.
If omitted, AWS defaults to the `aws/secretsmanager` key.
This is distinct from `encryptionKeyId`, which controls RDS storage encryption.
'
type: string
required:
- passwordManagementType
type: object
ListInventorySnapshotsResponse:
example:
snapshots:
- pointInTime: 2024-10-29 23:01:30+00:00
jobId: 2cfe604d-1fc3-5db2-9f4c-2044f08e9411
resourceId: b06bc01a-b08a-4fc7-933d-3f26ed434a29
onHold: false
vaultId: 0c71a8aa-edcc-4bf3-8498-fdea45621953
resource:
properties:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
tags:
Name: customers
resourceType: AWS_EC2
holdDescription: Keeping for the Q3 audit until finance signs off.
expirationTime: 2025-01-20 09:40:26+00:00
createdTime: 2024-10-29 23:01:24.841897+00:00
id: 043090df-9fe5-4f89-9859-45db589c2936
projectId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
- pointInTime: 2024-10-29 23:01:30+00:00
jobId: 2cfe604d-1fc3-5db2-9f4c-2044f08e9411
resourceId: b06bc01a-b08a-4fc7-933d-3f26ed434a29
onHold: false
vaultId: 0c71a8aa-edcc-4bf3-8498-fdea45621953
resource:
properties:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
tags:
Name: customers
resourceType: AWS_EC2
holdDescription: Keeping for the Q3 audit until finance signs off.
expirationTime: 2025-01-20 09:40:26+00:00
createdTime: 2024-10-29 23:01:24.841897+00:00
id: 043090df-9fe5-4f89-9859-45db589c2936
projectId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
nextToken: ZjRmYmQ4Y2YtYmEzNi00Yjc1LWI1ZjMtMzUyMmYzMTA5OTYzfDE=
totalCount: 58
properties:
snapshots:
description: List of Eon snapshots.
items:
$ref: '#/components/schemas/Snapshot'
type: array
nextToken:
description: 'Cursor that points to the first record of the next page of results.
Pass this value in the next request.
'
example: ZjRmYmQ4Y2YtYmEzNi00Yjc1LWI1ZjMtMzUyMmYzMTA5OTYzfDE=
type: string
totalCount:
description: The total number of Eon snapshots.
example: 58
type: integer
required:
- snapshots
- totalCount
type: object
EbsRestoreDestination:
example:
awsEbs:
description: Restored through the Eon API
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
availabilityZone: eu-central-1a
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
eon_api_restore: 'true'
properties:
awsEbs:
$ref: '#/components/schemas/EbsTarget'
type: object
AzureVmInstanceRestoreTarget:
example:
startInstanceAfterRestore: true
vmName: my-vm-12345
resourceGroupName: my-resource-group-12345
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
networkInterface: networkInterface
vmSize: Standard_DS1_v2
region: eastus
tags:
key: tags
properties:
region:
description: Region to restore to.
example: eastus
type: string
resourceGroupName:
description: Name of the resource group to restore to.
example: my-resource-group-12345
type: string
vmName:
description: Restored VM name.
example: my-vm-12345
type: string
vmSize:
description: Size of the restored VM.
example: Standard_DS1_v2
type: string
networkInterface:
description: 'Name of the network interface to use (legacy field).
Prefer using networkInterfaceConfig for new integrations.
If networkInterfaceConfig is provided, this field is ignored.
'
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored instance as key-value pairs, where key and value are both strings.
If not provided, defaults to an empty object, with no tags applied.
**Example:** `{"eon_api_restore": "true"}`
'
type: object
disks:
items:
$ref: '#/components/schemas/RestoreAzureInstanceDiskInput'
type: array
startInstanceAfterRestore:
default: true
description: 'Whether to start the VM instance after restoring it.
If set to `false`, the VM is created in a stopped state.
'
type: boolean
required:
- disks
- region
- resourceGroupName
- vmName
- vmSize
type: object
SnapshotDateFilters:
additionalProperties: false
example:
endDate: endDate
startDate: startDate
properties:
startDate:
description: 'Matches if `pointInTime` is on or later than this date.
Must be in ISO 8601 YYYY-MM-DD format.
'
type: string
endDate:
description: 'Matches if `pointInTime` is on or earlier than this date.
Must be in ISO 8601 YYYY-MM-DD format.
'
type: string
type: object
RestoreAzureSqlDatabaseRequest:
example:
restoreAccountId: restoreAccountId
destination:
azureSqlDatabase:
resourceGroupName: my-resource-group-12345
adminUserName: myadminuser
serverName: my-mssql-server
region: eastus
tags:
key: tags
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
type: string
destination:
$ref: '#/components/schemas/AzureSqlDatabaseRestoreDestination'
required:
- destination
- restoreAccountId
type: object
RestoreGcpInstanceDiskInput:
example:
settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
properties:
providerDiskId:
description: Cloud-provider-assigned ID of the disk to restore.
example: '5178361631409150158'
type: string
settings:
$ref: '#/components/schemas/GcpDiskSettings'
required:
- providerDiskId
- settings
type: object
EbsSnapshotTarget:
example:
snapshotEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
description: Restored through the Eon API
region: eu-central-1
tags:
eon_api_restore: 'true'
properties:
region:
description: Region to restore the EBS snapshot to.
example: eu-central-1
type: string
description:
description: Description to apply to the EBS snapshot.
example: Restored through the Eon API
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the EBS snapshot as key-value pairs, where key and value are both strings.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
snapshotEncryptionKeyId:
description: ID of the key you want Eon to use for encrypting the EBS snapshot.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
type: string
required:
- region
- snapshotEncryptionKeyId
type: object
SortSnapshotsBy:
description: 'List of sorting options.
Sorting is applied in the order passed in the list.
'
example:
field: pointInTime
order: ASC
properties:
field:
$ref: '#/components/schemas/SnapshotSortField'
order:
$ref: '#/components/schemas/SortOrder'
required:
- field
- order
type: object
AwsEc2InstanceRestoreDestination:
example:
awsEc2:
subnetId: subnet-01234567890123456
startInstanceAfterRestore: true
securityGroupIds:
- securityGroupIds
- securityGroupIds
instanceType: t3.micro
volumeRestoreParameters:
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
region: us-east-1
privateIpAddress: 10.0.0.50
tags:
key: tags
properties:
awsEc2:
$ref: '#/components/schemas/AwsEc2InstanceRestoreTarget'
type: object
GetSnapshotResponse:
example:
snapshot:
pointInTime: 2024-10-29 23:01:30+00:00
jobId: 2cfe604d-1fc3-5db2-9f4c-2044f08e9411
resourceId: b06bc01a-b08a-4fc7-933d-3f26ed434a29
onHold: false
vaultId: 0c71a8aa-edcc-4bf3-8498-fdea45621953
resource:
properties:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
tags:
Name: customers
resourceType: AWS_EC2
holdDescription: Keeping for the Q3 audit until finance signs off.
expirationTime: 2025-01-20 09:40:26+00:00
createdTime: 2024-10-29 23:01:24.841897+00:00
id: 043090df-9fe5-4f89-9859-45db589c2936
projectId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
properties:
snapshot:
$ref: '#/components/schemas/Snapshot'
required:
- snapshot
type: object
MPAOperationType:
description: Operation that requires action approval before it can be completed.
enum:
- MPA_OPERATION_TYPE_UNSPECIFIED
- MPA_OPERATION_ADD_RESTORE_ACCOUNT
- MPA_OPERATION_RESTORE_RESOURCE
- MPA_OPERATION_UPDATE_BACKUP_POLICY
- MPA_OPERATION_DELETE_BACKUP_POLICY
- MPA_OPERATION_REMOVE_SNAPSHOT_HOLD
example: MPA_OPERATION_DELETE_BACKUP_POLICY
type: string
x-docs-internal-enum:
- MPA_OPERATION_REMOVE_SNAPSHOT_HOLD
x-enum-varnames:
- MPA_OPERATION_TYPE_UNSPECIFIED
- MPA_OPERATION_TYPE_MPA_OPERATION_ADD_RESTORE_ACCOUNT
- MPA_OPERATION_TYPE_MPA_OPERATION_RESTORE_RESOURCE
- MPA_OPERATION_TYPE_MPA_OPERATION_UPDATE_BACKUP_POLICY
- MPA_OPERATION_TYPE_MPA_OPERATION_DELETE_BACKUP_POLICY
- MPA_OPERATION_TYPE_MPA_OPERATION_REMOVE_SNAPSHOT_HOLD
RestoreDbToRdsInstanceRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
awsRds:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
dbInstanceClass: db.t3.micro
subnetGroup: subnetGroup
restoreRegion: eu-west-1
securityGroups:
- securityGroups
- securityGroups
preserveInstanceNames: false
passwordConfig:
password: password
secretsManagerKmsKeyId: secretsManagerKmsKeyId
passwordManagementType: AWS_SECRETS_MANAGER
restoredName: my-restored-db
tags:
eon_api_restore: 'true'
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
format: uuid
type: string
destination:
$ref: '#/components/schemas/DatabaseDestination'
required:
- destination
- restoreAccountId
type: object
ListInventorySnapshotsRequest:
additionalProperties: false
example:
filters:
pointInTime:
endDate: endDate
startDate: startDate
sorts:
- field: pointInTime
order: ASC
- field: pointInTime
order: ASC
properties:
filters:
$ref: '#/components/schemas/SnapshotFilterConditions'
sorts:
description: 'List of sorting options.
Sorting is applied in the order passed in the list.
'
items:
$ref: '#/components/schemas/SortSnapshotsBy'
type: array
type: object
GcpNetworkType:
description: 'Network type.
`UNSPECIFIED` is supported only in responses.
'
enum:
- UNSPECIFIED
- PUBLIC
- PRIVATE
example: PRIVATE
type: string
x-enum-varnames:
- GCP_NETWORK_TYPE_UNSPECIFIED
- GCP_NETWORK_TYPE_PUBLIC
- GCP_NETWORK_TYPE_PRIVATE
ResourceSnapshotProperties:
description: 'Properties of the original resource at the time the snapshot was taken.
The properties present in this object change depending on the value set in `resourceType`.
'
example:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
nullable: true
properties:
awsEc2:
$ref: '#/components/schemas/AwsEc2SnapshotProperties'
azureVm:
$ref: '#/components/schemas/AzureVmSnapshotProperties'
type: object
AwsEc2SnapshotProperties:
description: 'Properties of the original AWS EC2 instance at the time the snapshot was taken.
Present only when `resourceType` is set to `AWS_EC2`.
'
example:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
nullable: true
properties:
instanceType:
description: Instance type.
example: t3.micro
type: string
subnetId:
description: ID of the subnet the instance is in.
example: subnet-062510159bedef64a
type: string
securityGroupIds:
description: IDs of security groups associated with the resource.
example:
- sg-0997af14f8095fc57
items:
type: string
type: array
instanceProfileName:
description: The resource's instance profile.
example: public-database-profile
type: string
volumes:
description: List of volumes attached to the resource.
items:
$ref: '#/components/schemas/InventorySnapshotVolume'
type: array
type: object
AwsEc2InstanceRestoreTarget:
example:
subnetId: subnet-01234567890123456
startInstanceAfterRestore: true
securityGroupIds:
- securityGroupIds
- securityGroupIds
instanceType: t3.micro
volumeRestoreParameters:
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
region: us-east-1
privateIpAddress: 10.0.0.50
tags:
key: tags
properties:
region:
description: Region to restore the instance to.
example: us-east-1
type: string
instanceType:
description: Instance type to use for the restored instance.
example: t3.micro
type: string
subnetId:
description: Subnet ID to associate with the restored instance.
example: subnet-01234567890123456
type: string
securityGroupIds:
description: List of security group IDs to associate with the restored instance.
items:
type: string
type: array
privateIpAddress:
description: 'Optional primary private IPv4 address for the restored instance, e.g. "10.0.0.50".
Must fall within the selected subnet''s CIDR range.
Leave empty to let AWS auto-assign an address.
'
example: 10.0.0.50
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored instance as key-value pairs, where key and value are both strings.
**Example:** `{"eon_api_restore": "true"}`
'
type: object
volumeRestoreParameters:
description: 'Volumes to restore and attach to the restored instance.
Each item in the list corresponds to a volume to be restored, where `providerVolumeId` matches the volume''s ID at the time of the snapshot.
The root volume must be present in the list.
'
items:
$ref: '#/components/schemas/RestoreInstanceVolumeInput'
type: array
startInstanceAfterRestore:
default: true
description: 'Whether to start the EC2 instance after restoring it.
If set to `false`, the instance remains in a stopped state.
'
type: boolean
required:
- instanceType
- region
- subnetId
- volumeRestoreParameters
type: object
RestoreInstanceVolumeInput:
example:
providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
properties:
providerVolumeId:
description: Cloud-provider-assigned ID of the volume to restore.
example: vol-00b7506c1a2bc8cfd
type: string
description:
description: Optional description.
example: root volume
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored volume as key-value pairs, where key and value are both strings.
**Example:** `{"primary": ""}`
'
type: object
volumeEncryptionKeyId:
description: ARN of the KMS key for encrypting the restored volume.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
type: string
volumeSettings:
$ref: '#/components/schemas/VolumeSettings'
required:
- providerVolumeId
- volumeEncryptionKeyId
- volumeSettings
type: object
Error:
example:
error: error
properties:
error:
type: string
type: object
MPARequestStatus:
description: 'Lifecycle state of an action approval request from creation through resolution. DISCARDED means the requester abandoned a draft before it was submitted for approval.
'
enum:
- MPA_REQUEST_STATUS_UNSPECIFIED
- CREATED
- PENDING_APPROVAL
- APPROVED
- DENIED
- EXPIRED_PENDING_APPROVAL
- EXPIRED_APPROVED
- EXECUTED
- CANCELED_PENDING_APPROVAL
- CANCELED_APPROVED
- DISCARDED
example: PENDING_APPROVAL
type: string
x-enum-varnames:
- MPA_REQUEST_STATUS_UNSPECIFIED
- MPA_REQUEST_STATUS_CREATED
- MPA_REQUEST_STATUS_PENDING_APPROVAL
- MPA_REQUEST_STATUS_APPROVED
- MPA_REQUEST_STATUS_DENIED
- MPA_REQUEST_STATUS_EXPIRED_PENDING_APPROVAL
- MPA_REQUEST_STATUS_EXPIRED_APPROVED
- MPA_REQUEST_STATUS_EXECUTED
- MPA_REQUEST_STATUS_CANCELLED_PENDING_APPROVAL
- MPA_REQUEST_STATUS_CANCELLED_APPROVED
- MPA_REQUEST_STATUS_DISCARDED
DynamodbTableRestoreDestination:
example:
awsDynamodb:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
restoreRegion: eu-west-1
writeCapacityUnits: 50000
restoredName: my-restored-table
tags:
eon_api_restore: 'true'
properties:
awsDynamodb:
$ref: '#/components/schemas/AwsDynamoDBDestination'
type: object
AwsDynamoDBDestination:
description: Configuration for restoring to DynamoDB.
example:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
restoreRegion: eu-west-1
writeCapacityUnits: 50000
restoredName: my-restored-table
tags:
eon_api_restore: 'true'
properties:
restoreRegion:
description: Region to restore to.
example: eu-west-1
type: string
encryptionKeyId:
description: ID of the key you want Eon to use for encrypting the restored resource.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
type: string
restoredName:
description: Name to assign to the restored resource.
example: my-restored-table
type: string
writeCapacityUnits:
description: 'Write capacity units for the restored table.
Defaults to 5.
'
example: 50000
type: integer
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored instance as key-value pairs, where key and value are both strings.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
required:
- restoreRegion
- restoredName
type: object
DatabaseDestination:
description: Restore configuration.
example:
awsRds:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
dbInstanceClass: db.t3.micro
subnetGroup: subnetGroup
restoreRegion: eu-west-1
securityGroups:
- securityGroups
- securityGroups
preserveInstanceNames: false
passwordConfig:
password: password
secretsManagerKmsKeyId: secretsManagerKmsKeyId
passwordManagementType: AWS_SECRETS_MANAGER
restoredName: my-restored-db
tags:
eon_api_restore: 'true'
properties:
awsRds:
$ref: '#/components/schemas/AwsDatabaseDestination'
type: object
Snapshot:
description: Eon snapshot.
example:
pointInTime: 2024-10-29 23:01:30+00:00
jobId: 2cfe604d-1fc3-5db2-9f4c-2044f08e9411
resourceId: b06bc01a-b08a-4fc7-933d-3f26ed434a29
onHold: false
vaultId: 0c71a8aa-edcc-4bf3-8498-fdea45621953
resource:
properties:
azureVm:
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
name: name
sizeBytes: sizeBytes
awsEc2:
subnetId: subnet-062510159bedef64a
securityGroupIds:
- sg-0997af14f8095fc57
instanceType: t3.micro
instanceProfileName: public-database-profile
volumes:
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
tags:
Name: customers
resourceType: AWS_EC2
holdDescription: Keeping for the Q3 audit until finance signs off.
expirationTime: 2025-01-20 09:40:26+00:00
createdTime: 2024-10-29 23:01:24.841897+00:00
id: 043090df-9fe5-4f89-9859-45db589c2936
projectId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
properties:
id:
description: Eon snapshot ID.
example: 043090df-9fe5-4f89-9859-45db589c2936
type: string
projectId:
description: ID of the snapshot's parent project.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
createdTime:
description: 'Date and time the snapshot creation was started.
This doesn''t represent the point in time the resource is backed up from, which is instead represented by the `pointInTime` property.
'
example: 2024-10-29 23:01:24.841897+00:00
format: date-time
type: string
pointInTime:
description: Date and time of the resource that's preserved by the snapshot.
example: 2024-10-29 23:01:30+00:00
format: date-time
type: string
vaultId:
description: ID of the vault the snapshot is stored in. Empty for native snapshots.
example: 0c71a8aa-edcc-4bf3-8498-fdea45621953
type: string
resourceId:
description: Eon-assigned ID of the resource the snapshot is backing up.
example: b06bc01a-b08a-4fc7-933d-3f26ed434a29
type: string
jobId:
description: Backup job ID.
example: 2cfe604d-1fc3-5db2-9f4c-2044f08e9411
type: string
expirationTime:
description: Date and time the snapshot's retention is expected to expire, after which it's marked for deletion.
example: 2025-01-20 09:40:26+00:00
format: date-time
type: string
resource:
$ref: '#/components/schemas/ResourceSnapshot'
onHold:
description: Whether the snapshot is on user hold.
example: false
type: boolean
x-internal: false
holdDescription:
description: Free-text note explaining why the snapshot is on hold. Cleared when the hold is removed.
example: Keeping for the Q3 audit until finance signs off.
type: string
x-internal: false
required:
- createdTime
- id
- resourceId
- status
type: object
AzureSqlDatabaseRestoreDestination:
example:
azureSqlDatabase:
resourceGroupName: my-resource-group-12345
adminUserName: myadminuser
serverName: my-mssql-server
region: eastus
tags:
key: tags
properties:
azureSqlDatabase:
$ref: '#/components/schemas/AzureSqlDatabaseRestoreTarget'
type: object
GcpDiskTarget:
example:
settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
zone: us-central1-a
properties:
zone:
description: Zone to restore the disk to.
example: us-central1-a
type: string
settings:
$ref: '#/components/schemas/GcpDiskSettings'
required:
- settings
- zone
type: object
AzureVmInstanceRestoreDestination:
example:
azureVm:
startInstanceAfterRestore: true
vmName: my-vm-12345
resourceGroupName: my-resource-group-12345
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
networkInterface: networkInterface
vmSize: Standard_DS1_v2
region: eastus
tags:
key: tags
properties:
azureVm:
$ref: '#/components/schemas/AzureVmInstanceRestoreTarget'
type: object
BigQueryDatasetDestination:
description: Destination configuration for BigQuery dataset restore.
example:
datasetId: restored_dataset
location: us-central1
selectedTables:
- users
- orders
selectedViews:
- active_users_view
- order_summary_view
labels:
key: labels
overwriteExistingData: false
properties:
datasetId:
description: 'Destination dataset ID.
If the dataset doesn''t exist, it''s created.
'
example: restored_dataset
type: string
location:
description: 'BigQuery location for the dataset.
Defaults to the original dataset location.
For multi-region, set to `US` or `EU`.
'
example: us-central1
type: string
selectedTables:
description: 'List of table names to restore.
If empty or not specified, all tables in the snapshot are restored.
'
example:
- users
- orders
items:
type: string
type: array
selectedViews:
description: 'List of view names to restore.
If empty or not specified, all views in the snapshot are restored.
'
example:
- active_users_view
- order_summary_view
items:
type: string
type: array
labels:
additionalProperties:
type: string
description: 'Labels to apply to the restored BigQuery dataset as key-value pairs, where key and value are both strings.
**Example:** `{"eon-restore": "true"}`
'
type: object
overwriteExistingData:
default: false
description: 'When set to `true`, existing tables and metadata (views, routines)
in the target dataset will be overwritten by the restored data.
Materialized views are never overwritten: an existing materialized view is left
as-is, since BigQuery has no `CREATE OR REPLACE MATERIALIZED VIEW`.
When `false` (default), the restore fails if any conflicting objects already exist
in the target dataset.
'
type: boolean
required:
- datasetId
type: object
MPARequestPolicyDetail:
example:
approverIdpId: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
requiredApprovals: 2
approverProviderGroupId: platform-admins
executionWindowHours: 4
description: Require approval before deleting backup policies.
approvalWindowHours: 24
currentApprovals: 1
properties:
requiredApprovals:
description: Number of approvals required by this policy.
example: 2
type: integer
currentApprovals:
description: Number of qualifying approvals received for this policy.
example: 1
type: integer
executionWindowHours:
description: Hours the requester has to execute the approved action after full approval.
example: 4
type: integer
approvalWindowHours:
description: Hours allowed for gathering all required approvals after submission.
example: 24
type: integer
description:
description: Human-readable description of the policy.
example: Require approval before deleting backup policies.
type: string
approverIdpId:
description: UUID of the SAML identity provider connection this approver group belongs to.
example: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
format: uuid
nullable: true
type: string
approverProviderGroupId:
description: Provider group identifier from the IdP.
example: platform-admins
nullable: true
type: string
required:
- approvalWindowHours
- currentApprovals
- executionWindowHours
- mpaPolicyId
- requiredApprovals
type: object
x-nullable: true
RestoreVolumeToEbsRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
providerVolumeId: vol-01a29e3ba811d4613
destination:
awsEbs:
description: Restored through the Eon API
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
availabilityZone: eu-central-1a
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
eon_api_restore: 'true'
properties:
providerVolumeId:
description: Cloud-provider-assigned ID of the volume to restore.
example: vol-01a29e3ba811d4613
type: string
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/EbsRestoreDestination'
required:
- destination
- providerVolumeId
- restoreAccountId
type: object
RestoreGcpCloudSqlRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
gcpCloudSql:
networkHostProject: my-shared-vpc-project
zone: us-east1-b
name: my-restored-instance
networkName: default
networkType: PRIVATE
labels:
eon_api_restore: 'true'
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/GcpCloudSqlRestoreDestination'
required:
- destination
- restoreAccountId
type: object
ResourceType:
description: 'Resource type identifier combining cloud provider and service type.
`RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
'
enum:
- AWS_EC2
- AWS_RDS
- AWS_S3
- AWS_EFS
- AWS_FSX
- AWS_EKS_NAMESPACE
- AWS_DYNAMO_DB
- AWS_EBS_VOLUME
- AWS_KEYSPACES_TABLE
- AWS_CASSANDRA_CLUSTER
- AWS_DOCUMENTDB
- AWS_NEPTUNE
- AZURE_VIRTUAL_MACHINE
- AZURE_FILE_SHARE
- AZURE_STORAGE_ACCOUNT
- AZURE_DISK
- AZURE_SQL_DATABASE
- AZURE_SQL_MANAGED_INSTANCE
- AZURE_SQL_VIRTUAL_MACHINE
- AZURE_SAP_HANA_VM
- AZURE_MYSQL
- AZURE_POSTGRESQL
- AZURE_COSMOSDB_MONGODB
- AZURE_COSMOSDB_NOSQL
- AZURE_AKS_NAMESPACE
- AZURE_CASSANDRA_CLUSTER
- ATLAS_MONGODB_CLUSTER
- GCP_COMPUTE_ENGINE_INSTANCE
- GCP_CLOUD_SQL_INSTANCE
- GCP_CLOUD_STORAGE_BUCKET
- GCP_GKE_NAMESPACE
- GCP_BIG_QUERY
- GCP_CLOUD_FIRESTORE
- GCP_DISK
- GCP_SAP_HANA_VM
- GCP_CASSANDRA_CLUSTER
- GOOGLE_WORKSPACE_RESOURCE
- MICROSOFT_365_RESOURCE
- RESOURCE_TYPE_UNSPECIFIED
example: AWS_EC2
type: string
x-docs-internal-enum:
- AWS_EBS_VOLUME
- AWS_KEYSPACES_TABLE
- AWS_CASSANDRA_CLUSTER
- GCP_CASSANDRA_CLUSTER
- AZURE_CASSANDRA_CLUSTER
- AWS_DOCUMENTDB
- AWS_NEPTUNE
- AZURE_SAP_HANA_VM
- AZURE_AKS_NAMESPACE
- GCP_GKE_NAMESPACE
- GCP_BIG_QUERY
- GCP_CLOUD_FIRESTORE
- GCP_DISK
- GCP_SAP_HANA_VM
- GOOGLE_WORKSPACE_RESOURCE
- MICROSOFT_365_RESOURCE
AzureDiskSettings:
example:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
properties:
name:
description: Disk name.
example: my-disk-12345
type: string
type:
description: Disk type.
example: Standard_LRS
type: string
tier:
description: Disk tier.
example: Standard
type: string
hyperVGeneration:
description: 'Hyper-V generation of the disk.
When restoring, defaults to the original Hyper-V generation captured by the snapshot.
'
example: V1
type: string
sizeBytes:
description: 'Size of the disk, in bytes.
When restoring, defaults to the original disk size captured by the snapshot.
'
example: 10737418240
format: int64
type: integer
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored disk as key-value pairs, where key and value are both strings.
If not provided, defaults to an empty object, with no tags applied.
**Example:** `{"eon_api_restore": "true"}`
'
type: object
required:
- name
- tier
- type
type: object
GcpVmInstanceRestoreDestination:
example:
gcpVm:
startInstanceAfterRestore: true
networkHostProject: my-shared-vpc-project
disks:
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
zone: us-east1-b
name: my-vm-12345
networkName: default
internalIp: 10.0.0.10
machineType: e2-medium
subnetName: default
labels:
eon_api_restore: 'true'
properties:
gcpVm:
$ref: '#/components/schemas/GcpVmInstanceRestoreTarget'
type: object
MPARequest:
example:
requesterEmail: requester@example.com
resolvedTime: 2026-05-05 02:10:12+00:00
requesterName: Riley Chen
approvalExpirationTime: 2026-05-05 03:00:05+00:00
executionExpirationTime: 2026-05-05 07:00:05+00:00
createdTime: 2026-05-04 23:00:05+00:00
comment: Removing a backup policy that has been replaced.
id: 018f3b3f-4818-7c31-a0d7-2e02f2f83a10
policyDetails:
- approverIdpId: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
requiredApprovals: 2
approverProviderGroupId: platform-admins
executionWindowHours: 4
description: Require approval before deleting backup policies.
approvalWindowHours: 24
currentApprovals: 1
- approverIdpId: 018f3b3f-4818-7c31-a0d7-2e02f2f83a31
requiredApprovals: 2
approverProviderGroupId: platform-admins
executionWindowHours: 4
description: Require approval before deleting backup policies.
approvalWindowHours: 24
currentApprovals: 1
operation: MPA_OPERATION_DELETE_BACKUP_POLICY
status: PENDING_APPROVAL
properties:
id:
description: Unique identifier of the action approval request.
example: 018f3b3f-4818-7c31-a0d7-2e02f2f83a10
format: uuid
type: string
operation:
$ref: '#/components/schemas/MPAOperationType'
requesterEmail:
description: Email address of the requester who created the approval request.
example: requester@example.com
type: string
requesterName:
description: Display name of the requester at the time the request was created.
example: Riley Chen
type: string
comment:
description: Optional comment from the requester explaining why this operation is needed.
example: Removing a backup policy that has been replaced.
type: string
status:
$ref: '#/components/schemas/MPARequestStatus'
policyDetails:
description: Per-policy configuration and approval progress.
items:
$ref: '#/components/schemas/MPARequestPolicyDetail'
type: array
approvalExpirationTime:
description: Deadline for gathering approvals. Set when the request is confirmed (submitted). Null for requests in CREATED or DISCARDED status.
example: 2026-05-05 03:00:05+00:00
format: date-time
nullable: true
type: string
executionExpirationTime:
description: Deadline for executing the approved action. Set when the request is approved.
example: 2026-05-05 07:00:05+00:00
format: date-time
nullable: true
type: string
resolvedTime:
description: Time when the request reached a terminal state, such as executed, expired, canceled, denied, or discarded. Null while the request is still active.
example: 2026-05-05 02:10:12+00:00
format: date-time
nullable: true
type: string
createdTime:
description: Time when the approval request was created.
example: 2026-05-04 23:00:05+00:00
format: date-time
type: string
required:
- createdTime
- id
- operation
- policyDetails
- requestMethod
- requestPath
- requesterEmail
- requesterId
- status
type: object
x-nullable: true
ObjectStorageDestination:
example:
gcsBucket:
bucketName: my-restore-bucket-12345
prefix: my-restore-prefix
storageAccount:
container: my-restore-container-12345
resourceGroup: my-restore-resource-group-12345
prefix: my-restore-prefix
name: my-restore-storage-account-12345
s3Bucket:
bucketName: my-restore-bucket-12345
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b1514358
prefix: my-restore-prefix
properties:
s3Bucket:
$ref: '#/components/schemas/S3RestoreTarget'
storageAccount:
$ref: '#/components/schemas/StorageAccountRestoreTarget'
gcsBucket:
$ref: '#/components/schemas/GCSRestoreTarget'
type: object
RestoreBigQueryDatasetRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
datasetId: restored_dataset
location: us-central1
selectedTables:
- users
- orders
selectedViews:
- active_users_view
- order_summary_view
labels:
key: labels
overwriteExistingData: false
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/BigQueryDatasetDestination'
required:
- destination
- restoreAccountId
type: object
GcpVmInstanceRestoreTarget:
example:
startInstanceAfterRestore: true
networkHostProject: my-shared-vpc-project
disks:
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
zone: us-east1-b
name: my-vm-12345
networkName: default
internalIp: 10.0.0.10
machineType: e2-medium
subnetName: default
labels:
eon_api_restore: 'true'
properties:
zone:
description: Zone to restore to.
example: us-east1-b
type: string
machineType:
description: Machine type to use.
example: e2-medium
type: string
name:
description: VM name.
example: my-vm-12345
maxLength: 63
type: string
networkName:
description: Name of the VPC network to use.
example: default
type: string
subnetName:
description: Name of the subnet to use.
example: default
type: string
networkHostProject:
description: 'ID of the project that hosts the VPC network.
Applicable only when restoring to a shared VPC network.
'
example: my-shared-vpc-project
type: string
labels:
additionalProperties:
type: string
description: 'Labels to apply to the restored VM as key-value pairs, where key and value are both strings.
These labels are always applied: `"eon-restore": "true"`.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
disks:
description: 'Disks to restore and attach to the restored instance.
Each item in the list corresponds to a disk to be restored, where `providerDiskId` matches the disk''s ID at the time of the snapshot.
The boot disk must be in the list.
'
items:
$ref: '#/components/schemas/RestoreGcpInstanceDiskInput'
type: array
internalIp:
description: 'Optional internal (private) IPv4 address for the restored VM, e.g. "10.0.0.10".
Must fall within the selected subnet''s primary CIDR range.
Leave empty to let GCP auto-assign an address.
'
example: 10.0.0.10
type: string
startInstanceAfterRestore:
default: true
description: 'Whether to start the VM instance after restoring it.
If set to `false`, the VM is created in a stopped state.
'
type: boolean
required:
- disks
- machineType
- name
- networkName
- subnetName
- zone
type: object
RestoreAwsEc2InstanceRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
awsEc2:
subnetId: subnet-01234567890123456
startInstanceAfterRestore: true
securityGroupIds:
- securityGroupIds
- securityGroupIds
instanceType: t3.micro
volumeRestoreParameters:
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
- providerVolumeId: vol-00b7506c1a2bc8cfd
description: root volume
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
volumeEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
tags:
key: tags
region: us-east-1
privateIpAddress: 10.0.0.50
tags:
key: tags
templateId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/AwsEc2InstanceRestoreDestination'
templateId:
description: 'When set, the restore service re-evaluates this restore template at submit
time and applies the resolved params onto the request before restoring.
'
format: uuid
type: string
required:
- destination
- restoreAccountId
type: object
RestoreAzureInstanceDiskInput:
example:
settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
properties:
providerDiskId:
description: Cloud-provider-assigned ID of the disk to restore.
example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
type: string
settings:
$ref: '#/components/schemas/AzureDiskSettings'
required:
- providerDiskId
- settings
type: object
RestoreAzureVmInstanceRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
azureVm:
startInstanceAfterRestore: true
vmName: my-vm-12345
resourceGroupName: my-resource-group-12345
disks:
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
- settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
networkInterface: networkInterface
vmSize: Standard_DS1_v2
region: eastus
tags:
key: tags
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/AzureVmInstanceRestoreDestination'
required:
- destination
- restoreAccountId
type: object
GcpDiskSettings:
example:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
properties:
name:
description: Disk name.
example: my-restored-disk
maxLength: 63
type: string
type:
description: Disk type.
example: pd-ssd
type: string
sizeBytes:
description: Size of the disk, in bytes.
example: 10737418240
format: int64
type: integer
iops:
description: 'Provisioned IOPS for the disk.
Applicable only when `type` is `pd-extreme`.
When restoring, defaults to the original IOPS captured by the snapshot.
'
example: 3000
format: int64
type: integer
throughput:
description: 'Disk throughput.
When restoring, defaults to the original throughput captured by the snapshot.
'
example: 125
format: int64
type: integer
description:
description: Disk description.
example: boot disk
type: string
labels:
additionalProperties:
type: string
description: 'Labels to apply to the restored disk as key-value pairs, where key and value are both strings.
These labels are always applied: `"eon-restore": "true"`, `"eon-job-id"`, `"eon-original-disk-id"`, `"eon-original-disk-name"`.
**Example:** `{"primary": "true"}`
'
type: object
encryptionKeyId:
description: ID of the customer-managed encryption key to use for the disk.
example: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
type: string
required:
- name
- sizeBytes
- type
type: object
RestoreJobInitiationResponse:
example:
jobId: 9892ecab-22d5-47ca-b2b4-70369e80b90a
properties:
jobId:
description: Restore job ID.
example: 9892ecab-22d5-47ca-b2b4-70369e80b90a
format: uuid
type: string
required:
- jobId
type: object
AzureDiskTarget:
example:
settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
resourceGroupName: my-resource-group-12345
region: region
properties:
region:
description: Region to restore to.
type: string
resourceGroupName:
description: Name of the resource group to restore to.
example: my-resource-group-12345
type: string
settings:
$ref: '#/components/schemas/AzureDiskSettings'
required:
- region
- resourceGroupName
- settings
type: object
InventorySnapshotVolume:
example:
providerVolumeId: vol-00b7506c1a2bc8cfd
volumeSettings:
iops: 3000
throughput: 125
type: gp3
sizeBytes: 10000000000
region: us-east-1
availabilityZone: us-east-1a
tags:
key: tags
properties:
providerVolumeId:
description: Cloud-provider-assigned volume ID.
example: vol-00b7506c1a2bc8cfd
type: string
region:
description: Region the volume is hosted in.
example: us-east-1
type: string
availabilityZone:
description: Availability zone the volume is hosted in.
example: us-east-1a
type: string
tags:
additionalProperties:
type: string
description: 'Volume tags as key-value pairs.
Both keys and values are strings.
**Example**: `{"env": "prod", "db": ""}`
'
type: object
volumeSettings:
$ref: '#/components/schemas/VolumeSettings'
required:
- availabilityZone
- deviceName
- providerVolumeId
- region
- tags
- volumeSettings
type: object
GCSRestoreTarget:
description: 'Information about the Google Cloud Storage bucket where you want to restore the files.
If you don''t specify a target, the files are restored to the original bucket.
'
example:
bucketName: my-restore-bucket-12345
prefix: my-restore-prefix
properties:
bucketName:
description: Name of an existing bucket to restore the files to.
example: my-restore-bucket-12345
type: string
prefix:
description: 'Prefix to add to the restore path.
If you don''t specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the bucket.
'
example: my-restore-prefix
type: string
required:
- bucketName
type: object
x-internal: false
RestoreVolumeToEbsSnapshotRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
providerVolumeId: vol-01a29e3ba811d4613
destination:
awsEbs:
snapshotEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
description: Restored through the Eon API
region: eu-central-1
tags:
eon_api_restore: 'true'
properties:
providerVolumeId:
description: Cloud-provider-assigned ID of the volume to restore.
example: vol-01a29e3ba811d4613
type: string
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/EbsSnapshotRestoreDestination'
required:
- destination
- providerVolumeId
- restoreAccountId
type: object
EbsSnapshotRestoreDestination:
example:
awsEbs:
snapshotEncryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
description: Restored through the Eon API
region: eu-central-1
tags:
eon_api_restore: 'true'
properties:
awsEbs:
$ref: '#/components/schemas/EbsSnapshotTarget'
type: object
GcpCloudSqlTarget:
example:
networkHostProject: my-shared-vpc-project
zone: us-east1-b
name: my-restored-instance
networkName: default
networkType: PRIVATE
labels:
eon_api_restore: 'true'
nullable: true
properties:
zone:
description: Zone to restore to.
example: us-east1-b
type: string
name:
description: Instance name.
example: my-restored-instance
type: string
networkType:
$ref: '#/components/schemas/GcpNetworkType'
networkName:
description: Name of the VPC network to use.
example: default
type: string
networkHostProject:
description: 'ID of the project that hosts the VPC network.
Applicable only when restoring to a shared VPC network.
'
example: my-shared-vpc-project
type: string
labels:
additionalProperties:
type: string
description: 'Labels to apply to the restored Cloud SQL instance as key-value pairs, where key and value are both strings.
These labels are always applied: `"eon-restore": "true"`.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
required:
- name
- networkType
- zone
type: object
GcpCloudSqlRestoreDestination:
example:
gcpCloudSql:
networkHostProject: my-shared-vpc-project
zone: us-east1-b
name: my-restored-instance
networkName: default
networkType: PRIVATE
labels:
eon_api_restore: 'true'
properties:
gcpCloudSql:
$ref: '#/components/schemas/GcpCloudSqlTarget'
type: object
S3RestoreTarget:
description: 'Information about the S3 bucket where you want to restore the files.
If you don''t specify a target, the files are restored to the original bucket.
'
example:
bucketName: my-restore-bucket-12345
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b1514358
prefix: my-restore-prefix
properties:
bucketName:
description: Name of an existing bucket to restore the files to.
example: my-restore-bucket-12345
type: string
encryptionKeyId:
description: ID of the key you want Eon to use for encrypting the restored files.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b1514358
type: string
prefix:
description: 'Prefix to add to the restore path.
If you don''t specify a prefix, the files are restored to their respective folders in the original file tree, starting from the root of the bucket.
'
example: my-restore-prefix
type: string
required:
- bucketName
type: object
AwsDatabaseDestination:
description: Configuration for restoring to RDS.
example:
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
dbInstanceClass: db.t3.micro
subnetGroup: subnetGroup
restoreRegion: eu-west-1
securityGroups:
- securityGroups
- securityGroups
preserveInstanceNames: false
passwordConfig:
password: password
secretsManagerKmsKeyId: secretsManagerKmsKeyId
passwordManagementType: AWS_SECRETS_MANAGER
restoredName: my-restored-db
tags:
eon_api_restore: 'true'
properties:
restoreRegion:
description: Region to restore to.
example: eu-west-1
type: string
encryptionKeyId:
description: ID of the key you want Eon to use for encrypting the restored resource.
example: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b
type: string
restoredName:
description: Name to assign to the restored resource.
example: my-restored-db
type: string
securityGroups:
description: 'List of security group IDs to associate with the restored resource.
Must be in the same VPC of `subnetGroup`.
'
items:
type: string
type: array
subnetGroup:
description: 'Subnet group ID to associate with the restored resource.
Must be in the same VPC of `securityGroup`.
'
type: string
dbInstanceClass:
description: Instance class to use for the restored resource.
example: db.t3.micro
type: string
tags:
additionalProperties:
type: string
description: 'Tags to apply to the restored instance as key-value pairs, where key and value are both strings.
**Example:** `{"eon_api_restore": "true"}`
'
example:
eon_api_restore: 'true'
type: object
passwordConfig:
$ref: '#/components/schemas/RdsPasswordConfig'
preserveInstanceNames:
default: false
description: 'When true, restores cluster members with their original instance names from the snapshot.
If `restoredName` is empty, name is set to the original cluster identifier from the snapshot.
Applies only to Aurora clusters.
'
type: boolean
required:
- encryptionKeyId
- restoreRegion
- restoredName
type: object
RestoreAzureDiskRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
destination:
azureDisk:
settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
resourceGroupName: my-resource-group-12345
region: region
properties:
providerDiskId:
description: Cloud-provider-assigned ID of the disk to restore.
example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
type: string
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/AzureDiskRestoreDestination'
required:
- destination
- providerDiskId
- restoreAccountId
type: object
RestoreFilesRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
gcsBucket:
bucketName: my-restore-bucket-12345
prefix: my-restore-prefix
storageAccount:
container: my-restore-container-12345
resourceGroup: my-restore-resource-group-12345
prefix: my-restore-prefix
name: my-restore-storage-account-12345
s3Bucket:
bucketName: my-restore-bucket-12345
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b1514358
prefix: my-restore-prefix
files:
- path: path
isDirectory: true
- path: path
isDirectory: true
properties:
destination:
$ref: '#/components/schemas/ObjectStorageDestination'
files:
description: List of file paths to restore.
items:
$ref: '#/components/schemas/FilePath'
type: array
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
required:
- destination
- files
- restoreAccountId
type: object
RestoreGcpVmInstanceRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
gcpVm:
startInstanceAfterRestore: true
networkHostProject: my-shared-vpc-project
disks:
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
- settings:
encryptionKeyId: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
name: my-restored-disk
iops: 3000
description: boot disk
throughput: 125
type: pd-ssd
sizeBytes: 10737418240
labels:
key: labels
providerDiskId: '5178361631409150158'
zone: us-east1-b
name: my-vm-12345
networkName: default
internalIp: 10.0.0.10
machineType: e2-medium
subnetName: default
labels:
eon_api_restore: 'true'
properties:
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
destination:
$ref: '#/components/schemas/GcpVmInstanceRestoreDestination'
required:
- destination
- restoreAccountId
type: object
AzureDisk:
example:
settings:
tier: Standard
name: my-disk-12345
hyperVGeneration: V1
type: Standard_LRS
sizeBytes: 10737418240
tags:
key: tags
providerDiskId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
properties:
providerDiskId:
description: Cloud-provider-assigned disk ID.
example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group-12345/providers/Microsoft.Compute/disks/my-disk-12345
type: string
settings:
$ref: '#/components/schemas/AzureDiskSettings'
required:
- providerDiskId
- settings
type: object
SortOrder:
description: Sort order. Use `ASC` for ascending order and `DESC` for descending order.
enum:
- ASC
- DESC
example: ASC
type: string
RestoreBucketRequest:
example:
restoreAccountId: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
destination:
gcsBucket:
bucketName: my-restore-bucket-12345
prefix: my-restore-prefix
storageAccount:
container: my-restore-container-12345
resourceGroup: my-restore-resource-group-12345
prefix: my-restore-prefix
name: my-restore-storage-account-12345
s3Bucket:
bucketName: my-restore-bucket-12345
encryptionKeyId: arn:aws:kms:eu-central-1:151435873114:key/1e61541a-5039-413a-b821-0f4f596b785b1514358
prefix: my-restore-prefix
properties:
destination:
$ref: '#/components/schemas/ObjectStorageDestination'
restoreAccountId:
description: Eon-assigned ID of the restore account.
example: 1ee34dc5-0a7c-4e56-a820-917371e05c8d
type: string
required:
- destination
- restoreAccountId
type: object
securitySchemes:
ApiKeyAuth:
bearerFormat: JWT
scheme: bearer
type: http