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