> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.eon.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.eon.io/_mcp/server.

# Create Backup Policy

POST https://%7Baccount-domain%7D.console.eon.io/api/v1/projects/{projectId}/backup-policies
Content-Type: application/json

Creates a backup policy.

Reference: https://docs.eon.io/api/api-reference/backup-management/backup-policies/create-backup-policy

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `projectId` (string, required) — 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.

### Headers

- `X-Action-Approval-Request-Id` (string, optional) — ID of an approved action request. Applicable only when the method is protected by an action approval policy and the action request has been approved.&nbsp; When used, the current API request must match the original request parameters. The approved action request can be executed only by the original requester.

### Body (application/json)

This endpoint expects a CreateBackupPolicyRequest.

- `name` (string, required) — Backup policy display name.
- `resourceSelector` (BackupPolicyResourceSelector, required) — Configuration that determines which resources are included in the backup policy. Includes a combination of dynamic resource selection and manual overrides.
- `backupPlan` (BackupPolicyPlan, required)
- `enabled` (boolean, optional, default: true) — Whether the backup policy is enabled.

## Response

### 200

Backup policy created.

- `backupPolicy` (BackupPolicy, required)

### 201

Applicable only when the method is protected by an [action approval policy]. An action request was created in an initial state. The action request needs to be submitted for approval by passing its ID to [Submit Action Approval Request](https://docs.eon.io/api/api-reference/access-management/action-approvals/my-action-requests/create-action-approval-request). [action approval policy]: /api/using-the-api/action-approvals

- `actionApprovalRequest` (MPARequest, required) — Action request details.

## Types

### BackupPolicyResourceSelector

- `resourceSelectionMode` (enum, required) — Mode that determines how resources are selected for inclusion in the backup policy. To include or exclude all resources from the policy, set to `ALL` or `NONE`, respectively. For conditional selection, set to `CONDITIONAL` and provide conditions in `expression`.
  - Allowed values: `ALL`, `NONE`, `CONDITIONAL`
- `expression` (BackupPolicyExpression, optional) — Conditional expression to evaulate to determine which resources are to included in the backup policy. Used only when `resourceSelectionMode` is `CONDITIONAL`. Only one of the expressions below can be used. For multiple conditions using `AND` or `OR` logic, group expressions with `group`. You can nest multiple groups to create more complex expressions.
- `resourceInclusionOverride` (list of string, optional) — List of cloud-provider-assigned resource IDs to include in the backup policy, regardless of whether they're excluded by `resourceSelectionMode` and `expression`.
- `resourceExclusionOverride` (list of string, optional) — List of cloud-provider-assigned resource IDs to exclude from the backup policy, regardless of whether they're included by `resourceSelectionMode` and `expression`.

### BackupPolicyPlan

- `backupPolicyType` (enum, required) — Backup policy type. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `UNSPECIFIED`, `STANDARD`, `AWS_NATIVE_STANDARD`, `HIGH_FREQUENCY`, `PITR`, `AWS_NATIVE_PITR`
- `standardPlan` (StandardBackupPolicyPlan, optional) — Options for standard backup policies. Used only when `backupPolicyType` is `STANDARD`.
- `highFrequencyPlan` (HighFrequencyBackupPolicyPlan, optional) — Options for high-frequency backup policies. Used only when `backupPolicyType` is `HIGH_FREQUENCY`.
- `awsNativePitrPlan` (AwsNativePitrBackupPolicyPlan, optional) — Options for AWS native PiTR backup policies using AWS Backup. Used only when `backupPolicyType` is `AWS_NATIVE_PITR`.
- `awsNativeStandardPlan` (AwsNativeStandardBackupPolicyPlan, optional) — Options for AWS native standard backup policies. Used only when `backupPolicyType` is `AWS_NATIVE_STANDARD`.

### BackupPolicy

- `id` (string, required) — Backup policy ID.
- `name` (string, required) — Backup policy display name.
- `enabled` (boolean, required) — Whether the backup policy is enabled.
- `resourceSelector` (BackupPolicyResourceSelector, required) — Configuration that determines which resources are included in the backup policy. Includes a combination of dynamic resource selection and manual overrides.
- `backupPlan` (BackupPolicyPlan, required) — Backup policy type and backup schedule.

### MPARequest

Action request details.

- `id` (string, required) — ID of the action request.
- `operation` (enum, required) — Operation that requires action approval before it can be completed.
  - Allowed values: `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_CREATE_BACKUP_POLICY`
- `requesterEmail` (string, required) — Email address of the requester.
- `status` (enum, required) — Action request status. For an explanation of statuses, see [Action Request Statuses](/data-protection/account-administration/access-management/action-approvals/action-request-statuses).
  - Allowed values: `MPA_REQUEST_STATUS_UNSPECIFIED`, `CREATED`, `PENDING_APPROVAL`, `APPROVED`, `DENIED`, `EXPIRED_PENDING_APPROVAL`, `EXPIRED_APPROVED`, `EXECUTED`, `CANCELED_PENDING_APPROVAL`, `CANCELED_APPROVED`, `DISCARDED`
- `policyDetails` (list of MPARequestPolicyDetail, required) — List of the action request's approval rules. Each item contains the rule's configuration and approval progress.
- `createdTime` (datetime, required) — Time when the approval request was created.
- `requesterName` (string, optional) — Display name of the requester at the time the request was created.
- `comment` (string, optional) — Comment from the requester explaining why they want to perform the action.
- `approvalExpirationTime` (datetime, optional, nullable) — Deadline for gathering approvals. Omitted before the request is submitted or after it's discarded.
- `executionExpirationTime` (datetime, optional, nullable) — Deadline for completing the approved action. Set when the request is approved.
- `resolvedTime` (datetime, optional, nullable) — Time when the request reached a terminal state, such as executed, expired, canceled, denied, or discarded. Omitted while the request is still active.

### BackupPolicyExpression

Conditional expression to evaulate to determine which resources are to included in the backup policy. Used only when `resourceSelectionMode` is `CONDITIONAL`. Only one of the expressions below can be used. For multiple conditions using `AND` or `OR` logic, group expressions with `group`. You can nest multiple groups to create more complex expressions.

- `group` (BackupPolicyGroupCondition, optional) — Group of expressions to evaluate using the logical operator specified in `operator`. Each item in the `operands` list can be either a single expression or a nested `group` expression.
- `resourceType` (ResourceTypeCondition, optional)
- `dataClasses` (DataClassesCondition, optional)
- `environment` (EnvironmentCondition, optional)
- `apps` (AppsCondition, optional)
- `cloudProvider` (CloudProviderCondition, optional)
- `accountId` (AccountIdCondition, optional)
- `sourceRegion` (RegionCondition, optional)
- `vpc` (VpcCondition, optional)
- `subnets` (SubnetsCondition, optional)
- `resourceGroupName` (ResourceGroupNameCondition, optional)
- `resourceName` (ResourceNameCondition, optional)
- `resourceId` (ResourceIdCondition, optional)
- `tagKeys` (TagKeysCondition, optional)
- `tagKeyValues` (TagKeyValuesCondition, optional)
- `sourceAccountTagKeys` (SourceAccountTagKeysCondition, optional) — Matches resources by the tag keys of the cloud account they belong to, rather than the resource's own tags.
- `sourceAccountTagKeyValues` (SourceAccountTagKeyValuesCondition, optional) — Matches resources by the tag key/value pairs of the cloud account they belong to, rather than the resource's own tags.
- `globalClusterIdentifier` (GlobalClusterIdentifierCondition, optional)

### StandardBackupPolicyPlan

- `backupSchedules` (list of StandardBackupSchedules, required) — List of backup schedules. Each schedule specifies a backup frequency, retention period, and vault.
- `scheduleTimezone` (enum, optional, default: UTC) — Time zone used in backup schedules.
  - Allowed values: `UTC`, `RESOURCE`

### HighFrequencyBackupPolicyPlan

- `resourceTypes` (list of HighFrequencyBackupResourceType, required) — Resource types to backup.
- `backupSchedules` (list of HighFrequencyBackupSchedules, required) — List of backup schedules. Each schedule specifies a backup frequency, retention period, and vault.
- `scheduleTimezone` (enum, optional, default: UTC) — Time zone used in backup schedules.
  - Allowed values: `UTC`, `RESOURCE`

### AwsNativePitrBackupPolicyPlan

- `retentionDays` (integer, required) — Number of days to retain continuous backups with AWS Backup. AWS allows 1 to 35 days for RDS and Aurora continuous backups.
- `resourceType` (AwsNativePitrBackupResourceType, required)

### AwsNativeStandardBackupPolicyPlan

- `backupSchedules` (list of AwsNativeStandardBackupSchedules, required) — List of backup schedules. Each schedule specifies a backup frequency, retention period, and target region.
- `vaultProtectionMode` (enum, optional) — Vault protection mode for the backup policy.
  - Allowed values: `NONE`, `VAULT_LOCK_GOVERNANCE`, `VAULT_LOCK_COMPLIANCE`, `LOGICALLY_AIR_GAPPED`

### MPARequestPolicyDetail

- `requiredApprovals` (integer, required) — Count of approvals the rule requires.
- `currentApprovals` (integer, required) — Count of qualifying approvals received.
- `executionWindowHours` (integer, required) — After all required approvals are received, number of hours the requester has to complete the action.
- `approvalWindowHours` (integer, required) — After submitting the action request, number of hours allowed for gathering all required approvals.
- `description` (string, optional) — Rule description.
- `approverIdpId` (string, optional, nullable) — Eon-assigned ID of the SAML identity provider the approver group belongs to. Used in combination with `approverProviderGroupId`.
- `approverProviderGroupId` (string, optional, nullable) — Identity-provider-assigned ID of the group. Used in combination with `approverIdpId`.

### BackupPolicyGroupCondition

Group of expressions to evaluate using the logical operator specified in `operator`. Each item in the `operands` list can be either a single expression or a nested `group` expression.

- `operator` (enum, required) — Logical operator to apply to the list of `operands`. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `AND`, `OR`, `UNSPECIFIED`
- `operands` (list of BackupPolicyExpression, required) — List of expressions to evaluate using the logical operator specified in `operator`. Each item in the list can be either a single expression or a nested `group` expression. Must contain at least 2 items.

### ResourceTypeCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `resourceTypes` (list of enum, required) — Resource types to evaluate. `RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS_EC2`, `AWS_RDS`, `AWS_S3`, `AWS_EFS`, `AWS_FSX`, `AWS_EKS_NAMESPACE`, `AWS_DYNAMO_DB`, `AZURE_VIRTUAL_MACHINE`, `AZURE_FILE_SHARE`, `AZURE_STORAGE_ACCOUNT`, `AZURE_DISK`, `AZURE_SQL_DATABASE`, `AZURE_SQL_MANAGED_INSTANCE`, `AZURE_SQL_VIRTUAL_MACHINE`, `AZURE_MYSQL`, `AZURE_POSTGRESQL`, `AZURE_COSMOSDB_MONGODB`, `AZURE_COSMOSDB_NOSQL`, `ATLAS_MONGODB_CLUSTER`, `GCP_COMPUTE_ENGINE_INSTANCE`, `GCP_CLOUD_SQL_INSTANCE`, `GCP_CLOUD_STORAGE_BUCKET`, `RESOURCE_TYPE_UNSPECIFIED`

### DataClassesCondition

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `dataClasses` (list of string, required)

### EnvironmentCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `environments` (list of enum, required)
  - Allowed values: `PROD`, `PROD_INTERNAL`, `STAGE`, `ENVIRONMENT_UNSPECIFIED`

### AppsCondition

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `apps` (list of string, required)

### CloudProviderCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `cloudProviders` (list of enum, required)
  - Allowed values: `AWS`, `AZURE`, `GCP`, `MONGO_ATLAS`, `PROVIDER_UNSPECIFIED`

### AccountIdCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `accountIds` (list of string, required)

### RegionCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `regions` (list of string, required)

### VpcCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `vpcs` (list of string, required)

### SubnetsCondition

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `subnets` (list of string, required)

### ResourceGroupNameCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `resourceGroupNames` (list of string, required)

### ResourceNameCondition

- `operator` (enum, required) — Evaluates string values. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `CONTAINS`, `NOT_CONTAINS`, `STARTS_WITH`, `NOT_STARTS_WITH`, `ENDS_WITH`, `NOT_ENDS_WITH`, `UNSPECIFIED`
- `resourceNames` (list of string, required)

### ResourceIdCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `resourceIds` (list of string, required)

### TagKeysCondition

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `tagKeys` (list of string, required)

### TagKeyValuesCondition

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `tagKeyValues` (list of TagKeyValue, required)

### SourceAccountTagKeysCondition

Matches resources by the tag keys of the cloud account they belong to, rather than the resource's own tags.

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `sourceAccountTagKeys` (list of string, required)

### SourceAccountTagKeyValuesCondition

Matches resources by the tag key/value pairs of the cloud account they belong to, rather than the resource's own tags.

- `operator` (enum, required) — Evaluates whether the original list constains any, all, or none of the values in this list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `CONTAINS_ANY_OF`, `CONTAINS_NONE_OF`, `CONTAINS_ALL_OF`, `UNSPECIFIED`
- `sourceAccountTagKeyValues` (list of TagKeyValue, required)

### GlobalClusterIdentifierCondition

- `operator` (enum, required) — Evaluates whether the value is in the list. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `IN`, `NOT_IN`, `UNSPECIFIED`
- `globalClusterIdentifier` (list of string, required)

### StandardBackupSchedules

- `vaultId` (string, required) — Vault ID.
- `scheduleConfig` (StandardBackupScheduleConfig, required) — Frequency configuration options.
- `backupRetentionDays` (integer, required) — Backup retention period, in days.

### HighFrequencyBackupResourceType

- `resourceType` (enum, optional) — Resource type identifier combining cloud provider and service type. `RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS_S3`, `AWS_DYNAMO_DB`, `GCP_CLOUD_STORAGE_BUCKET`, `AWS_EC2`, `AWS_RDS`, `RESOURCE_TYPE_UNSPECIFIED`

### HighFrequencyBackupSchedules

- `vaultId` (string, required) — Vault ID.
- `scheduleConfig` (HighFrequencyBackupScheduleConfig, required) — Frequency configuration options.
- `backupRetentionDays` (integer, required) — Backup retention period, in days.

### AwsNativePitrBackupResourceType

- `resourceType` (enum, optional) — Resource type identifier combining cloud provider and service type. `RESOURCE_TYPE_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS_RDS`, `RESOURCE_TYPE_UNSPECIFIED`

### AwsNativeStandardBackupSchedules

- `targetRegion` (string, required) — Target region for the native backup.
- `scheduleConfig` (AwsNativeStandardBackupScheduleConfig, required) — Frequency configuration options.
- `backupRetentionDays` (integer, required) — Backup retention period, in days.

### TagKeyValue

- `key` (string, required)
- `value` (string, optional)

### StandardBackupScheduleConfig

- `frequency` (enum, required) — Backup frequency. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `INTERVAL`, `DAILY`, `WEEKLY`, `MONTHLY`, `ANNUALLY`, `UNSPECIFIED`
- `intervalConfig` (StandardIntervalConfig, optional) — Hourly backup configuration. Used only when `frequency` is `INTERVAL`.
- `dailyConfig` (DailyConfig, optional) — Daily backup configuration. Used only when `frequency` is `DAILY`.
- `weeklyConfig` (WeeklyConfig, optional) — Weekly backup configuration. Used only when `frequency` is `WEEKLY`.
- `monthlyConfig` (MonthlyConfig, optional) — Monthly backup configuration. Used only when `frequency` is `MONTHLY`.
- `annuallyConfig` (AnnuallyConfig, optional) — Annual backup configuration. Used only when `frequency` is `ANNUALLY`.

### HighFrequencyBackupScheduleConfig

- `frequency` (enum, optional) — Backup frequency. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `INTERVAL`, `DAILY`, `WEEKLY`, `MONTHLY`, `ANNUALLY`, `UNSPECIFIED`
- `intervalConfig` (HighFrequencyIntervalConfig, optional)
- `dailyConfig` (DailyConfig, optional)
- `weeklyConfig` (WeeklyConfig, optional)
- `monthlyConfig` (MonthlyConfig, optional)
- `annuallyConfig` (AnnuallyConfig, optional)

### AwsNativeStandardBackupScheduleConfig

- `frequency` (enum, required) — Backup frequency. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `INTERVAL`, `DAILY`, `WEEKLY`, `MONTHLY`, `ANNUALLY`, `UNSPECIFIED`
- `intervalConfig` (AwsNativeStandardIntervalConfig, optional) — Hourly backup configuration. Used only when `frequency` is `INTERVAL`.
- `dailyConfig` (DailyConfig, optional) — Daily backup configuration. Used only when `frequency` is `DAILY`.
- `weeklyConfig` (WeeklyConfig, optional) — Weekly backup configuration. Used only when `frequency` is `WEEKLY`.
- `monthlyConfig` (MonthlyConfig, optional) — Monthly backup configuration. Used only when `frequency` is `MONTHLY`.
- `annuallyConfig` (AnnuallyConfig, optional) — Annual backup configuration. Used only when `frequency` is `ANNUALLY`.

### StandardIntervalConfig

- `intervalHours` (enum, required) — Backup frequency, in hours.
  - Allowed values: `6`, `8`, `12`

### DailyConfig

- `timeOfDay` (TimeOfDay, optional) — Scheduled start time.
- `startWindowMinutes` (integer, optional, default: 240) — The window of time after the start time you want the backup to start, in minutes. Defaults to `240` (4 hours).

### WeeklyConfig

- `daysOfWeek` (list of enum, required) — Days of the week to schedule backups.
  - Allowed values: `MON`, `TUE`, `WED`, `THU`, `FRI`, `SAT`, `SUN`
- `timeOfDay` (TimeOfDay, required) — Scheduled start time.
- `startWindowMinutes` (integer, optional, default: 240) — The window of time after the start time you want the backup to start, in minutes. Defaults to `240` (4 hours).

### MonthlyConfig

- `daysOfMonth` (list of integer, optional) — Days of the month to schedule backups.
- `timeOfDay` (TimeOfDay, optional) — Scheduled start time.
- `startWindowMinutes` (integer, optional, default: 240) — The window of time after the start time you want the backup to start, in minutes. Defaults to `240` (4 hours).

### AnnuallyConfig

- `timeOfDay` (TimeOfDay, optional) — Scheduled start time.
- `timeOfYear` (TimeOfYear, optional) — Date of the year to schedule backups.
- `startWindowMinutes` (integer, optional, default: 240) — The window of time after the start time you want the backup to start, in minutes. Defaults to `240` (4 hours).

### HighFrequencyIntervalConfig

- `intervalMinutes` (enum, required)
  - Allowed values: `15`, `30`, `60`, `120`, `180`, `240`, `360`, `480`, `720`

### AwsNativeStandardIntervalConfig

- `intervalHours` (enum, required) — Backup frequency, in hours.
  - Allowed values: `1`, `2`, `4`, `6`, `8`, `12`

### TimeOfDay

- `hour` (integer, required, default: 0) — Hour of the day.
- `minute` (integer, required, default: 0) — Minute of the hour.

### TimeOfYear

- `month` (integer, required, default: 1)
- `dayOfMonth` (integer, required, default: 1)

## Examples

### Example 1

**Request**

```json
{
  "name": "Production with PII",
  "resourceSelector": {
    "resourceSelectionMode": "CONDITIONAL"
  },
  "backupPlan": {
    "backupPolicyType": "STANDARD"
  }
}
```

**Response**

```json
{
  "backupPolicy": {
    "id": "de308488-df3d-5b82-8f37-477ef529f491",
    "name": "Production with PII",
    "enabled": true,
    "resourceSelector": {
      "resourceSelectionMode": "CONDITIONAL",
      "expression": {
        "group": {
          "operator": "AND",
          "operands": [
            {
              "resourceType": {
                "operator": "IN",
                "resourceTypes": [
                  "AWS_EC2",
                  "AWS_RDS"
                ]
              }
            },
            {
              "environment": {
                "operator": "IN",
                "environments": [
                  "PROD",
                  "PROD_INTERNAL"
                ]
              }
            }
          ]
        },
        "resourceType": {
          "operator": "IN",
          "resourceTypes": [
            "AWS_EC2"
          ]
        },
        "dataClasses": {
          "operator": "CONTAINS_ANY_OF",
          "dataClasses": [
            "PII"
          ]
        },
        "environment": {
          "operator": "IN",
          "environments": [
            "PROD"
          ]
        },
        "apps": {
          "operator": "CONTAINS_ANY_OF",
          "apps": [
            "string"
          ]
        },
        "cloudProvider": {
          "operator": "IN",
          "cloudProviders": [
            "AWS"
          ]
        },
        "accountId": {
          "operator": "IN",
          "accountIds": [
            "string"
          ]
        },
        "sourceRegion": {
          "operator": "IN",
          "regions": [
            "string"
          ]
        },
        "vpc": {
          "operator": "IN",
          "vpcs": [
            "string"
          ]
        },
        "subnets": {
          "operator": "CONTAINS_ANY_OF",
          "subnets": [
            "string"
          ]
        },
        "resourceGroupName": {
          "operator": "IN",
          "resourceGroupNames": [
            "string"
          ]
        },
        "resourceName": {
          "operator": "CONTAINS",
          "resourceNames": [
            "string"
          ]
        },
        "resourceId": {
          "operator": "IN",
          "resourceIds": [
            "string"
          ]
        },
        "tagKeys": {
          "operator": "CONTAINS_ANY_OF",
          "tagKeys": [
            "string"
          ]
        },
        "tagKeyValues": {
          "operator": "CONTAINS_ANY_OF",
          "tagKeyValues": [
            {
              "key": "string",
              "value": "string"
            }
          ]
        },
        "sourceAccountTagKeys": {
          "operator": "CONTAINS_ANY_OF",
          "sourceAccountTagKeys": [
            "string"
          ]
        },
        "sourceAccountTagKeyValues": {
          "operator": "CONTAINS_ANY_OF",
          "sourceAccountTagKeyValues": [
            {
              "key": "string",
              "value": "string"
            }
          ]
        },
        "globalClusterIdentifier": {
          "operator": "IN",
          "globalClusterIdentifier": [
            "string"
          ]
        }
      },
      "resourceInclusionOverride": [
        "cluster-3RYR75ARQOPQJ6MCRKTQFDR2GE",
        "db-FE4MOD3UCIYIQKXF3UVTCB55FA"
      ],
      "resourceExclusionOverride": [
        "i-0b0f5b5ef75b1c009",
        "43d9cc0b-b633-5431-93d0-38aa70a13745"
      ]
    },
    "backupPlan": {
      "backupPolicyType": "STANDARD",
      "standardPlan": {
        "backupSchedules": [
          {
            "vaultId": "0b8d140a-f4fe-58bf-afd7-a57f073d72c5",
            "scheduleConfig": {
              "frequency": "WEEKLY",
              "intervalConfig": {
                "intervalHours": 8
              },
              "dailyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "weeklyConfig": {
                "daysOfWeek": [
                  "MON",
                  "THU"
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "monthlyConfig": {
                "daysOfMonth": [
                  5,
                  10,
                  15
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "annuallyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "timeOfYear": {
                  "month": 5,
                  "dayOfMonth": 14
                },
                "startWindowMinutes": 240
              }
            },
            "backupRetentionDays": 30
          }
        ],
        "scheduleTimezone": "UTC"
      },
      "highFrequencyPlan": {
        "resourceTypes": [
          {
            "resourceType": "AWS_S3"
          }
        ],
        "backupSchedules": [
          {
            "vaultId": "0b8d140a-f4fe-58bf-afd7-a57f073d72c5",
            "scheduleConfig": {
              "frequency": "WEEKLY",
              "intervalConfig": {
                "intervalMinutes": 360
              },
              "dailyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "weeklyConfig": {
                "daysOfWeek": [
                  "MON",
                  "THU"
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "monthlyConfig": {
                "daysOfMonth": [
                  5,
                  10,
                  15
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "annuallyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "timeOfYear": {
                  "month": 5,
                  "dayOfMonth": 14
                },
                "startWindowMinutes": 240
              }
            },
            "backupRetentionDays": 30
          }
        ],
        "scheduleTimezone": "UTC"
      },
      "awsNativePitrPlan": {
        "retentionDays": 7,
        "resourceType": {
          "resourceType": "AWS_RDS"
        }
      },
      "awsNativeStandardPlan": {
        "backupSchedules": [
          {
            "targetRegion": "us-east-1",
            "scheduleConfig": {
              "frequency": "WEEKLY",
              "intervalConfig": {
                "intervalHours": 4
              },
              "dailyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "weeklyConfig": {
                "daysOfWeek": [
                  "MON",
                  "THU"
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "monthlyConfig": {
                "daysOfMonth": [
                  5,
                  10,
                  15
                ],
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "startWindowMinutes": 240
              },
              "annuallyConfig": {
                "timeOfDay": {
                  "hour": 12,
                  "minute": 30
                },
                "timeOfYear": {
                  "month": 5,
                  "dayOfMonth": 14
                },
                "startWindowMinutes": 240
              }
            },
            "backupRetentionDays": 30
          }
        ],
        "vaultProtectionMode": "NONE"
      }
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies"

payload = {
    "name": "Production with PII",
    "resourceSelector": { "resourceSelectionMode": "CONDITIONAL" },
    "backupPlan": { "backupPolicyType": "STANDARD" }
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"name":"Production with PII","resourceSelector":{"resourceSelectionMode":"CONDITIONAL"},"backupPlan":{"backupPolicyType":"STANDARD"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"Production with PII\",\n  \"resourceSelector\": {\n    \"resourceSelectionMode\": \"CONDITIONAL\"\n  },\n  \"backupPlan\": {\n    \"backupPolicyType\": \"STANDARD\"\n  }\n}")
  .asString();
```

### Example 2

**Request**

```json
{
  "name": "Production with PII",
  "resourceSelector": {
    "resourceSelectionMode": "CONDITIONAL"
  },
  "backupPlan": {
    "backupPolicyType": "STANDARD"
  }
}
```

**Response**

```json
{
  "actionApprovalRequest": {
    "approvalExpirationTime": "2026-05-05T03:00:05Z",
    "comment": "Removing a backup policy that has been replaced.",
    "createdTime": "2026-05-04T23:00:05Z",
    "executionExpirationTime": "2026-05-05T07:00:05Z",
    "id": "018f3b3f-4818-7c31-a0d7-2e02f2f83a10",
    "operation": "MPA_OPERATION_DELETE_BACKUP_POLICY",
    "policyDetails": [
      {
        "approvalWindowHours": 24,
        "approverIdpId": "018f3b3f-4818-7c31-a0d7-2e02f2f83a31",
        "approverProviderGroupId": "platform-admins",
        "currentApprovals": 1,
        "description": "Require approval before deleting backup policies.",
        "executionWindowHours": 4,
        "requiredApprovals": 2
      }
    ],
    "requesterEmail": "requester@example.com",
    "requesterName": "Riley Chen",
    "resolvedTime": "2026-05-05T02:10:12Z",
    "status": "PENDING_APPROVAL"
  }
}
```

**SDK Code**

```python
import requests

url = "https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies"

payload = {
    "name": "Production with PII",
    "resourceSelector": { "resourceSelectionMode": "CONDITIONAL" },
    "backupPlan": { "backupPolicyType": "STANDARD" }
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"name":"Production with PII","resourceSelector":{"resourceSelectionMode":"CONDITIONAL"},"backupPlan":{"backupPolicyType":"STANDARD"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://{account-domain}.console.eon.io/api/v1/projects/733888d8-2573-5f9a-b81d-21f051d24fda/backup-policies")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"Production with PII\",\n  \"resourceSelector\": {\n    \"resourceSelectionMode\": \"CONDITIONAL\"\n  },\n  \"backupPlan\": {\n    \"backupPolicyType\": \"STANDARD\"\n  }\n}")
  .asString();
```