Amazon Data Lifecycle Manager Lifecycle Policies API

Operations for managing EBS snapshot and AMI lifecycle policies

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

amazon-data-lifecycle-manager-lifecycle-policies-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon Data Lifecycle Manager Lifecycle Policies API
  description: The Amazon Data Lifecycle Manager API enables programmatic management of lifecycle policies for automating the creation, retention, and deletion of EBS snapshots and AMIs to meet backup and compliance requirements.
  version: 2018-01-12
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
servers:
- url: https://dlm.amazonaws.com
  description: Amazon Data Lifecycle Manager API
security:
- awsSignatureV4: []
tags:
- name: Lifecycle Policies
  description: Operations for managing EBS snapshot and AMI lifecycle policies
paths:
  /policies:
    get:
      operationId: getLifecyclePolicies
      summary: Get Lifecycle Policies
      description: Returns a list of lifecycle policies based on the specified filters.
      tags:
      - Lifecycle Policies
      parameters:
      - name: policyIds
        in: query
        description: List of policy IDs to filter by
        schema:
          type: array
          items:
            type: string
      - name: state
        in: query
        description: Filter by policy state
        schema:
          type: string
          enum:
          - ENABLED
          - DISABLED
          - ERROR
      - name: resourceTypes
        in: query
        description: Filter by resource type
        schema:
          type: array
          items:
            type: string
            enum:
            - VOLUME
            - INSTANCE
      - name: targetTags
        in: query
        description: Filter by target tags
        schema:
          type: array
          items:
            type: string
      - name: tagsToAdd
        in: query
        description: Filter by tags added to snapshots
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: List of lifecycle policies returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLifecyclePoliciesResponse'
              examples:
                default:
                  x-microcks-default: true
                  value:
                    Policies:
                    - PolicyId: policy-0abc123def456
                      Description: Daily EBS snapshot policy for production volumes
                      State: ENABLED
                      PolicyType: EBS_SNAPSHOT_MANAGEMENT
                      PolicySummary: Daily backup of production EBS volumes
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: createLifecyclePolicy
      summary: Create Lifecycle Policy
      description: Creates a lifecycle policy to manage the scheduled creation and retention of Amazon EBS snapshots.
      tags:
      - Lifecycle Policies
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLifecyclePolicyRequest'
            examples:
              default:
                x-microcks-default: true
                value:
                  Description: Daily EBS snapshot policy for production volumes
                  State: ENABLED
                  ExecutionRoleArn: arn:aws:iam::123456789012:role/AWSDataLifecycleManagerDefaultRole
                  PolicyDetails:
                    PolicyType: EBS_SNAPSHOT_MANAGEMENT
                    ResourceTypes:
                    - VOLUME
                    TargetTags:
                    - Key: Environment
                      Value: Production
                    Schedules:
                    - Name: Daily Snapshots
                      CreateRule:
                        Interval: 24
                        IntervalUnit: HOURS
                        Times:
                        - 03:00
                      RetainRule:
                        Count: 7
                      TagsToAdd:
                      - Key: DLMBackup
                        Value: 'true'
      responses:
        '200':
          description: Lifecycle policy created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLifecyclePolicyResponse'
              examples:
                default:
                  x-microcks-default: true
                  value:
                    PolicyId: policy-0abc123def456
  /policies/{policyId}:
    get:
      operationId: getLifecyclePolicy
      summary: Get Lifecycle Policy
      description: Returns the details of the specified lifecycle policy.
      tags:
      - Lifecycle Policies
      parameters:
      - name: policyId
        in: path
        required: true
        description: The identifier of the lifecycle policy
        schema:
          type: string
      responses:
        '200':
          description: Lifecycle policy details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLifecyclePolicyResponse'
              examples:
                default:
                  x-microcks-default: true
                  value:
                    Policy:
                      PolicyId: policy-0abc123def456
                      Description: Daily EBS snapshot policy for production volumes
                      State: ENABLED
                      ExecutionRoleArn: arn:aws:iam::123456789012:role/AWSDataLifecycleManagerDefaultRole
                      DateCreated: '2024-01-15T10:00:00Z'
                      DateModified: '2024-03-01T12:00:00Z'
                      PolicyDetails:
                        PolicyType: EBS_SNAPSHOT_MANAGEMENT
                        ResourceTypes:
                        - VOLUME
                        TargetTags:
                        - Key: Environment
                          Value: Production
                        Schedules:
                        - Name: Daily Snapshots
                          CreateRule:
                            Interval: 24
                            IntervalUnit: HOURS
                            Times:
                            - 03:00
                          RetainRule:
                            Count: 7
        '404':
          description: Policy not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      operationId: updateLifecyclePolicy
      summary: Update Lifecycle Policy
      description: Updates the specified lifecycle policy.
      tags:
      - Lifecycle Policies
      parameters:
      - name: policyId
        in: path
        required: true
        description: The identifier of the lifecycle policy to update
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLifecyclePolicyRequest'
            examples:
              default:
                x-microcks-default: true
                value:
                  State: DISABLED
                  Description: Daily EBS snapshot policy - temporarily disabled
      responses:
        '200':
          description: Lifecycle policy updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateLifecyclePolicyResponse'
              examples:
                default:
                  x-microcks-default: true
                  value: {}
        '404':
          description: Policy not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteLifecyclePolicy
      summary: Delete Lifecycle Policy
      description: Deletes the specified lifecycle policy and halts the automated operations that the policy specified.
      tags:
      - Lifecycle Policies
      parameters:
      - name: policyId
        in: path
        required: true
        description: The identifier of the lifecycle policy to delete
        schema:
          type: string
      responses:
        '200':
          description: Lifecycle policy deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteLifecyclePolicyResponse'
              examples:
                default:
                  x-microcks-default: true
                  value: {}
        '404':
          description: Policy not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    UpdateLifecyclePolicyRequest:
      description: Request body for updating a lifecycle policy.
      type: object
      properties:
        ExecutionRoleArn:
          type: string
          description: The updated ARN of the IAM role. This ARN uniquely identifies the role.
        State:
          type: string
          description: The updated state of the policy
          enum:
          - ENABLED
          - DISABLED
        Description:
          type: string
          description: The updated description
        PolicyDetails:
          $ref: '#/components/schemas/PolicyDetails'
    RetainRule:
      description: Specifies the number of snapshots to keep or the age after which snapshots are deleted.
      type: object
      properties:
        Count:
          type: integer
          description: The number of snapshots to retain
        Interval:
          type: integer
          description: The amount of time to retain each snapshot
        IntervalUnit:
          type: string
          description: The unit of time for the retention period
          enum:
          - DAYS
          - WEEKS
          - MONTHS
          - YEARS
    CreateLifecyclePolicyRequest:
      description: Request body for creating a new lifecycle policy.
      type: object
      required:
      - Description
      - State
      - ExecutionRoleArn
      - PolicyDetails
      properties:
        Description:
          type: string
          description: A description of the lifecycle policy
          maxLength: 500
        State:
          type: string
          description: The initial state of the policy
          enum:
          - ENABLED
          - DISABLED
        ExecutionRoleArn:
          type: string
          description: The ARN of the IAM role for DLM to use when running the lifecycle policy. This ARN uniquely identifies the role.
        PolicyDetails:
          $ref: '#/components/schemas/PolicyDetails'
        Tags:
          type: object
          description: Tags to apply to the policy
          additionalProperties:
            type: string
    CreateRule:
      description: Specifies when and how to create snapshots for event-based policies or schedules.
      type: object
      properties:
        Interval:
          type: integer
          description: The interval between snapshots in the schedule
        IntervalUnit:
          type: string
          description: The unit of time for the interval
          enum:
          - HOURS
        Times:
          type: array
          description: The time of day to start the snapshot (in UTC)
          items:
            type: string
        CronExpression:
          type: string
          description: The schedule for creating snapshots using a cron expression
    Tag:
      description: A key-value tag pair applied to an AWS resource.
      type: object
      required:
      - Key
      - Value
      properties:
        Key:
          type: string
          description: The tag key
        Value:
          type: string
          description: The tag value
    CreateLifecyclePolicyResponse:
      description: Response after creating a lifecycle policy.
      type: object
      properties:
        PolicyId:
          type: string
          description: The identifier of the newly created lifecycle policy
    GetLifecyclePoliciesResponse:
      description: Response containing a list of lifecycle policy summaries.
      type: object
      properties:
        Policies:
          type: array
          items:
            $ref: '#/components/schemas/LifecyclePolicySummary'
    UpdateLifecyclePolicyResponse:
      description: Response after updating a lifecycle policy.
      type: object
    GetLifecyclePolicyResponse:
      description: Response containing the details of a lifecycle policy.
      type: object
      properties:
        Policy:
          $ref: '#/components/schemas/LifecyclePolicy'
    LifecyclePolicySummary:
      description: Summary information about a lifecycle policy.
      type: object
      properties:
        PolicyId:
          type: string
          description: The identifier of the lifecycle policy
        Description:
          type: string
          description: The description of the lifecycle policy
        State:
          type: string
          description: The current state of the policy
          enum:
          - ENABLED
          - DISABLED
          - ERROR
        PolicyType:
          type: string
          description: The type of lifecycle policy
        PolicySummary:
          type: string
          description: A summary of the policy details
        Tags:
          type: object
          additionalProperties:
            type: string
    DeleteLifecyclePolicyResponse:
      description: Response after deleting a lifecycle policy.
      type: object
    PolicyDetails:
      description: Specifies the configuration of a lifecycle policy.
      type: object
      properties:
        PolicyType:
          type: string
          description: The type of lifecycle policy
          enum:
          - EBS_SNAPSHOT_MANAGEMENT
          - IMAGE_MANAGEMENT
          - EVENT_BASED_POLICY
        ResourceTypes:
          type: array
          description: The type of resource managed by the policy
          items:
            type: string
            enum:
            - VOLUME
            - INSTANCE
        TargetTags:
          type: array
          description: Specifies the volumes or instances to target
          items:
            $ref: '#/components/schemas/Tag'
        Schedules:
          type: array
          description: The schedules for creating snapshots or AMIs
          items:
            $ref: '#/components/schemas/Schedule'
        Parameters:
          type: object
          description: Additional policy parameters
    Schedule:
      description: Specifies the schedule for creating snapshots or AMIs in a lifecycle policy.
      type: object
      properties:
        Name:
          type: string
          description: The name of the schedule
        CreateRule:
          $ref: '#/components/schemas/CreateRule'
        RetainRule:
          $ref: '#/components/schemas/RetainRule'
        TagsToAdd:
          type: array
          description: Tags to add to every snapshot created by the schedule
          items:
            $ref: '#/components/schemas/Tag'
        VariableTags:
          type: array
          description: Variable tags for timestamps and intervals on snapshots
          items:
            $ref: '#/components/schemas/Tag'
        CopyTags:
          type: boolean
          description: Whether to copy tags from the volume to snapshots
        FastRestoreRule:
          type: object
          description: Configuration for fast snapshot restore
    Error:
      description: Standard error response from the Data Lifecycle Manager API.
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message
        code:
          type: string
          description: An error code identifying the type of error
        requestId:
          type: string
          description: The unique ID of the request that resulted in this error
    LifecyclePolicy:
      description: A complete lifecycle policy definition for automating EBS snapshot or AMI management.
      type: object
      properties:
        PolicyId:
          type: string
          description: The identifier of the lifecycle policy
        Description:
          type: string
          description: The description of the lifecycle policy
        State:
          type: string
          description: The current state of the policy
          enum:
          - ENABLED
          - DISABLED
          - ERROR
        StatusMessage:
          type: string
          description: Status message if the policy is in an error state
        ExecutionRoleArn:
          type: string
          description: The ARN of the IAM role used by DLM to manage the lifecycle policy. This ARN uniquely identifies the role.
        DateCreated:
          type: string
          format: date-time
          description: When the policy was created
        DateModified:
          type: string
          format: date-time
          description: When the policy was last modified
        PolicyDetails:
          $ref: '#/components/schemas/PolicyDetails'
        Tags:
          type: object
          description: Tags associated with the policy
          additionalProperties:
            type: string
  securitySchemes:
    awsSignatureV4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4 authentication