Eon Backup Policies API
Define and manage backup policies and schedules.
Define and manage backup policies and schedules.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eon-backup-policies-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: The Eon.io REST API
title: Eon Backup Policies API
version: 1.0.0
servers:
- url: /
security:
- ApiKeyAuth: []
tags:
- description: Define and manage backup policies and schedules.
name: Backup Policies
x-displayName: Backup Policies
paths:
/v1/projects/{projectId}/backup-policies:
post:
description: 'Description: Creates a backup policy.'
operationId: createBackupPolicy
parameters:
- description: 'ID of the project you want to create a backup policy 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: 733888d8-2573-5f9a-b81d-21f051d24fda
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBackupPolicyRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBackupPolicyResponse'
description: Backup policy created.
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: Create Backup Policy
tags:
- Backup Policies
x-mcp: true
x-internal: false
x-data-access:
excluded: true
entityRefs:
- entityType: backup_policy_retention
in: reqBody
key: backupPlan
x-permissions:
- create:policies
x-audit-log:
action: create
entityRefs:
- entityType: backup_policy
in: resBody
key: backupPolicy.id
/v1/projects/{projectId}/backup-policies/list:
post:
description: 'Description: Retrieves a list of backup policies in the specified project.'
operationId: listBackupPolicies
parameters:
- description: 'ID of the project whose backup policies you want to retrieve.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: 6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- allowEmptyValue: true
description: 'Cursor that points to the first record of the next page of results.
Get this value from the previous response.
To preserve the results in the same order, use the same sorting and filters in the first request as all subsequent requests.
'
example: Yjk3ODZjNjktZTIwZC00NjAxLWE1MzktZjg2NGExM2IxYTZlfDE=
explode: true
in: query
name: pageToken
required: false
schema:
format: tobedefined
type: string
style: form
- description: Maximum number of items to return in the response.
example: 10
explode: true
in: query
name: pageSize
required: false
schema:
default: 50
minimum: 1
type: integer
style: form
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListBackupPoliciesResponse'
description: Backup policies retrieved.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: List Backup Policies
tags:
- Backup Policies
x-mcp: true
x-internal: false
x-data-access:
excluded: true
x-permissions:
- read:policies
x-audit-log:
excluded: true
/v1/projects/{projectId}/backup-policies/{backupPolicyId}:
delete:
description: 'Description: Deletes a backup policy.'
operationId: deleteBackupPolicy
parameters:
- description: 'ID of the project whose backup policy you want to delete.
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: 6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the backup policy to delete.
explode: false
in: path
name: backupPolicyId
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':
description: Backup policy deleted.
'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: Backup policy wasn't found, or the action approval request id in X-Action-Approval-Request-Id was not found.
x-docs-public-description: Backup policy 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: Delete Backup Policy
tags:
- Backup Policies
x-internal: false
x-data-access:
excluded: true
x-permissions:
- delete:policies
x-audit-log:
action: delete
entityRefs:
- entityType: backup_policy
in: path
key: backupPolicyId
x-mpa:
operation: MPA_OPERATION_DELETE_BACKUP_POLICY
target:
entityType: backup_policy
in: path
key: backupPolicyId
get:
description: 'Description: Retrieves a backup policy.'
operationId: getBackupPolicy
parameters:
- description: 'ID of the project whose backup policy you want to retrieve.
You can get your project ID from the [API Credentials](https://console.eon.io/global-management/api-credentials) page in your global management console.
'
example: 6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the backup policy to retrieve.
explode: false
in: path
name: backupPolicyId
required: true
schema:
format: uuid
type: string
style: simple
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetBackupPolicyResponse'
description: Backup policy retrieved.
'404':
description: Backup policy 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 Backup Policy
tags:
- Backup Policies
x-mcp: true
x-internal: false
x-data-access:
excluded: true
x-permissions:
- read:policies
x-audit-log:
excluded: true
put:
description: 'Description: Updates a backup policy.'
operationId: updateBackupPolicy
parameters:
- description: 'ID of the project whose backup policy you want to update.
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: 6b3ea428-f6a4-5bb5-8fb2-e4d5d2d920ce
explode: false
in: path
name: projectId
required: true
schema:
format: uuid
type: string
style: simple
- description: ID of the backup policy to update.
explode: false
in: path
name: backupPolicyId
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/UpdateBackupPolicyRequest'
description: The request body for updating a policy
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBackupPolicyResponse'
description: Backup policy updated.
'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: Backup policy wasn't found, or the action approval request id in X-Action-Approval-Request-Id was not found.
x-docs-public-description: Backup policy wasn't found.
1XX:
description: Informational
3XX:
description: Redirect
4XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Client Error
5XX:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
summary: Update Backup Policy
tags:
- Backup Policies
x-internal: false
x-data-access:
excluded: true
entityRefs:
- entityType: backup_policy_retention
in: reqBody
key: backupPlan
x-permissions:
- update:policies
x-audit-log:
action: update
entityRefs:
- entityType: backup_policy
in: path
key: backupPolicyId
x-mpa:
operation: MPA_OPERATION_UPDATE_BACKUP_POLICY
target:
entityType: backup_policy
in: path
key: backupPolicyId
components:
schemas:
TimeOfDay:
example:
hour: 12
minute: 30
properties:
hour:
default: 0
description: Hour of the day.
example: 12
maximum: 23
minimum: 0
type: integer
minute:
default: 0
description: Minute of the hour.
example: 30
maximum: 59
minimum: 0
type: integer
required:
- hour
- minute
type: object
HighFrequencyBackupPolicyPlan:
example:
resourceTypes:
- resourceType: AWS_S3
- resourceType: AWS_S3
backupSchedules:
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalMinutes: 360
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalMinutes: 360
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
properties:
resourceTypes:
description: Resource types to backup.
items:
$ref: '#/components/schemas/HighFrequencyBackupResourceType'
type: array
backupSchedules:
description: 'List of backup schedules.
Each schedule specifies a backup frequency, retention period, and vault.
'
items:
$ref: '#/components/schemas/HighFrequencyBackupSchedules'
type: array
required:
- backupSchedules
- resourceTypes
type:
- object
- 'null'
TagKeysCondition:
example:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
properties:
operator:
$ref: '#/components/schemas/ListOperators'
tagKeys:
items:
type: string
type: array
required:
- operator
- tagKeys
type:
- object
- 'null'
RegionCondition:
example:
regions:
- regions
- regions
operator: IN
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
regions:
items:
type: string
type: array
required:
- operator
- regions
type:
- object
- 'null'
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
TagKeyValuesCondition:
example:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
properties:
operator:
$ref: '#/components/schemas/ListOperators'
tagKeyValues:
items:
$ref: '#/components/schemas/TagKeyValue'
type: array
required:
- operator
- tagKeyValues
type:
- object
- 'null'
Error:
example:
error: error
properties:
error:
type: string
type: object
CreateBackupPolicyResponse:
example:
backupPolicy:
name: Production with PII
backupPlan:
backupPolicyType: STANDARD
awsNativePitrPlan:
retentionDays: 7
resourceType:
resourceType: AWS_RDS
highFrequencyPlan:
resourceTypes:
- resourceType: AWS_S3
- resourceType: AWS_S3
backupSchedules:
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalMinutes: 360
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalMinutes: 360
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
standardPlan:
backupSchedules:
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalHours: 8
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalHours: 8
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
frequency: WEEKLY
backupRetentionDays: 30
id: de308488-df3d-5b82-8f37-477ef529f491
resourceSelector:
expression:
resourceId:
operator: IN
resourceIds:
- resourceIds
- resourceIds
resourceGroupName:
resourceGroupNames:
- resourceGroupNames
- resourceGroupNames
operator: IN
tagKeys:
tagKeys:
- tagKeys
- tagKeys
operator: CONTAINS_ANY_OF
vpc:
vpcs:
- vpcs
- vpcs
operator: IN
resourceName:
resourceNames:
- resourceNames
- resourceNames
operator: IN
dataClasses:
dataClasses:
- PII
- PII
operator: CONTAINS_ANY_OF
globalClusterIdentifier:
operator: IN
globalClusterIdentifier:
- globalClusterIdentifier
- globalClusterIdentifier
accountId:
accountIds:
- accountIds
- accountIds
operator: IN
environment:
environments:
- PROD
- PROD
operator: IN
tagKeyValues:
tagKeyValues:
- value: value
key: key
- value: value
key: key
operator: CONTAINS_ANY_OF
cloudProvider:
cloudProviders:
- AWS
- AWS
operator: IN
sourceRegion:
regions:
- regions
- regions
operator: IN
subnets:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
group:
operands:
- resourceType:
operator: IN
resourceTypes:
- AWS_EC2
- AWS_RDS
- environment:
operator: IN
environments:
- PROD
- PROD_INTERNAL
operator: AND
resourceType:
resourceTypes:
- AWS_EC2
- AWS_EC2
operator: IN
apps:
operator: CONTAINS_ANY_OF
apps:
- apps
- apps
resourceSelectionMode: CONDITIONAL
resourceExclusionOverride:
- i-0b0f5b5ef75b1c009
- 43d9cc0b-b633-5431-93d0-38aa70a13745
resourceInclusionOverride:
- cluster-3RYR75ARQOPQJ6MCRKTQFDR2GE
- db-FE4MOD3UCIYIQKXF3UVTCB55FA
enabled: true
properties:
backupPolicy:
$ref: '#/components/schemas/BackupPolicy'
required:
- backupPolicy
type: object
HighFrequencyBackupResourceType:
example:
resourceType: AWS_S3
properties:
resourceType:
allOf:
- $ref: '#/components/schemas/ResourceType'
- enum:
- AWS_S3
- AWS_DYNAMO_DB
- GCP_CLOUD_STORAGE_BUCKET
- AWS_EC2
- AWS_RDS
- RESOURCE_TYPE_UNSPECIFIED
type: string
example: AWS_S3
type: object
VpcCondition:
example:
vpcs:
- vpcs
- vpcs
operator: IN
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
vpcs:
items:
type: string
type: array
required:
- operator
- vpcs
type:
- object
- 'null'
AccountIdCondition:
example:
accountIds:
- accountIds
- accountIds
operator: IN
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
accountIds:
items:
type: string
type: array
required:
- accountIds
- operator
type:
- object
- 'null'
SubnetsCondition:
example:
subnets:
- subnets
- subnets
operator: CONTAINS_ANY_OF
properties:
operator:
$ref: '#/components/schemas/ListOperators'
subnets:
items:
type: string
type: array
required:
- operator
- subnets
type:
- object
- 'null'
EnvironmentCondition:
example:
environments:
- PROD
- PROD
operator: IN
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
environments:
items:
$ref: '#/components/schemas/Environment'
type: array
required:
- environments
- operator
type:
- object
- 'null'
AwsNativePitrBackupPolicyPlan:
example:
retentionDays: 7
resourceType:
resourceType: AWS_RDS
properties:
retentionDays:
description: 'Number of days to retain continuous backups with AWS Backup.
AWS allows 1 to 35 days for RDS and Aurora continuous backups.
'
example: 7
maximum: 35
minimum: 1
type: integer
resourceType:
$ref: '#/components/schemas/AwsNativePitrBackupResourceType'
required:
- resourceType
- retentionDays
type:
- object
- 'null'
GlobalClusterIdentifierCondition:
example:
operator: IN
globalClusterIdentifier:
- globalClusterIdentifier
- globalClusterIdentifier
properties:
operator:
$ref: '#/components/schemas/ScalarOperators'
globalClusterIdentifier:
items:
maxLength: 255
pattern: ^[A-Za-z0-9-]+$
type: string
type: array
required:
- globalClusterIdentifier
- operator
type:
- object
- 'null'
GetBackupPolicyResponse:
example:
backupPolicy:
name: Production with PII
backupPlan:
backupPolicyType: STANDARD
awsNativePitrPlan:
retentionDays: 7
resourceType:
resourceType: AWS_RDS
highFrequencyPlan:
resourceTypes:
- resourceType: AWS_S3
- resourceType: AWS_S3
backupSchedules:
- vaultId: 0b8d140a-f4fe-58bf-afd7-a57f073d72c5
scheduleConfig:
monthlyConfig:
startWindowMinutes: 240
daysOfMonth:
- 5
- 10
- 15
timeOfDay:
hour: 12
minute: 30
intervalConfig:
intervalMinutes: 360
weeklyConfig:
startWindowMinutes: 240
daysOfWeek:
- MON
- THU
timeOfDay:
hour: 12
minute: 30
annuallyConfig:
startWindowMinutes: 240
timeOfYear:
month: 5
dayOfMonth: 14
timeOfDay:
hour: 12
minute: 30
dailyConfig:
startWindowMinutes: 240
timeOfDay:
hour: 12
minute: 30
# --- truncated at 32 KB (132 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eon/refs/heads/main/openapi/eon-backup-policies-api-openapi.yml