aws.dlm.LifecyclePolicy
Explore with Pulumi AI
Provides a Data Lifecycle Manager (DLM) lifecycle policy for managing snapshots.
Example Usage
Basic
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const assumeRole = aws.iam.getPolicyDocument({
    statements: [{
        effect: "Allow",
        principals: [{
            type: "Service",
            identifiers: ["dlm.amazonaws.com"],
        }],
        actions: ["sts:AssumeRole"],
    }],
});
const dlmLifecycleRole = new aws.iam.Role("dlm_lifecycle_role", {
    name: "dlm-lifecycle-role",
    assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json),
});
const dlmLifecycle = aws.iam.getPolicyDocument({
    statements: [
        {
            effect: "Allow",
            actions: [
                "ec2:CreateSnapshot",
                "ec2:CreateSnapshots",
                "ec2:DeleteSnapshot",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DescribeSnapshots",
            ],
            resources: ["*"],
        },
        {
            effect: "Allow",
            actions: ["ec2:CreateTags"],
            resources: ["arn:aws:ec2:*::snapshot/*"],
        },
    ],
});
const dlmLifecycleRolePolicy = new aws.iam.RolePolicy("dlm_lifecycle", {
    name: "dlm-lifecycle-policy",
    role: dlmLifecycleRole.id,
    policy: dlmLifecycle.then(dlmLifecycle => dlmLifecycle.json),
});
const example = new aws.dlm.LifecyclePolicy("example", {
    description: "example DLM lifecycle policy",
    executionRoleArn: dlmLifecycleRole.arn,
    state: "ENABLED",
    policyDetails: {
        resourceTypes: "VOLUME",
        schedules: [{
            name: "2 weeks of daily snapshots",
            createRule: {
                interval: 24,
                intervalUnit: "HOURS",
                times: "23:45",
            },
            retainRule: {
                count: 14,
            },
            tagsToAdd: {
                SnapshotCreator: "DLM",
            },
            copyTags: false,
        }],
        targetTags: {
            Snapshot: "true",
        },
    },
});
import pulumi
import pulumi_aws as aws
assume_role = aws.iam.get_policy_document(statements=[{
    "effect": "Allow",
    "principals": [{
        "type": "Service",
        "identifiers": ["dlm.amazonaws.com"],
    }],
    "actions": ["sts:AssumeRole"],
}])
dlm_lifecycle_role = aws.iam.Role("dlm_lifecycle_role",
    name="dlm-lifecycle-role",
    assume_role_policy=assume_role.json)
dlm_lifecycle = aws.iam.get_policy_document(statements=[
    {
        "effect": "Allow",
        "actions": [
            "ec2:CreateSnapshot",
            "ec2:CreateSnapshots",
            "ec2:DeleteSnapshot",
            "ec2:DescribeInstances",
            "ec2:DescribeVolumes",
            "ec2:DescribeSnapshots",
        ],
        "resources": ["*"],
    },
    {
        "effect": "Allow",
        "actions": ["ec2:CreateTags"],
        "resources": ["arn:aws:ec2:*::snapshot/*"],
    },
])
dlm_lifecycle_role_policy = aws.iam.RolePolicy("dlm_lifecycle",
    name="dlm-lifecycle-policy",
    role=dlm_lifecycle_role.id,
    policy=dlm_lifecycle.json)
example = aws.dlm.LifecyclePolicy("example",
    description="example DLM lifecycle policy",
    execution_role_arn=dlm_lifecycle_role.arn,
    state="ENABLED",
    policy_details={
        "resource_types": "VOLUME",
        "schedules": [{
            "name": "2 weeks of daily snapshots",
            "create_rule": {
                "interval": 24,
                "interval_unit": "HOURS",
                "times": "23:45",
            },
            "retain_rule": {
                "count": 14,
            },
            "tags_to_add": {
                "SnapshotCreator": "DLM",
            },
            "copy_tags": False,
        }],
        "target_tags": {
            "Snapshot": "true",
        },
    })
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dlm"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "Service",
							Identifiers: []string{
								"dlm.amazonaws.com",
							},
						},
					},
					Actions: []string{
						"sts:AssumeRole",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		dlmLifecycleRole, err := iam.NewRole(ctx, "dlm_lifecycle_role", &iam.RoleArgs{
			Name:             pulumi.String("dlm-lifecycle-role"),
			AssumeRolePolicy: pulumi.String(assumeRole.Json),
		})
		if err != nil {
			return err
		}
		dlmLifecycle, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Effect: pulumi.StringRef("Allow"),
					Actions: []string{
						"ec2:CreateSnapshot",
						"ec2:CreateSnapshots",
						"ec2:DeleteSnapshot",
						"ec2:DescribeInstances",
						"ec2:DescribeVolumes",
						"ec2:DescribeSnapshots",
					},
					Resources: []string{
						"*",
					},
				},
				{
					Effect: pulumi.StringRef("Allow"),
					Actions: []string{
						"ec2:CreateTags",
					},
					Resources: []string{
						"arn:aws:ec2:*::snapshot/*",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "dlm_lifecycle", &iam.RolePolicyArgs{
			Name:   pulumi.String("dlm-lifecycle-policy"),
			Role:   dlmLifecycleRole.ID(),
			Policy: pulumi.String(dlmLifecycle.Json),
		})
		if err != nil {
			return err
		}
		_, err = dlm.NewLifecyclePolicy(ctx, "example", &dlm.LifecyclePolicyArgs{
			Description:      pulumi.String("example DLM lifecycle policy"),
			ExecutionRoleArn: dlmLifecycleRole.Arn,
			State:            pulumi.String("ENABLED"),
			PolicyDetails: &dlm.LifecyclePolicyPolicyDetailsArgs{
				ResourceTypes: pulumi.StringArray("VOLUME"),
				Schedules: dlm.LifecyclePolicyPolicyDetailsScheduleArray{
					&dlm.LifecyclePolicyPolicyDetailsScheduleArgs{
						Name: pulumi.String("2 weeks of daily snapshots"),
						CreateRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs{
							Interval:     pulumi.Int(24),
							IntervalUnit: pulumi.String("HOURS"),
							Times:        pulumi.String("23:45"),
						},
						RetainRule: &dlm.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs{
							Count: pulumi.Int(14),
						},
						TagsToAdd: pulumi.StringMap{
							"SnapshotCreator": pulumi.String("DLM"),
						},
						CopyTags: pulumi.Bool(false),
					},
				},
				TargetTags: pulumi.StringMap{
					"Snapshot": pulumi.String("true"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
    {
        Statements = new[]
        {
            new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
            {
                Effect = "Allow",
                Principals = new[]
                {
                    new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                    {
                        Type = "Service",
                        Identifiers = new[]
                        {
                            "dlm.amazonaws.com",
                        },
                    },
                },
                Actions = new[]
                {
                    "sts:AssumeRole",
                },
            },
        },
    });
    var dlmLifecycleRole = new Aws.Iam.Role("dlm_lifecycle_role", new()
    {
        Name = "dlm-lifecycle-role",
        AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
    });
    var dlmLifecycle = Aws.Iam.GetPolicyDocument.Invoke(new()
    {
        Statements = new[]
        {
            new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
            {
                Effect = "Allow",
                Actions = new[]
                {
                    "ec2:CreateSnapshot",
                    "ec2:CreateSnapshots",
                    "ec2:DeleteSnapshot",
                    "ec2:DescribeInstances",
                    "ec2:DescribeVolumes",
                    "ec2:DescribeSnapshots",
                },
                Resources = new[]
                {
                    "*",
                },
            },
            new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
            {
                Effect = "Allow",
                Actions = new[]
                {
                    "ec2:CreateTags",
                },
                Resources = new[]
                {
                    "arn:aws:ec2:*::snapshot/*",
                },
            },
        },
    });
    var dlmLifecycleRolePolicy = new Aws.Iam.RolePolicy("dlm_lifecycle", new()
    {
        Name = "dlm-lifecycle-policy",
        Role = dlmLifecycleRole.Id,
        Policy = dlmLifecycle.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
    });
    var example = new Aws.Dlm.LifecyclePolicy("example", new()
    {
        Description = "example DLM lifecycle policy",
        ExecutionRoleArn = dlmLifecycleRole.Arn,
        State = "ENABLED",
        PolicyDetails = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsArgs
        {
            ResourceTypes = "VOLUME",
            Schedules = new[]
            {
                new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleArgs
                {
                    Name = "2 weeks of daily snapshots",
                    CreateRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs
                    {
                        Interval = 24,
                        IntervalUnit = "HOURS",
                        Times = "23:45",
                    },
                    RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs
                    {
                        Count = 14,
                    },
                    TagsToAdd = 
                    {
                        { "SnapshotCreator", "DLM" },
                    },
                    CopyTags = false,
                },
            },
            TargetTags = 
            {
                { "Snapshot", "true" },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicy;
import com.pulumi.aws.iam.RolePolicyArgs;
import com.pulumi.aws.dlm.LifecyclePolicy;
import com.pulumi.aws.dlm.LifecyclePolicyArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
            .statements(GetPolicyDocumentStatementArgs.builder()
                .effect("Allow")
                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                    .type("Service")
                    .identifiers("dlm.amazonaws.com")
                    .build())
                .actions("sts:AssumeRole")
                .build())
            .build());
        var dlmLifecycleRole = new Role("dlmLifecycleRole", RoleArgs.builder()
            .name("dlm-lifecycle-role")
            .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
            .build());
        final var dlmLifecycle = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
            .statements(            
                GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .actions(                    
                        "ec2:CreateSnapshot",
                        "ec2:CreateSnapshots",
                        "ec2:DeleteSnapshot",
                        "ec2:DescribeInstances",
                        "ec2:DescribeVolumes",
                        "ec2:DescribeSnapshots")
                    .resources("*")
                    .build(),
                GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .actions("ec2:CreateTags")
                    .resources("arn:aws:ec2:*::snapshot/*")
                    .build())
            .build());
        var dlmLifecycleRolePolicy = new RolePolicy("dlmLifecycleRolePolicy", RolePolicyArgs.builder()
            .name("dlm-lifecycle-policy")
            .role(dlmLifecycleRole.id())
            .policy(dlmLifecycle.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
            .build());
        var example = new LifecyclePolicy("example", LifecyclePolicyArgs.builder()
            .description("example DLM lifecycle policy")
            .executionRoleArn(dlmLifecycleRole.arn())
            .state("ENABLED")
            .policyDetails(LifecyclePolicyPolicyDetailsArgs.builder()
                .resourceTypes("VOLUME")
                .schedules(LifecyclePolicyPolicyDetailsScheduleArgs.builder()
                    .name("2 weeks of daily snapshots")
                    .createRule(LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs.builder()
                        .interval(24)
                        .intervalUnit("HOURS")
                        .times("23:45")
                        .build())
                    .retainRule(LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs.builder()
                        .count(14)
                        .build())
                    .tagsToAdd(Map.of("SnapshotCreator", "DLM"))
                    .copyTags(false)
                    .build())
                .targetTags(Map.of("Snapshot", "true"))
                .build())
            .build());
    }
}
resources:
  dlmLifecycleRole:
    type: aws:iam:Role
    name: dlm_lifecycle_role
    properties:
      name: dlm-lifecycle-role
      assumeRolePolicy: ${assumeRole.json}
  dlmLifecycleRolePolicy:
    type: aws:iam:RolePolicy
    name: dlm_lifecycle
    properties:
      name: dlm-lifecycle-policy
      role: ${dlmLifecycleRole.id}
      policy: ${dlmLifecycle.json}
  example:
    type: aws:dlm:LifecyclePolicy
    properties:
      description: example DLM lifecycle policy
      executionRoleArn: ${dlmLifecycleRole.arn}
      state: ENABLED
      policyDetails:
        resourceTypes: VOLUME
        schedules:
          - name: 2 weeks of daily snapshots
            createRule:
              interval: 24
              intervalUnit: HOURS
              times: 23:45
            retainRule:
              count: 14
            tagsToAdd:
              SnapshotCreator: DLM
            copyTags: false
        targetTags:
          Snapshot: 'true'
variables:
  assumeRole:
    fn::invoke:
      function: aws:iam:getPolicyDocument
      arguments:
        statements:
          - effect: Allow
            principals:
              - type: Service
                identifiers:
                  - dlm.amazonaws.com
            actions:
              - sts:AssumeRole
  dlmLifecycle:
    fn::invoke:
      function: aws:iam:getPolicyDocument
      arguments:
        statements:
          - effect: Allow
            actions:
              - ec2:CreateSnapshot
              - ec2:CreateSnapshots
              - ec2:DeleteSnapshot
              - ec2:DescribeInstances
              - ec2:DescribeVolumes
              - ec2:DescribeSnapshots
            resources:
              - '*'
          - effect: Allow
            actions:
              - ec2:CreateTags
            resources:
              - arn:aws:ec2:*::snapshot/*
Example Cross-Region Snapshot Copy Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
// ...other configuration...
const current = aws.getCallerIdentity({});
const key = current.then(current => aws.iam.getPolicyDocument({
    statements: [{
        sid: "Enable IAM User Permissions",
        effect: "Allow",
        principals: [{
            type: "AWS",
            identifiers: [`arn:aws:iam::${current.accountId}:root`],
        }],
        actions: ["kms:*"],
        resources: ["*"],
    }],
}));
const dlmCrossRegionCopyCmk = new aws.kms.Key("dlm_cross_region_copy_cmk", {
    description: "Example Alternate Region KMS Key",
    policy: key.then(key => key.json),
});
const example = new aws.dlm.LifecyclePolicy("example", {
    description: "example DLM lifecycle policy",
    executionRoleArn: dlmLifecycleRole.arn,
    state: "ENABLED",
    policyDetails: {
        resourceTypes: "VOLUME",
        schedules: [{
            name: "2 weeks of daily snapshots",
            createRule: {
                interval: 24,
                intervalUnit: "HOURS",
                times: "23:45",
            },
            retainRule: {
                count: 14,
            },
            tagsToAdd: {
                SnapshotCreator: "DLM",
            },
            copyTags: false,
            crossRegionCopyRules: [{
                target: "us-west-2",
                encrypted: true,
                cmkArn: dlmCrossRegionCopyCmk.arn,
                copyTags: true,
                retainRule: {
                    interval: 30,
                    intervalUnit: "DAYS",
                },
            }],
        }],
        targetTags: {
            Snapshot: "true",
        },
    },
});
import pulumi
import pulumi_aws as aws
# ...other configuration...
current = aws.get_caller_identity()
key = aws.iam.get_policy_document(statements=[{
    "sid": "Enable IAM User Permissions",
    "effect": "Allow",
    "principals": [{
        "type": "AWS",
        "identifiers": [f"arn:aws:iam::{current.account_id}:root"],
    }],
    "actions": ["kms:*"],
    "resources": ["*"],
}])
dlm_cross_region_copy_cmk = aws.kms.Key("dlm_cross_region_copy_cmk",
    description="Example Alternate Region KMS Key",
    policy=key.json)
example = aws.dlm.LifecyclePolicy("example",
    description="example DLM lifecycle policy",
    execution_role_arn=dlm_lifecycle_role["arn"],
    state="ENABLED",
    policy_details={
        "resource_types": "VOLUME",
        "schedules": [{
            "name": "2 weeks of daily snapshots",
            "create_rule": {
                "interval": 24,
                "interval_unit": "HOURS",
                "times": "23:45",
            },
            "retain_rule": {
                "count": 14,
            },
            "tags_to_add": {
                "SnapshotCreator": "DLM",
            },
            "copy_tags": False,
            "cross_region_copy_rules": [{
                "target": "us-west-2",
                "encrypted": True,
                "cmk_arn": dlm_cross_region_copy_cmk.arn,
                "copy_tags": True,
                "retain_rule": {
                    "interval": 30,
                    "interval_unit": "DAYS",
                },
            }],
        }],
        "target_tags": {
            "Snapshot": "true",
        },
    })
package main
import (
	"fmt"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dlm"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		// ...other configuration...
		current, err := aws.GetCallerIdentity(ctx, &aws.GetCallerIdentityArgs{}, nil)
		if err != nil {
			return err
		}
		key, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				{
					Sid:    pulumi.StringRef("Enable IAM User Permissions"),
					Effect: pulumi.StringRef("Allow"),
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						{
							Type: "AWS",
							Identifiers: []string{
								fmt.Sprintf("arn:aws:iam::%v:root", current.AccountId),
							},
						},
					},
					Actions: []string{
						"kms:*",
					},
					Resources: []string{
						"*",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		dlmCrossRegionCopyCmk, err := kms.NewKey(ctx, "dlm_cross_region_copy_cmk", &kms.KeyArgs{
			Description: pulumi.String("Example Alternate Region KMS Key"),
			Policy:      pulumi.String(key.Json),
		})
		if err != nil {
			return err
		}
		_, err = dlm.NewLifecyclePolicy(ctx, "example", &dlm.LifecyclePolicyArgs{
			Description:      pulumi.String("example DLM lifecycle policy"),
			ExecutionRoleArn: pulumi.Any(dlmLifecycleRole.Arn),
			State:            pulumi.String("ENABLED"),
			PolicyDetails: &dlm.LifecyclePolicyPolicyDetailsArgs{
				ResourceTypes: pulumi.StringArray("VOLUME"),
				Schedules: dlm.LifecyclePolicyPolicyDetailsScheduleArray{
					&dlm.LifecyclePolicyPolicyDetailsScheduleArgs{
						Name: pulumi.String("2 weeks of daily snapshots"),
						CreateRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs{
							Interval:     pulumi.Int(24),
							IntervalUnit: pulumi.String("HOURS"),
							Times:        pulumi.String("23:45"),
						},
						RetainRule: &dlm.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs{
							Count: pulumi.Int(14),
						},
						TagsToAdd: pulumi.StringMap{
							"SnapshotCreator": pulumi.String("DLM"),
						},
						CopyTags: pulumi.Bool(false),
						CrossRegionCopyRules: dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArray{
							&dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs{
								Target:    pulumi.String("us-west-2"),
								Encrypted: pulumi.Bool(true),
								CmkArn:    dlmCrossRegionCopyCmk.Arn,
								CopyTags:  pulumi.Bool(true),
								RetainRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs{
									Interval:     pulumi.Int(30),
									IntervalUnit: pulumi.String("DAYS"),
								},
							},
						},
					},
				},
				TargetTags: pulumi.StringMap{
					"Snapshot": pulumi.String("true"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    // ...other configuration...
    var current = Aws.GetCallerIdentity.Invoke();
    var key = Aws.Iam.GetPolicyDocument.Invoke(new()
    {
        Statements = new[]
        {
            new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
            {
                Sid = "Enable IAM User Permissions",
                Effect = "Allow",
                Principals = new[]
                {
                    new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                    {
                        Type = "AWS",
                        Identifiers = new[]
                        {
                            $"arn:aws:iam::{current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId)}:root",
                        },
                    },
                },
                Actions = new[]
                {
                    "kms:*",
                },
                Resources = new[]
                {
                    "*",
                },
            },
        },
    });
    var dlmCrossRegionCopyCmk = new Aws.Kms.Key("dlm_cross_region_copy_cmk", new()
    {
        Description = "Example Alternate Region KMS Key",
        Policy = key.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
    });
    var example = new Aws.Dlm.LifecyclePolicy("example", new()
    {
        Description = "example DLM lifecycle policy",
        ExecutionRoleArn = dlmLifecycleRole.Arn,
        State = "ENABLED",
        PolicyDetails = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsArgs
        {
            ResourceTypes = "VOLUME",
            Schedules = new[]
            {
                new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleArgs
                {
                    Name = "2 weeks of daily snapshots",
                    CreateRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs
                    {
                        Interval = 24,
                        IntervalUnit = "HOURS",
                        Times = "23:45",
                    },
                    RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs
                    {
                        Count = 14,
                    },
                    TagsToAdd = 
                    {
                        { "SnapshotCreator", "DLM" },
                    },
                    CopyTags = false,
                    CrossRegionCopyRules = new[]
                    {
                        new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs
                        {
                            Target = "us-west-2",
                            Encrypted = true,
                            CmkArn = dlmCrossRegionCopyCmk.Arn,
                            CopyTags = true,
                            RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs
                            {
                                Interval = 30,
                                IntervalUnit = "DAYS",
                            },
                        },
                    },
                },
            },
            TargetTags = 
            {
                { "Snapshot", "true" },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetCallerIdentityArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.kms.Key;
import com.pulumi.aws.kms.KeyArgs;
import com.pulumi.aws.dlm.LifecyclePolicy;
import com.pulumi.aws.dlm.LifecyclePolicyArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        // ...other configuration...
        final var current = AwsFunctions.getCallerIdentity();
        final var key = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
            .statements(GetPolicyDocumentStatementArgs.builder()
                .sid("Enable IAM User Permissions")
                .effect("Allow")
                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                    .type("AWS")
                    .identifiers(String.format("arn:aws:iam::%s:root", current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId())))
                    .build())
                .actions("kms:*")
                .resources("*")
                .build())
            .build());
        var dlmCrossRegionCopyCmk = new Key("dlmCrossRegionCopyCmk", KeyArgs.builder()
            .description("Example Alternate Region KMS Key")
            .policy(key.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
            .build());
        var example = new LifecyclePolicy("example", LifecyclePolicyArgs.builder()
            .description("example DLM lifecycle policy")
            .executionRoleArn(dlmLifecycleRole.arn())
            .state("ENABLED")
            .policyDetails(LifecyclePolicyPolicyDetailsArgs.builder()
                .resourceTypes("VOLUME")
                .schedules(LifecyclePolicyPolicyDetailsScheduleArgs.builder()
                    .name("2 weeks of daily snapshots")
                    .createRule(LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs.builder()
                        .interval(24)
                        .intervalUnit("HOURS")
                        .times("23:45")
                        .build())
                    .retainRule(LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs.builder()
                        .count(14)
                        .build())
                    .tagsToAdd(Map.of("SnapshotCreator", "DLM"))
                    .copyTags(false)
                    .crossRegionCopyRules(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.builder()
                        .target("us-west-2")
                        .encrypted(true)
                        .cmkArn(dlmCrossRegionCopyCmk.arn())
                        .copyTags(true)
                        .retainRule(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs.builder()
                            .interval(30)
                            .intervalUnit("DAYS")
                            .build())
                        .build())
                    .build())
                .targetTags(Map.of("Snapshot", "true"))
                .build())
            .build());
    }
}
resources:
  dlmCrossRegionCopyCmk:
    type: aws:kms:Key
    name: dlm_cross_region_copy_cmk
    properties:
      description: Example Alternate Region KMS Key
      policy: ${key.json}
  example:
    type: aws:dlm:LifecyclePolicy
    properties:
      description: example DLM lifecycle policy
      executionRoleArn: ${dlmLifecycleRole.arn}
      state: ENABLED
      policyDetails:
        resourceTypes: VOLUME
        schedules:
          - name: 2 weeks of daily snapshots
            createRule:
              interval: 24
              intervalUnit: HOURS
              times: 23:45
            retainRule:
              count: 14
            tagsToAdd:
              SnapshotCreator: DLM
            copyTags: false
            crossRegionCopyRules:
              - target: us-west-2
                encrypted: true
                cmkArn: ${dlmCrossRegionCopyCmk.arn}
                copyTags: true
                retainRule:
                  interval: 30
                  intervalUnit: DAYS
        targetTags:
          Snapshot: 'true'
variables:
  # ...other configuration...
  current:
    fn::invoke:
      function: aws:getCallerIdentity
      arguments: {}
  key:
    fn::invoke:
      function: aws:iam:getPolicyDocument
      arguments:
        statements:
          - sid: Enable IAM User Permissions
            effect: Allow
            principals:
              - type: AWS
                identifiers:
                  - arn:aws:iam::${current.accountId}:root
            actions:
              - kms:*
            resources:
              - '*'
Example Event Based Policy Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const current = aws.getCallerIdentity({});
const exampleLifecyclePolicy = new aws.dlm.LifecyclePolicy("example", {
    description: "tf-acc-basic",
    executionRoleArn: exampleAwsIamRole.arn,
    policyDetails: {
        policyType: "EVENT_BASED_POLICY",
        action: {
            name: "tf-acc-basic",
            crossRegionCopies: [{
                encryptionConfiguration: {},
                retainRule: {
                    interval: 15,
                    intervalUnit: "MONTHS",
                },
                target: "us-east-1",
            }],
        },
        eventSource: {
            type: "MANAGED_CWE",
            parameters: {
                descriptionRegex: "^.*Created for policy: policy-1234567890abcdef0.*$",
                eventType: "shareSnapshot",
                snapshotOwners: [current.then(current => current.accountId)],
            },
        },
    },
});
const example = aws.iam.getPolicy({
    name: "AWSDataLifecycleManagerServiceRole",
});
const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", {
    role: exampleAwsIamRole.id,
    policyArn: example.then(example => example.arn),
});
import pulumi
import pulumi_aws as aws
current = aws.get_caller_identity()
example_lifecycle_policy = aws.dlm.LifecyclePolicy("example",
    description="tf-acc-basic",
    execution_role_arn=example_aws_iam_role["arn"],
    policy_details={
        "policy_type": "EVENT_BASED_POLICY",
        "action": {
            "name": "tf-acc-basic",
            "cross_region_copies": [{
                "encryption_configuration": {},
                "retain_rule": {
                    "interval": 15,
                    "interval_unit": "MONTHS",
                },
                "target": "us-east-1",
            }],
        },
        "event_source": {
            "type": "MANAGED_CWE",
            "parameters": {
                "description_regex": "^.*Created for policy: policy-1234567890abcdef0.*$",
                "event_type": "shareSnapshot",
                "snapshot_owners": [current.account_id],
            },
        },
    })
example = aws.iam.get_policy(name="AWSDataLifecycleManagerServiceRole")
example_role_policy_attachment = aws.iam.RolePolicyAttachment("example",
    role=example_aws_iam_role["id"],
    policy_arn=example.arn)
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dlm"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		current, err := aws.GetCallerIdentity(ctx, &aws.GetCallerIdentityArgs{}, nil)
		if err != nil {
			return err
		}
		_, err = dlm.NewLifecyclePolicy(ctx, "example", &dlm.LifecyclePolicyArgs{
			Description:      pulumi.String("tf-acc-basic"),
			ExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
			PolicyDetails: &dlm.LifecyclePolicyPolicyDetailsArgs{
				PolicyType: pulumi.String("EVENT_BASED_POLICY"),
				Action: &dlm.LifecyclePolicyPolicyDetailsActionArgs{
					Name: pulumi.String("tf-acc-basic"),
					CrossRegionCopies: dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArray{
						&dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs{
							EncryptionConfiguration: &dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs{},
							RetainRule: &dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs{
								Interval:     pulumi.Int(15),
								IntervalUnit: pulumi.String("MONTHS"),
							},
							Target: pulumi.String("us-east-1"),
						},
					},
				},
				EventSource: &dlm.LifecyclePolicyPolicyDetailsEventSourceArgs{
					Type: pulumi.String("MANAGED_CWE"),
					Parameters: &dlm.LifecyclePolicyPolicyDetailsEventSourceParametersArgs{
						DescriptionRegex: pulumi.String("^.*Created for policy: policy-1234567890abcdef0.*$"),
						EventType:        pulumi.String("shareSnapshot"),
						SnapshotOwners: pulumi.StringArray{
							pulumi.String(current.AccountId),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		example, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{
			Name: pulumi.StringRef("AWSDataLifecycleManagerServiceRole"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{
			Role:      pulumi.Any(exampleAwsIamRole.Id),
			PolicyArn: pulumi.String(example.Arn),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    var current = Aws.GetCallerIdentity.Invoke();
    var exampleLifecyclePolicy = new Aws.Dlm.LifecyclePolicy("example", new()
    {
        Description = "tf-acc-basic",
        ExecutionRoleArn = exampleAwsIamRole.Arn,
        PolicyDetails = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsArgs
        {
            PolicyType = "EVENT_BASED_POLICY",
            Action = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionArgs
            {
                Name = "tf-acc-basic",
                CrossRegionCopies = new[]
                {
                    new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs
                    {
                        EncryptionConfiguration = null,
                        RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs
                        {
                            Interval = 15,
                            IntervalUnit = "MONTHS",
                        },
                        Target = "us-east-1",
                    },
                },
            },
            EventSource = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsEventSourceArgs
            {
                Type = "MANAGED_CWE",
                Parameters = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsEventSourceParametersArgs
                {
                    DescriptionRegex = "^.*Created for policy: policy-1234567890abcdef0.*$",
                    EventType = "shareSnapshot",
                    SnapshotOwners = new[]
                    {
                        current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId),
                    },
                },
            },
        },
    });
    var example = Aws.Iam.GetPolicy.Invoke(new()
    {
        Name = "AWSDataLifecycleManagerServiceRole",
    });
    var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new()
    {
        Role = exampleAwsIamRole.Id,
        PolicyArn = example.Apply(getPolicyResult => getPolicyResult.Arn),
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetCallerIdentityArgs;
import com.pulumi.aws.dlm.LifecyclePolicy;
import com.pulumi.aws.dlm.LifecyclePolicyArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsActionArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsEventSourceArgs;
import com.pulumi.aws.dlm.inputs.LifecyclePolicyPolicyDetailsEventSourceParametersArgs;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var current = AwsFunctions.getCallerIdentity();
        var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
            .description("tf-acc-basic")
            .executionRoleArn(exampleAwsIamRole.arn())
            .policyDetails(LifecyclePolicyPolicyDetailsArgs.builder()
                .policyType("EVENT_BASED_POLICY")
                .action(LifecyclePolicyPolicyDetailsActionArgs.builder()
                    .name("tf-acc-basic")
                    .crossRegionCopies(LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs.builder()
                        .encryptionConfiguration()
                        .retainRule(LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs.builder()
                            .interval(15)
                            .intervalUnit("MONTHS")
                            .build())
                        .target("us-east-1")
                        .build())
                    .build())
                .eventSource(LifecyclePolicyPolicyDetailsEventSourceArgs.builder()
                    .type("MANAGED_CWE")
                    .parameters(LifecyclePolicyPolicyDetailsEventSourceParametersArgs.builder()
                        .descriptionRegex("^.*Created for policy: policy-1234567890abcdef0.*$")
                        .eventType("shareSnapshot")
                        .snapshotOwners(current.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()))
                        .build())
                    .build())
                .build())
            .build());
        final var example = IamFunctions.getPolicy(GetPolicyArgs.builder()
            .name("AWSDataLifecycleManagerServiceRole")
            .build());
        var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
            .role(exampleAwsIamRole.id())
            .policyArn(example.applyValue(getPolicyResult -> getPolicyResult.arn()))
            .build());
    }
}
resources:
  exampleLifecyclePolicy:
    type: aws:dlm:LifecyclePolicy
    name: example
    properties:
      description: tf-acc-basic
      executionRoleArn: ${exampleAwsIamRole.arn}
      policyDetails:
        policyType: EVENT_BASED_POLICY
        action:
          name: tf-acc-basic
          crossRegionCopies:
            - encryptionConfiguration: {}
              retainRule:
                interval: 15
                intervalUnit: MONTHS
              target: us-east-1
        eventSource:
          type: MANAGED_CWE
          parameters:
            descriptionRegex: '^.*Created for policy: policy-1234567890abcdef0.*$'
            eventType: shareSnapshot
            snapshotOwners:
              - ${current.accountId}
  exampleRolePolicyAttachment:
    type: aws:iam:RolePolicyAttachment
    name: example
    properties:
      role: ${exampleAwsIamRole.id}
      policyArn: ${example.arn}
variables:
  current:
    fn::invoke:
      function: aws:getCallerIdentity
      arguments: {}
  example:
    fn::invoke:
      function: aws:iam:getPolicy
      arguments:
        name: AWSDataLifecycleManagerServiceRole
Create LifecyclePolicy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new LifecyclePolicy(name: string, args: LifecyclePolicyArgs, opts?: CustomResourceOptions);@overload
def LifecyclePolicy(resource_name: str,
                    args: LifecyclePolicyArgs,
                    opts: Optional[ResourceOptions] = None)
@overload
def LifecyclePolicy(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    description: Optional[str] = None,
                    execution_role_arn: Optional[str] = None,
                    policy_details: Optional[LifecyclePolicyPolicyDetailsArgs] = None,
                    state: Optional[str] = None,
                    tags: Optional[Mapping[str, str]] = None)func NewLifecyclePolicy(ctx *Context, name string, args LifecyclePolicyArgs, opts ...ResourceOption) (*LifecyclePolicy, error)public LifecyclePolicy(string name, LifecyclePolicyArgs args, CustomResourceOptions? opts = null)
public LifecyclePolicy(String name, LifecyclePolicyArgs args)
public LifecyclePolicy(String name, LifecyclePolicyArgs args, CustomResourceOptions options)
type: aws:dlm:LifecyclePolicy
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args LifecyclePolicyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args LifecyclePolicyArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args LifecyclePolicyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args LifecyclePolicyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args LifecyclePolicyArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var lifecyclePolicyResource = new Aws.Dlm.LifecyclePolicy("lifecyclePolicyResource", new()
{
    Description = "string",
    ExecutionRoleArn = "string",
    PolicyDetails = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsArgs
    {
        Action = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionArgs
        {
            CrossRegionCopies = new[]
            {
                new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs
                {
                    EncryptionConfiguration = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs
                    {
                        CmkArn = "string",
                        Encrypted = false,
                    },
                    Target = "string",
                    RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs
                    {
                        Interval = 0,
                        IntervalUnit = "string",
                    },
                },
            },
            Name = "string",
        },
        EventSource = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsEventSourceArgs
        {
            Parameters = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsEventSourceParametersArgs
            {
                DescriptionRegex = "string",
                EventType = "string",
                SnapshotOwners = new[]
                {
                    "string",
                },
            },
            Type = "string",
        },
        Parameters = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsParametersArgs
        {
            ExcludeBootVolume = false,
            NoReboot = false,
        },
        PolicyType = "string",
        ResourceLocations = "string",
        ResourceTypes = new[]
        {
            "string",
        },
        Schedules = new[]
        {
            new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleArgs
            {
                CreateRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs
                {
                    CronExpression = "string",
                    Interval = 0,
                    IntervalUnit = "string",
                    Location = "string",
                    Times = "string",
                },
                Name = "string",
                RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs
                {
                    Count = 0,
                    Interval = 0,
                    IntervalUnit = "string",
                },
                CopyTags = false,
                CrossRegionCopyRules = new[]
                {
                    new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs
                    {
                        Encrypted = false,
                        Target = "string",
                        CmkArn = "string",
                        CopyTags = false,
                        DeprecateRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs
                        {
                            Interval = 0,
                            IntervalUnit = "string",
                        },
                        RetainRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs
                        {
                            Interval = 0,
                            IntervalUnit = "string",
                        },
                    },
                },
                DeprecateRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs
                {
                    Count = 0,
                    Interval = 0,
                    IntervalUnit = "string",
                },
                FastRestoreRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs
                {
                    AvailabilityZones = new[]
                    {
                        "string",
                    },
                    Count = 0,
                    Interval = 0,
                    IntervalUnit = "string",
                },
                ShareRule = new Aws.Dlm.Inputs.LifecyclePolicyPolicyDetailsScheduleShareRuleArgs
                {
                    TargetAccounts = new[]
                    {
                        "string",
                    },
                    UnshareInterval = 0,
                    UnshareIntervalUnit = "string",
                },
                TagsToAdd = 
                {
                    { "string", "string" },
                },
                VariableTags = 
                {
                    { "string", "string" },
                },
            },
        },
        TargetTags = 
        {
            { "string", "string" },
        },
    },
    State = "string",
    Tags = 
    {
        { "string", "string" },
    },
});
example, err := dlm.NewLifecyclePolicy(ctx, "lifecyclePolicyResource", &dlm.LifecyclePolicyArgs{
	Description:      pulumi.String("string"),
	ExecutionRoleArn: pulumi.String("string"),
	PolicyDetails: &dlm.LifecyclePolicyPolicyDetailsArgs{
		Action: &dlm.LifecyclePolicyPolicyDetailsActionArgs{
			CrossRegionCopies: dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArray{
				&dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs{
					EncryptionConfiguration: &dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs{
						CmkArn:    pulumi.String("string"),
						Encrypted: pulumi.Bool(false),
					},
					Target: pulumi.String("string"),
					RetainRule: &dlm.LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs{
						Interval:     pulumi.Int(0),
						IntervalUnit: pulumi.String("string"),
					},
				},
			},
			Name: pulumi.String("string"),
		},
		EventSource: &dlm.LifecyclePolicyPolicyDetailsEventSourceArgs{
			Parameters: &dlm.LifecyclePolicyPolicyDetailsEventSourceParametersArgs{
				DescriptionRegex: pulumi.String("string"),
				EventType:        pulumi.String("string"),
				SnapshotOwners: pulumi.StringArray{
					pulumi.String("string"),
				},
			},
			Type: pulumi.String("string"),
		},
		Parameters: &dlm.LifecyclePolicyPolicyDetailsParametersArgs{
			ExcludeBootVolume: pulumi.Bool(false),
			NoReboot:          pulumi.Bool(false),
		},
		PolicyType:        pulumi.String("string"),
		ResourceLocations: pulumi.String("string"),
		ResourceTypes: pulumi.StringArray{
			pulumi.String("string"),
		},
		Schedules: dlm.LifecyclePolicyPolicyDetailsScheduleArray{
			&dlm.LifecyclePolicyPolicyDetailsScheduleArgs{
				CreateRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs{
					CronExpression: pulumi.String("string"),
					Interval:       pulumi.Int(0),
					IntervalUnit:   pulumi.String("string"),
					Location:       pulumi.String("string"),
					Times:          pulumi.String("string"),
				},
				Name: pulumi.String("string"),
				RetainRule: &dlm.LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs{
					Count:        pulumi.Int(0),
					Interval:     pulumi.Int(0),
					IntervalUnit: pulumi.String("string"),
				},
				CopyTags: pulumi.Bool(false),
				CrossRegionCopyRules: dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArray{
					&dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs{
						Encrypted: pulumi.Bool(false),
						Target:    pulumi.String("string"),
						CmkArn:    pulumi.String("string"),
						CopyTags:  pulumi.Bool(false),
						DeprecateRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs{
							Interval:     pulumi.Int(0),
							IntervalUnit: pulumi.String("string"),
						},
						RetainRule: &dlm.LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs{
							Interval:     pulumi.Int(0),
							IntervalUnit: pulumi.String("string"),
						},
					},
				},
				DeprecateRule: &dlm.LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs{
					Count:        pulumi.Int(0),
					Interval:     pulumi.Int(0),
					IntervalUnit: pulumi.String("string"),
				},
				FastRestoreRule: &dlm.LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs{
					AvailabilityZones: pulumi.StringArray{
						pulumi.String("string"),
					},
					Count:        pulumi.Int(0),
					Interval:     pulumi.Int(0),
					IntervalUnit: pulumi.String("string"),
				},
				ShareRule: &dlm.LifecyclePolicyPolicyDetailsScheduleShareRuleArgs{
					TargetAccounts: pulumi.StringArray{
						pulumi.String("string"),
					},
					UnshareInterval:     pulumi.Int(0),
					UnshareIntervalUnit: pulumi.String("string"),
				},
				TagsToAdd: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
				VariableTags: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
			},
		},
		TargetTags: pulumi.StringMap{
			"string": pulumi.String("string"),
		},
	},
	State: pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
})
var lifecyclePolicyResource = new LifecyclePolicy("lifecyclePolicyResource", LifecyclePolicyArgs.builder()
    .description("string")
    .executionRoleArn("string")
    .policyDetails(LifecyclePolicyPolicyDetailsArgs.builder()
        .action(LifecyclePolicyPolicyDetailsActionArgs.builder()
            .crossRegionCopies(LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs.builder()
                .encryptionConfiguration(LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs.builder()
                    .cmkArn("string")
                    .encrypted(false)
                    .build())
                .target("string")
                .retainRule(LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs.builder()
                    .interval(0)
                    .intervalUnit("string")
                    .build())
                .build())
            .name("string")
            .build())
        .eventSource(LifecyclePolicyPolicyDetailsEventSourceArgs.builder()
            .parameters(LifecyclePolicyPolicyDetailsEventSourceParametersArgs.builder()
                .descriptionRegex("string")
                .eventType("string")
                .snapshotOwners("string")
                .build())
            .type("string")
            .build())
        .parameters(LifecyclePolicyPolicyDetailsParametersArgs.builder()
            .excludeBootVolume(false)
            .noReboot(false)
            .build())
        .policyType("string")
        .resourceLocations("string")
        .resourceTypes("string")
        .schedules(LifecyclePolicyPolicyDetailsScheduleArgs.builder()
            .createRule(LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs.builder()
                .cronExpression("string")
                .interval(0)
                .intervalUnit("string")
                .location("string")
                .times("string")
                .build())
            .name("string")
            .retainRule(LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs.builder()
                .count(0)
                .interval(0)
                .intervalUnit("string")
                .build())
            .copyTags(false)
            .crossRegionCopyRules(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs.builder()
                .encrypted(false)
                .target("string")
                .cmkArn("string")
                .copyTags(false)
                .deprecateRule(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs.builder()
                    .interval(0)
                    .intervalUnit("string")
                    .build())
                .retainRule(LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs.builder()
                    .interval(0)
                    .intervalUnit("string")
                    .build())
                .build())
            .deprecateRule(LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs.builder()
                .count(0)
                .interval(0)
                .intervalUnit("string")
                .build())
            .fastRestoreRule(LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs.builder()
                .availabilityZones("string")
                .count(0)
                .interval(0)
                .intervalUnit("string")
                .build())
            .shareRule(LifecyclePolicyPolicyDetailsScheduleShareRuleArgs.builder()
                .targetAccounts("string")
                .unshareInterval(0)
                .unshareIntervalUnit("string")
                .build())
            .tagsToAdd(Map.of("string", "string"))
            .variableTags(Map.of("string", "string"))
            .build())
        .targetTags(Map.of("string", "string"))
        .build())
    .state("string")
    .tags(Map.of("string", "string"))
    .build());
lifecycle_policy_resource = aws.dlm.LifecyclePolicy("lifecyclePolicyResource",
    description="string",
    execution_role_arn="string",
    policy_details={
        "action": {
            "cross_region_copies": [{
                "encryption_configuration": {
                    "cmk_arn": "string",
                    "encrypted": False,
                },
                "target": "string",
                "retain_rule": {
                    "interval": 0,
                    "interval_unit": "string",
                },
            }],
            "name": "string",
        },
        "event_source": {
            "parameters": {
                "description_regex": "string",
                "event_type": "string",
                "snapshot_owners": ["string"],
            },
            "type": "string",
        },
        "parameters": {
            "exclude_boot_volume": False,
            "no_reboot": False,
        },
        "policy_type": "string",
        "resource_locations": "string",
        "resource_types": ["string"],
        "schedules": [{
            "create_rule": {
                "cron_expression": "string",
                "interval": 0,
                "interval_unit": "string",
                "location": "string",
                "times": "string",
            },
            "name": "string",
            "retain_rule": {
                "count": 0,
                "interval": 0,
                "interval_unit": "string",
            },
            "copy_tags": False,
            "cross_region_copy_rules": [{
                "encrypted": False,
                "target": "string",
                "cmk_arn": "string",
                "copy_tags": False,
                "deprecate_rule": {
                    "interval": 0,
                    "interval_unit": "string",
                },
                "retain_rule": {
                    "interval": 0,
                    "interval_unit": "string",
                },
            }],
            "deprecate_rule": {
                "count": 0,
                "interval": 0,
                "interval_unit": "string",
            },
            "fast_restore_rule": {
                "availability_zones": ["string"],
                "count": 0,
                "interval": 0,
                "interval_unit": "string",
            },
            "share_rule": {
                "target_accounts": ["string"],
                "unshare_interval": 0,
                "unshare_interval_unit": "string",
            },
            "tags_to_add": {
                "string": "string",
            },
            "variable_tags": {
                "string": "string",
            },
        }],
        "target_tags": {
            "string": "string",
        },
    },
    state="string",
    tags={
        "string": "string",
    })
const lifecyclePolicyResource = new aws.dlm.LifecyclePolicy("lifecyclePolicyResource", {
    description: "string",
    executionRoleArn: "string",
    policyDetails: {
        action: {
            crossRegionCopies: [{
                encryptionConfiguration: {
                    cmkArn: "string",
                    encrypted: false,
                },
                target: "string",
                retainRule: {
                    interval: 0,
                    intervalUnit: "string",
                },
            }],
            name: "string",
        },
        eventSource: {
            parameters: {
                descriptionRegex: "string",
                eventType: "string",
                snapshotOwners: ["string"],
            },
            type: "string",
        },
        parameters: {
            excludeBootVolume: false,
            noReboot: false,
        },
        policyType: "string",
        resourceLocations: "string",
        resourceTypes: ["string"],
        schedules: [{
            createRule: {
                cronExpression: "string",
                interval: 0,
                intervalUnit: "string",
                location: "string",
                times: "string",
            },
            name: "string",
            retainRule: {
                count: 0,
                interval: 0,
                intervalUnit: "string",
            },
            copyTags: false,
            crossRegionCopyRules: [{
                encrypted: false,
                target: "string",
                cmkArn: "string",
                copyTags: false,
                deprecateRule: {
                    interval: 0,
                    intervalUnit: "string",
                },
                retainRule: {
                    interval: 0,
                    intervalUnit: "string",
                },
            }],
            deprecateRule: {
                count: 0,
                interval: 0,
                intervalUnit: "string",
            },
            fastRestoreRule: {
                availabilityZones: ["string"],
                count: 0,
                interval: 0,
                intervalUnit: "string",
            },
            shareRule: {
                targetAccounts: ["string"],
                unshareInterval: 0,
                unshareIntervalUnit: "string",
            },
            tagsToAdd: {
                string: "string",
            },
            variableTags: {
                string: "string",
            },
        }],
        targetTags: {
            string: "string",
        },
    },
    state: "string",
    tags: {
        string: "string",
    },
});
type: aws:dlm:LifecyclePolicy
properties:
    description: string
    executionRoleArn: string
    policyDetails:
        action:
            crossRegionCopies:
                - encryptionConfiguration:
                    cmkArn: string
                    encrypted: false
                  retainRule:
                    interval: 0
                    intervalUnit: string
                  target: string
            name: string
        eventSource:
            parameters:
                descriptionRegex: string
                eventType: string
                snapshotOwners:
                    - string
            type: string
        parameters:
            excludeBootVolume: false
            noReboot: false
        policyType: string
        resourceLocations: string
        resourceTypes:
            - string
        schedules:
            - copyTags: false
              createRule:
                cronExpression: string
                interval: 0
                intervalUnit: string
                location: string
                times: string
              crossRegionCopyRules:
                - cmkArn: string
                  copyTags: false
                  deprecateRule:
                    interval: 0
                    intervalUnit: string
                  encrypted: false
                  retainRule:
                    interval: 0
                    intervalUnit: string
                  target: string
              deprecateRule:
                count: 0
                interval: 0
                intervalUnit: string
              fastRestoreRule:
                availabilityZones:
                    - string
                count: 0
                interval: 0
                intervalUnit: string
              name: string
              retainRule:
                count: 0
                interval: 0
                intervalUnit: string
              shareRule:
                targetAccounts:
                    - string
                unshareInterval: 0
                unshareIntervalUnit: string
              tagsToAdd:
                string: string
              variableTags:
                string: string
        targetTags:
            string: string
    state: string
    tags:
        string: string
LifecyclePolicy Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The LifecyclePolicy resource accepts the following input properties:
- Description string
- A description for the DLM lifecycle policy.
- ExecutionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- PolicyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- State string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Dictionary<string, string>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Description string
- A description for the DLM lifecycle policy.
- ExecutionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- PolicyDetails LifecyclePolicy Policy Details Args 
- See the policy_detailsconfiguration block. Max of 1.
- State string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- map[string]string
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- description String
- A description for the DLM lifecycle policy.
- executionRole StringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- state String
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Map<String,String>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- description string
- A description for the DLM lifecycle policy.
- executionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- state string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- {[key: string]: string}
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- description str
- A description for the DLM lifecycle policy.
- execution_role_ strarn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policy_details LifecyclePolicy Policy Details Args 
- See the policy_detailsconfiguration block. Max of 1.
- state str
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Mapping[str, str]
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- description String
- A description for the DLM lifecycle policy.
- executionRole StringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails Property Map
- See the policy_detailsconfiguration block. Max of 1.
- state String
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Map<String>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
Outputs
All input properties are implicitly available as output properties. Additionally, the LifecyclePolicy resource produces the following output properties:
Look up Existing LifecyclePolicy Resource
Get an existing LifecyclePolicy resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: LifecyclePolicyState, opts?: CustomResourceOptions): LifecyclePolicy@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        arn: Optional[str] = None,
        description: Optional[str] = None,
        execution_role_arn: Optional[str] = None,
        policy_details: Optional[LifecyclePolicyPolicyDetailsArgs] = None,
        state: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None) -> LifecyclePolicyfunc GetLifecyclePolicy(ctx *Context, name string, id IDInput, state *LifecyclePolicyState, opts ...ResourceOption) (*LifecyclePolicy, error)public static LifecyclePolicy Get(string name, Input<string> id, LifecyclePolicyState? state, CustomResourceOptions? opts = null)public static LifecyclePolicy get(String name, Output<String> id, LifecyclePolicyState state, CustomResourceOptions options)resources:  _:    type: aws:dlm:LifecyclePolicy    get:      id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Arn string
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- Description string
- A description for the DLM lifecycle policy.
- ExecutionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- PolicyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- State string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Dictionary<string, string>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Dictionary<string, string>
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- Arn string
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- Description string
- A description for the DLM lifecycle policy.
- ExecutionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- PolicyDetails LifecyclePolicy Policy Details Args 
- See the policy_detailsconfiguration block. Max of 1.
- State string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- map[string]string
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- map[string]string
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn String
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- description String
- A description for the DLM lifecycle policy.
- executionRole StringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- state String
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Map<String,String>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Map<String,String>
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn string
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- description string
- A description for the DLM lifecycle policy.
- executionRole stringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails LifecyclePolicy Policy Details 
- See the policy_detailsconfiguration block. Max of 1.
- state string
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- {[key: string]: string}
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- {[key: string]: string}
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn str
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- description str
- A description for the DLM lifecycle policy.
- execution_role_ strarn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policy_details LifecyclePolicy Policy Details Args 
- See the policy_detailsconfiguration block. Max of 1.
- state str
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Mapping[str, str]
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Mapping[str, str]
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
- arn String
- Amazon Resource Name (ARN) of the DLM Lifecycle Policy.
- description String
- A description for the DLM lifecycle policy.
- executionRole StringArn 
- The ARN of an IAM role that is able to be assumed by the DLM service.
- policyDetails Property Map
- See the policy_detailsconfiguration block. Max of 1.
- state String
- Whether the lifecycle policy should be enabled or disabled. ENABLEDorDISABLEDare valid values. Defaults toENABLED.
- Map<String>
- Key-value map of resource tags. If configured with a provider default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.
- Map<String>
- A map of tags assigned to the resource, including those inherited from the provider default_tagsconfiguration block.
Supporting Types
LifecyclePolicyPolicyDetails, LifecyclePolicyPolicyDetailsArgs        
- Action
LifecyclePolicy Policy Details Action 
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- EventSource LifecyclePolicy Policy Details Event Source 
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- Parameters
LifecyclePolicy Policy Details Parameters 
- PolicyType string
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- ResourceLocations string
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- ResourceTypes List<string>
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- Schedules
List<LifecyclePolicy Policy Details Schedule> 
- See the scheduleconfiguration block.
- Dictionary<string, string>
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
- Action
LifecyclePolicy Policy Details Action 
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- EventSource LifecyclePolicy Policy Details Event Source 
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- Parameters
LifecyclePolicy Policy Details Parameters 
- PolicyType string
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- ResourceLocations string
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- ResourceTypes []string
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- Schedules
[]LifecyclePolicy Policy Details Schedule 
- See the scheduleconfiguration block.
- map[string]string
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
- action
LifecyclePolicy Policy Details Action 
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- eventSource LifecyclePolicy Policy Details Event Source 
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- parameters
LifecyclePolicy Policy Details Parameters 
- policyType String
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- resourceLocations String
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- resourceTypes List<String>
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- schedules
List<LifecyclePolicy Policy Details Schedule> 
- See the scheduleconfiguration block.
- Map<String,String>
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
- action
LifecyclePolicy Policy Details Action 
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- eventSource LifecyclePolicy Policy Details Event Source 
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- parameters
LifecyclePolicy Policy Details Parameters 
- policyType string
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- resourceLocations string
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- resourceTypes string[]
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- schedules
LifecyclePolicy Policy Details Schedule[] 
- See the scheduleconfiguration block.
- {[key: string]: string}
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
- action
LifecyclePolicy Policy Details Action 
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- event_source LifecyclePolicy Policy Details Event Source 
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- parameters
LifecyclePolicy Policy Details Parameters 
- policy_type str
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- resource_locations str
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- resource_types Sequence[str]
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- schedules
Sequence[LifecyclePolicy Policy Details Schedule] 
- See the scheduleconfiguration block.
- Mapping[str, str]
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
- action Property Map
- The actions to be performed when the event-based policy is triggered. You can specify only one action per policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the actionconfiguration block.
- eventSource Property Map
- The event that triggers the event-based policy. This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter. See the event_sourceconfiguration block.
- parameters Property Map
- policyType String
- The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENTto create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. SpecifyIMAGE_MANAGEMENTto create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. SpecifyEVENT_BASED_POLICYto create an event-based policy that performs specific actions when a defined event occurs in your AWS account. Default value isEBS_SNAPSHOT_MANAGEMENT.
- resourceLocations String
- The location of the resources to backup. If the source resources are located in an AWS Region, specify CLOUD. If the source resources are located on an Outpost in your account, specifyOUTPOST. If you specifyOUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account. Valid values areCLOUDandOUTPOST.
- resourceTypes List<String>
- A list of resource types that should be targeted by the lifecycle policy. Valid values are VOLUMEandINSTANCE.
- schedules List<Property Map>
- See the scheduleconfiguration block.
- Map<String>
- A map of tag keys and their values. Any resources that match the - resource_typesand are tagged with any of these tags will be targeted.- Note: You cannot have overlapping lifecycle policies that share the same - target_tags. Pulumi is unable to detect this at plan time but it will fail during apply.
LifecyclePolicyPolicyDetailsAction, LifecyclePolicyPolicyDetailsActionArgs          
- CrossRegion List<LifecycleCopies Policy Policy Details Action Cross Region Copy> 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- Name string
- CrossRegion []LifecycleCopies Policy Policy Details Action Cross Region Copy 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- Name string
- crossRegion List<LifecycleCopies Policy Policy Details Action Cross Region Copy> 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- name String
- crossRegion LifecycleCopies Policy Policy Details Action Cross Region Copy[] 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- name string
- cross_region_ Sequence[Lifecyclecopies Policy Policy Details Action Cross Region Copy] 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- name str
- crossRegion List<Property Map>Copies 
- The rule for copying shared snapshots across Regions. See the cross_region_copyconfiguration block.
- name String
LifecyclePolicyPolicyDetailsActionCrossRegionCopy, LifecyclePolicyPolicyDetailsActionCrossRegionCopyArgs                
- EncryptionConfiguration LifecyclePolicy Policy Details Action Cross Region Copy Encryption Configuration 
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- Target string
- RetainRule LifecyclePolicy Policy Details Action Cross Region Copy Retain Rule 
- EncryptionConfiguration LifecyclePolicy Policy Details Action Cross Region Copy Encryption Configuration 
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- Target string
- RetainRule LifecyclePolicy Policy Details Action Cross Region Copy Retain Rule 
- encryptionConfiguration LifecyclePolicy Policy Details Action Cross Region Copy Encryption Configuration 
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- target String
- retainRule LifecyclePolicy Policy Details Action Cross Region Copy Retain Rule 
- encryptionConfiguration LifecyclePolicy Policy Details Action Cross Region Copy Encryption Configuration 
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- target string
- retainRule LifecyclePolicy Policy Details Action Cross Region Copy Retain Rule 
- encryption_configuration LifecyclePolicy Policy Details Action Cross Region Copy Encryption Configuration 
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- target str
- retain_rule LifecyclePolicy Policy Details Action Cross Region Copy Retain Rule 
- encryptionConfiguration Property Map
- The encryption settings for the copied snapshot. See the encryption_configurationblock. Max of 1 per action.
- target String
- retainRule Property Map
LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfiguration, LifecyclePolicyPolicyDetailsActionCrossRegionCopyEncryptionConfigurationArgs                    
LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRule, LifecyclePolicyPolicyDetailsActionCrossRegionCopyRetainRuleArgs                    
- Interval int
- IntervalUnit string
- Interval int
- IntervalUnit string
- interval Integer
- intervalUnit String
- interval number
- intervalUnit string
- interval int
- interval_unit str
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsEventSource, LifecyclePolicyPolicyDetailsEventSourceArgs            
- Parameters
LifecyclePolicy Policy Details Event Source Parameters 
- Type string
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
- Parameters
LifecyclePolicy Policy Details Event Source Parameters 
- Type string
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
- parameters
LifecyclePolicy Policy Details Event Source Parameters 
- type String
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
- parameters
LifecyclePolicy Policy Details Event Source Parameters 
- type string
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
- parameters
LifecyclePolicy Policy Details Event Source Parameters 
- type str
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
- parameters Property Map
- type String
- The source of the event. Currently only managed CloudWatch Events rules are supported. Valid values are MANAGED_CWE.
LifecyclePolicyPolicyDetailsEventSourceParameters, LifecyclePolicyPolicyDetailsEventSourceParametersArgs              
- DescriptionRegex string
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- EventType string
- The type of event. Currently, only shareSnapshotevents are supported.
- SnapshotOwners List<string>
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
- DescriptionRegex string
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- EventType string
- The type of event. Currently, only shareSnapshotevents are supported.
- SnapshotOwners []string
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
- descriptionRegex String
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- eventType String
- The type of event. Currently, only shareSnapshotevents are supported.
- snapshotOwners List<String>
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
- descriptionRegex string
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- eventType string
- The type of event. Currently, only shareSnapshotevents are supported.
- snapshotOwners string[]
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
- description_regex str
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- event_type str
- The type of event. Currently, only shareSnapshotevents are supported.
- snapshot_owners Sequence[str]
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
- descriptionRegex String
- The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.
- eventType String
- The type of event. Currently, only shareSnapshotevents are supported.
- snapshotOwners List<String>
- The IDs of the AWS accounts that can trigger policy by sharing snapshots with your account. The policy only runs if one of the specified AWS accounts shares a snapshot with your account.
LifecyclePolicyPolicyDetailsParameters, LifecyclePolicyPolicyDetailsParametersArgs          
- ExcludeBoot boolVolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- NoReboot bool
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
- ExcludeBoot boolVolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- NoReboot bool
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
- excludeBoot BooleanVolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- noReboot Boolean
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
- excludeBoot booleanVolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- noReboot boolean
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
- exclude_boot_ boolvolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- no_reboot bool
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
- excludeBoot BooleanVolume 
- Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.
- noReboot Boolean
- Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. trueindicates that targeted instances are not rebooted when the policy runs.falseindicates that target instances are rebooted when the policy runs. The default istrue(instances are not rebooted).
LifecyclePolicyPolicyDetailsSchedule, LifecyclePolicyPolicyDetailsScheduleArgs          
- CreateRule LifecyclePolicy Policy Details Schedule Create Rule 
- See the create_ruleblock. Max of 1 per schedule.
- Name string
- RetainRule LifecyclePolicy Policy Details Schedule Retain Rule 
- bool
- CrossRegion List<LifecycleCopy Rules Policy Policy Details Schedule Cross Region Copy Rule> 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- DeprecateRule LifecyclePolicy Policy Details Schedule Deprecate Rule 
- FastRestore LifecycleRule Policy Policy Details Schedule Fast Restore Rule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- 
LifecyclePolicy Policy Details Schedule Share Rule 
- See the share_ruleblock. Max of 1 per schedule.
- Dictionary<string, string>
- 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.
- Dictionary<string, string>
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
- CreateRule LifecyclePolicy Policy Details Schedule Create Rule 
- See the create_ruleblock. Max of 1 per schedule.
- Name string
- RetainRule LifecyclePolicy Policy Details Schedule Retain Rule 
- bool
- CrossRegion []LifecycleCopy Rules Policy Policy Details Schedule Cross Region Copy Rule 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- DeprecateRule LifecyclePolicy Policy Details Schedule Deprecate Rule 
- FastRestore LifecycleRule Policy Policy Details Schedule Fast Restore Rule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- 
LifecyclePolicy Policy Details Schedule Share Rule 
- See the share_ruleblock. Max of 1 per schedule.
- map[string]string
- 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.
- map[string]string
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
- createRule LifecyclePolicy Policy Details Schedule Create Rule 
- See the create_ruleblock. Max of 1 per schedule.
- name String
- retainRule LifecyclePolicy Policy Details Schedule Retain Rule 
- Boolean
- crossRegion List<LifecycleCopy Rules Policy Policy Details Schedule Cross Region Copy Rule> 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- deprecateRule LifecyclePolicy Policy Details Schedule Deprecate Rule 
- fastRestore LifecycleRule Policy Policy Details Schedule Fast Restore Rule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- 
LifecyclePolicy Policy Details Schedule Share Rule 
- See the share_ruleblock. Max of 1 per schedule.
- Map<String,String>
- 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.
- Map<String,String>
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
- createRule LifecyclePolicy Policy Details Schedule Create Rule 
- See the create_ruleblock. Max of 1 per schedule.
- name string
- retainRule LifecyclePolicy Policy Details Schedule Retain Rule 
- boolean
- crossRegion LifecycleCopy Rules Policy Policy Details Schedule Cross Region Copy Rule[] 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- deprecateRule LifecyclePolicy Policy Details Schedule Deprecate Rule 
- fastRestore LifecycleRule Policy Policy Details Schedule Fast Restore Rule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- 
LifecyclePolicy Policy Details Schedule Share Rule 
- See the share_ruleblock. Max of 1 per schedule.
- {[key: string]: string}
- 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.
- {[key: string]: string}
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
- create_rule LifecyclePolicy Policy Details Schedule Create Rule 
- See the create_ruleblock. Max of 1 per schedule.
- name str
- retain_rule LifecyclePolicy Policy Details Schedule Retain Rule 
- bool
- cross_region_ Sequence[Lifecyclecopy_ rules Policy Policy Details Schedule Cross Region Copy Rule] 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- deprecate_rule LifecyclePolicy Policy Details Schedule Deprecate Rule 
- fast_restore_ Lifecyclerule Policy Policy Details Schedule Fast Restore Rule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- 
LifecyclePolicy Policy Details Schedule Share Rule 
- See the share_ruleblock. Max of 1 per schedule.
- Mapping[str, str]
- 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.
- Mapping[str, str]
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
- createRule Property Map
- See the create_ruleblock. Max of 1 per schedule.
- name String
- retainRule Property Map
- Boolean
- crossRegion List<Property Map>Copy Rules 
- See the cross_region_copy_ruleblock. Max of 3 per schedule.
- deprecateRule Property Map
- fastRestore Property MapRule 
- See the fast_restore_ruleblock. Max of 1 per schedule.
- Property Map
- See the share_ruleblock. Max of 1 per schedule.
- Map<String>
- 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.
- Map<String>
- A map of tag keys and variable values, where the values are determined when the policy is executed. Only $(instance-id)or$(timestamp)are valid values. Can only be used whenresource_typesisINSTANCE.
LifecyclePolicyPolicyDetailsScheduleCreateRule, LifecyclePolicyPolicyDetailsScheduleCreateRuleArgs              
- CronExpression string
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- Interval int
- IntervalUnit string
- Location string
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- Times string
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
- CronExpression string
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- Interval int
- IntervalUnit string
- Location string
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- Times string
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
- cronExpression String
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- interval Integer
- intervalUnit String
- location String
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- times String
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
- cronExpression string
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- interval number
- intervalUnit string
- location string
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- times string
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
- cron_expression str
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- interval int
- interval_unit str
- location str
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- times str
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
- cronExpression String
- The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. Conflicts with interval,interval_unit, andtimes.
- interval Number
- intervalUnit String
- location String
- Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specifyOUTPOST_LOCAL. If you omit this parameter,CLOUDis used by default. If the policy targets resources in an AWS Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost. Valid values areCLOUDandOUTPOST_LOCAL.
- times String
- A list of times in 24 hour clock format that sets when the lifecycle policy should be evaluated. Max of 1. Conflicts with cron_expression. Must be set ifintervalis set.
LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRule, LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleArgs                  
- encrypted Boolean
- target String
- cmkArn String
- Boolean
- deprecateRule Property Map
- retainRule Property Map
LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRule, LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleDeprecateRuleArgs                      
- Interval int
- IntervalUnit string
- Interval int
- IntervalUnit string
- interval Integer
- intervalUnit String
- interval number
- intervalUnit string
- interval int
- interval_unit str
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRule, LifecyclePolicyPolicyDetailsScheduleCrossRegionCopyRuleRetainRuleArgs                      
- Interval int
- IntervalUnit string
- Interval int
- IntervalUnit string
- interval Integer
- intervalUnit String
- interval number
- intervalUnit string
- interval int
- interval_unit str
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsScheduleDeprecateRule, LifecyclePolicyPolicyDetailsScheduleDeprecateRuleArgs              
- Count int
- Interval int
- IntervalUnit string
- Count int
- Interval int
- IntervalUnit string
- count Integer
- interval Integer
- intervalUnit String
- count number
- interval number
- intervalUnit string
- count int
- interval int
- interval_unit str
- count Number
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsScheduleFastRestoreRule, LifecyclePolicyPolicyDetailsScheduleFastRestoreRuleArgs                
- AvailabilityZones List<string>
- The Availability Zones in which to enable fast snapshot restore.
- Count int
- Interval int
- IntervalUnit string
- AvailabilityZones []string
- The Availability Zones in which to enable fast snapshot restore.
- Count int
- Interval int
- IntervalUnit string
- availabilityZones List<String>
- The Availability Zones in which to enable fast snapshot restore.
- count Integer
- interval Integer
- intervalUnit String
- availabilityZones string[]
- The Availability Zones in which to enable fast snapshot restore.
- count number
- interval number
- intervalUnit string
- availability_zones Sequence[str]
- The Availability Zones in which to enable fast snapshot restore.
- count int
- interval int
- interval_unit str
- availabilityZones List<String>
- The Availability Zones in which to enable fast snapshot restore.
- count Number
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsScheduleRetainRule, LifecyclePolicyPolicyDetailsScheduleRetainRuleArgs              
- Count int
- Interval int
- IntervalUnit string
- Count int
- Interval int
- IntervalUnit string
- count Integer
- interval Integer
- intervalUnit String
- count number
- interval number
- intervalUnit string
- count int
- interval int
- interval_unit str
- count Number
- interval Number
- intervalUnit String
LifecyclePolicyPolicyDetailsScheduleShareRule, LifecyclePolicyPolicyDetailsScheduleShareRuleArgs              
- TargetAccounts List<string>
- The IDs of the AWS accounts with which to share the snapshots.
- int
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- string
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
- TargetAccounts []string
- The IDs of the AWS accounts with which to share the snapshots.
- int
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- string
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
- targetAccounts List<String>
- The IDs of the AWS accounts with which to share the snapshots.
- Integer
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- String
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
- targetAccounts string[]
- The IDs of the AWS accounts with which to share the snapshots.
- number
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- string
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
- target_accounts Sequence[str]
- The IDs of the AWS accounts with which to share the snapshots.
- int
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- str
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
- targetAccounts List<String>
- The IDs of the AWS accounts with which to share the snapshots.
- Number
- The period after which snapshots that are shared with other AWS accounts are automatically unshared.
- String
- The unit of time for the automatic unsharing interval. Valid values are DAYS,WEEKS,MONTHS,YEARS.
Import
Using pulumi import, import DLM lifecycle policies using their policy ID. For example:
$ pulumi import aws:dlm/lifecyclePolicy:LifecyclePolicy example policy-abcdef12345678901
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the awsTerraform Provider.