canonical: https://jentic.com/apis/amazonaws.com/aws-dlm

# AWS Amazon Data Lifecycle Manager

Jentic publishes the only available OpenAPI specification for Amazon Data Lifecycle Manager, keeping it validated and agent-ready. Amazon Data Lifecycle Manager (DLM) automates the creation, retention, and deletion of Amazon EBS snapshots and AMI backups through declarative lifecycle policies. The API exposes a small surface - create, get, update, and delete policies, plus tag operations - that is purpose-built for treating backup schedules as code. Use it when an agent needs to enforce backup posture across many accounts or to programmatically rotate retention windows as compliance requirements change.

## For AI agents

Define and manage Amazon Data Lifecycle Manager policies that automate EBS snapshot and AMI backup schedules with retention rules.

## Scope

Does not handle snapshot data movement, cross-region copy outside policy actions, or non-EBS resource types - use for declarative EBS and AMI lifecycle policies only.

## Capabilities

- Define declarative backup schedules for EBS volumes via CreateLifecyclePolicy with target tag selectors
- Update retention windows, schedules, and resource targets on an existing policy with PATCH /policies/{policyId}
- Disable or re-enable policies during maintenance windows by toggling state on UpdateLifecyclePolicy
- Inspect existing policies with GetLifecyclePolicy and GetLifecyclePolicies for inventory and compliance
- Apply tags to lifecycle policies for cost allocation and team ownership tracking
- Decommission policies that target retired workloads with DeleteLifecyclePolicy

## Use cases

### Codify EBS Backup Schedules

Replace ad-hoc snapshot scripts with DLM lifecycle policies that target EBS volumes by tag and run on a fixed schedule. CreateLifecyclePolicy defines the cadence, retention, and target resource tags; the policy then runs without further intervention until updated or deleted, ensuring backups are consistent across accounts.

Example prompt: Call CreateLifecyclePolicy with PolicyDetails.ResourceTypes set to VOLUME, a TargetTags filter of Environment=prod, and a schedule of daily snapshots retained for 14 days.

### Rotate Retention to Meet Compliance

When auditors increase retention requirements from 14 to 90 days, DLM can update every affected policy in seconds via PATCH /policies/{policyId}. The new retention applies to subsequent snapshots without recreating the policy or losing the existing schedule history.

Example prompt: Call UpdateLifecyclePolicy on policy-0123456789abcdef with PolicyDetails.Schedules[0].RetainRule.Count set to 90 and verify with GetLifecyclePolicy.

### Inventory Lifecycle Posture Across Accounts

Run GetLifecyclePolicies in each account and region to build a backup inventory: which workloads are protected, which schedule applies, and which policies are currently disabled. The flat list lets compliance and FinOps teams quickly spot unprotected volumes or over-retained snapshots driving up storage cost.

Example prompt: Call GetLifecyclePolicies, then GetLifecyclePolicy for any policy in DISABLED state to surface gaps.

### Agent-Driven Backup Policy Management

An AI agent connected via Jentic can read a compliance change ticket, locate every DLM policy that needs adjusting, and update retention or schedules accordingly. Jentic returns the matching DLM operation and schema so the agent can execute the change with the right PolicyDetails payload and verify it after the update.

Example prompt: Search Jentic for 'update a DLM lifecycle policy', load UpdateLifecyclePolicy, execute it with the new retention, then GetLifecyclePolicy to confirm.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /policies | Create a new lifecycle policy |
| GET | /policies | List lifecycle policies |
| GET | /policies/{policyId}/ | Get a specific policy |
| PATCH | /policies/{policyId} | Update an existing policy |
| DELETE | /policies/{policyId}/ | Delete a lifecycle policy |
| POST | /tags/{resourceArn} | Tag a lifecycle policy |
| GET | /tags/{resourceArn} | List tags on a policy |

## Key resources

- **Lifecycle Policy** — Declarative schedule and retention rule for EBS or AMI backups.
- **Schedule** — Time-based rule embedded in a policy that determines when snapshots run.
- **Tag** — Tags applied to lifecycle policies for inventory and cost allocation.

## Why Jentic

- **Setup:** Wiring Amazon Data Lifecycle Manager by hand means building SigV4 request signing, resolving the regional dlm.{region}.amazonaws.com host, and handling AWS throttling and retries yourself. Through Jentic you install once, import Data Lifecycle Manager from the API Directory, store the AWS access keys once, and your agent calls it.
- **Permission scoping:** DLM puts the policy id in the URL path (/policies/{policyId}), so a rule can pin your agent to one lifecycle policy: it can read and update that policy and nothing else. You choose the operations it may call, so policy deletion is not included unless you add it.
- **Credential handling:** Your AWS access keys for DLM are stored once, encrypted, by your own Jentic One instance and injected at execution time when the request is signed. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a DLM lifecycle policy' or 'change snapshot retention', and Jentic returns the matching DLM operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Amazon Elastic Block Store** — Direct snapshot APIs for the volumes that DLM policies back up.
- **AWS Backup** — Centralised backup across multiple AWS services, broader scope than DLM.
- **Amazon Elastic Compute Cloud** — Owns the EBS volumes and AMIs that DLM policies target.

## FAQ

### Why is there no official OpenAPI spec for Amazon Data Lifecycle Manager?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Amazon Data Lifecycle Manager via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Amazon DLM API use?

DLM uses AWS Signature Version 4 (HMAC) signing with an AWS access key ID and secret access key. Through Jentic, those credentials live encrypted in your Jentic One instance and are injected into signed requests at execution time, so the agent never sees the raw secret access key.

### Can I update an existing lifecycle policy without deleting it?

Yes. Call PATCH /policies/{policyId} with the modified PolicyDetails - including schedules and retention rules - and the existing policy is updated in place. The schedule continues without losing history of past runs.

### What are the rate limits for the Amazon DLM API?

DLM shares standard AWS service quotas, which are managed per account and region rather than published as fixed per-second limits in the spec. Bulk policy listing should rely on pagination, and ThrottlingException responses should trigger backoff.

### How do I create an EBS snapshot policy through Jentic?

Search Jentic for 'create a DLM lifecycle policy', load CreateLifecyclePolicy, then execute it with PolicyDetails.ResourceTypes, TargetTags, and a Schedules array. Run pip install jentic to use the async search and execute pattern.

### Does this API actually take snapshots, or only schedule them?

The API only schedules and configures policies. Snapshot creation happens automatically inside AWS based on the policy schedule, and the resulting snapshots appear in the EC2 EBS API rather than in DLM responses.

### Can I limit what my agent is allowed to do with the Amazon Data Lifecycle Manager API?

Yes. Because you run Jentic One yourself, your own rules decide which DLM operations and credentials the agent may use. Since DLM puts the policy id in the URL path (/policies/{policyId}), you can pin the agent to a single lifecycle policy so it reads and updates that one policy and nothing else. You choose the operations it may call, so DeleteLifecyclePolicy stays out of reach unless you explicitly allow it.
