This page documents the language specification for the aws package. If you're looking for help working with the inputs, outputs, or functions of aws resources in a Pulumi program, please see the resource documentation for examples and API reference.

dlm

This provider is a derived work of the Terraform Provider distributed under MPL 2.0. If you encounter a bug or missing feature, first check the pulumi/pulumi-aws repo; however, if that doesn’t turn up anything, please consult the source terraform-providers/terraform-provider-aws repo.

class pulumi_aws.dlm.LifecyclePolicy(resource_name, opts=None, description=None, execution_role_arn=None, policy_details=None, state=None, tags=None, __props__=None, __name__=None, __opts__=None)

Provides a Data Lifecycle Manager (DLM) lifecycle policy for managing snapshots.

import pulumi
import pulumi_aws as aws

dlm_lifecycle_role = aws.iam.Role("dlmLifecycleRole", assume_role_policy="""{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "dlm.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}

""")
dlm_lifecycle = aws.iam.RolePolicy("dlmLifecycle",
    policy="""{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "ec2:CreateSnapshot",
            "ec2:DeleteSnapshot",
            "ec2:DescribeVolumes",
            "ec2:DescribeSnapshots"
         ],
         "Resource": "*"
      },
      {
         "Effect": "Allow",
         "Action": [
            "ec2:CreateTags"
         ],
         "Resource": "arn:aws:ec2:*::snapshot/*"
      }
   ]
}

""",
    role=dlm_lifecycle_role.id)
example = aws.dlm.LifecyclePolicy("example",
    description="example DLM lifecycle policy",
    execution_role_arn=dlm_lifecycle_role.arn,
    policy_details={
        "resourceTypes": ["VOLUME"],
        "schedule": [{
            "copyTags": False,
            "createRule": {
                "interval": 24,
                "intervalUnit": "HOURS",
                "times": "23:45",
            },
            "name": "2 weeks of daily snapshots",
            "retainRule": {
                "count": 14,
            },
            "tagsToAdd": {
                "SnapshotCreator": "DLM",
            },
        }],
        "targetTags": {
            "Snapshot": "true",
        },
    },
    state="ENABLED")
Parameters
  • resource_name (str) – The name of the resource.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • description (pulumi.Input[str]) – A description for the DLM lifecycle policy.

  • execution_role_arn (pulumi.Input[str]) – The ARN of an IAM role that is able to be assumed by the DLM service.

  • policy_details (pulumi.Input[dict]) – See the policy_details configuration block. Max of 1.

  • state (pulumi.Input[str]) – Whether the lifecycle policy should be enabled or disabled. ENABLED or DISABLED are valid values. Defaults to ENABLED.

  • tags (pulumi.Input[dict]) – Key-value map of resource tags.

The policy_details object supports the following:

  • resourceTypes (pulumi.Input[list]) - A list of resource types that should be targeted by the lifecycle policy. VOLUME is currently the only allowed value.

  • schedules (pulumi.Input[list]) - See the schedule configuration block.

    • copyTags (pulumi.Input[bool]) - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy.

    • createRule (pulumi.Input[dict]) - See the create_rule block. Max of 1 per schedule.

      • interval (pulumi.Input[float]) - How often this lifecycle policy should be evaluated. 1, 2,3,4,6,8,12 or 24 are valid values.

      • intervalUnit (pulumi.Input[str]) - The unit for how often the lifecycle policy should be evaluated. HOURS is currently the only allowed value and also the default value.

      • times (pulumi.Input[str]) - A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1.

    • name (pulumi.Input[str]) - A name for the schedule.

    • retainRule (pulumi.Input[dict]) - See the retain_rule block. Max of 1 per schedule.

      • count (pulumi.Input[float]) - How many snapshots to keep. Must be an integer between 1 and 1000.

    • tagsToAdd (pulumi.Input[dict]) - A map of tag keys and their values. DLM lifecycle policies will already tag the snapshot with the tags on the volume. This configuration adds extra tags on top of these.

  • targetTags (pulumi.Input[dict]) - A map of tag keys and their values. Any resources that match the resource_types and are tagged with any of these tags will be targeted.

arn: pulumi.Output[str] = None

Amazon Resource Name (ARN) of the DLM Lifecycle Policy.

description: pulumi.Output[str] = None

A description for the DLM lifecycle policy.

execution_role_arn: pulumi.Output[str] = None

The ARN of an IAM role that is able to be assumed by the DLM service.

policy_details: pulumi.Output[dict] = None

See the policy_details configuration block. Max of 1.

  • resourceTypes (list) - A list of resource types that should be targeted by the lifecycle policy. VOLUME is currently the only allowed value.

  • schedules (list) - See the schedule configuration block.

    • copyTags (bool) - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy.

    • createRule (dict) - See the create_rule block. Max of 1 per schedule.

      • interval (float) - How often this lifecycle policy should be evaluated. 1, 2,3,4,6,8,12 or 24 are valid values.

      • intervalUnit (str) - The unit for how often the lifecycle policy should be evaluated. HOURS is currently the only allowed value and also the default value.

      • times (str) - A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1.

    • name (str) - A name for the schedule.

    • retainRule (dict) - See the retain_rule block. Max of 1 per schedule.

      • count (float) - How many snapshots to keep. Must be an integer between 1 and 1000.

    • tagsToAdd (dict) - A map of tag keys and their values. DLM lifecycle policies will already tag the snapshot with the tags on the volume. This configuration adds extra tags on top of these.

  • targetTags (dict) - A map of tag keys and their values. Any resources that match the resource_types and are tagged with any of these tags will be targeted.

state: pulumi.Output[str] = None

Whether the lifecycle policy should be enabled or disabled. ENABLED or DISABLED are valid values. Defaults to ENABLED.

tags: pulumi.Output[dict] = None

Key-value map of resource tags.

static get(resource_name, id, opts=None, arn=None, description=None, execution_role_arn=None, policy_details=None, state=None, tags=None)

Get an existing LifecyclePolicy resource’s state with the given name, id, and optional extra properties used to qualify the lookup.

Parameters
  • resource_name (str) – The unique name of the resulting resource.

  • id (str) – The unique provider ID of the resource to lookup.

  • opts (pulumi.ResourceOptions) – Options for the resource.

  • arn (pulumi.Input[str]) – Amazon Resource Name (ARN) of the DLM Lifecycle Policy.

  • description (pulumi.Input[str]) – A description for the DLM lifecycle policy.

  • execution_role_arn (pulumi.Input[str]) – The ARN of an IAM role that is able to be assumed by the DLM service.

  • policy_details (pulumi.Input[dict]) – See the policy_details configuration block. Max of 1.

  • state (pulumi.Input[str]) – Whether the lifecycle policy should be enabled or disabled. ENABLED or DISABLED are valid values. Defaults to ENABLED.

  • tags (pulumi.Input[dict]) – Key-value map of resource tags.

The policy_details object supports the following:

  • resourceTypes (pulumi.Input[list]) - A list of resource types that should be targeted by the lifecycle policy. VOLUME is currently the only allowed value.

  • schedules (pulumi.Input[list]) - See the schedule configuration block.

    • copyTags (pulumi.Input[bool]) - Copy all user-defined tags on a source volume to snapshots of the volume created by this policy.

    • createRule (pulumi.Input[dict]) - See the create_rule block. Max of 1 per schedule.

      • interval (pulumi.Input[float]) - How often this lifecycle policy should be evaluated. 1, 2,3,4,6,8,12 or 24 are valid values.

      • intervalUnit (pulumi.Input[str]) - The unit for how often the lifecycle policy should be evaluated. HOURS is currently the only allowed value and also the default value.

      • times (pulumi.Input[str]) - A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1.

    • name (pulumi.Input[str]) - A name for the schedule.

    • retainRule (pulumi.Input[dict]) - See the retain_rule block. Max of 1 per schedule.

      • count (pulumi.Input[float]) - How many snapshots to keep. Must be an integer between 1 and 1000.

    • tagsToAdd (pulumi.Input[dict]) - A map of tag keys and their values. DLM lifecycle policies will already tag the snapshot with the tags on the volume. This configuration adds extra tags on top of these.

  • targetTags (pulumi.Input[dict]) - A map of tag keys and their values. Any resources that match the resource_types and are tagged with any of these tags will be targeted.

translate_output_property(prop)

Provides subclasses of Resource an opportunity to translate names of output properties into a format of their choosing before writing those properties to the resource object.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str

translate_input_property(prop)

Provides subclasses of Resource an opportunity to translate names of input properties into a format of their choosing before sending those properties to the Pulumi engine.

Parameters

prop (str) – A property name.

Returns

A potentially transformed property name.

Return type

str