The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Paws::DLM::CreateLifecyclePolicy - Arguments for method CreateLifecyclePolicy on Paws::DLM

DESCRIPTION

This class represents the parameters used for calling the method CreateLifecyclePolicy on the Amazon Data Lifecycle Manager service. Use the attributes of this class as arguments to method CreateLifecyclePolicy.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateLifecyclePolicy.

SYNOPSIS

    my $dlm = Paws->service('DLM');
    my $CreateLifecyclePolicyResponse = $dlm->CreateLifecyclePolicy(
      Description      => 'MyPolicyDescription',
      ExecutionRoleArn => 'MyExecutionRoleArn',
      PolicyDetails    => {
        Actions => [
          {
            CrossRegionCopy => [
              {
                EncryptionConfiguration => {
                  Encrypted => 1,
                  CmkArn    => 'MyCmkArn',    # max: 2048; OPTIONAL
                },
                Target     => 'MyTarget',     # max: 2048
                RetainRule => {
                  Interval     => 1,          # min: 1; OPTIONAL
                  IntervalUnit =>
                    'DAYS',    # values: DAYS, WEEKS, MONTHS, YEARS; OPTIONAL
                },    # OPTIONAL
              },
              ...
            ],    # max: 3
            Name => 'MyActionName',    # max: 120

          },
          ...
        ],    # min: 1, max: 1; OPTIONAL
        EventSource => {
          Type       => 'MANAGED_CWE',    # values: MANAGED_CWE
          Parameters => {
            DescriptionRegex => 'MyDescriptionRegex',    # max: 1000
            EventType        => 'shareSnapshot',         # values: shareSnapshot
            SnapshotOwner    => [
              'MyAwsAccountId', ...                      # min: 12, max: 12
            ],    # max: 50

          },    # OPTIONAL
        },    # OPTIONAL
        Parameters => {
          ExcludeBootVolume => 1,    # OPTIONAL
          NoReboot          => 1,    # OPTIONAL
        },    # OPTIONAL
        PolicyType => 'EBS_SNAPSHOT_MANAGEMENT'
        , # values: EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY; OPTIONAL
        ResourceLocations => [
          'CLOUD', ...    # values: CLOUD, OUTPOST
        ],    # min: 1, max: 1; OPTIONAL
        ResourceTypes => [
          'VOLUME', ...    # values: VOLUME, INSTANCE
        ],    # min: 1, max: 1; OPTIONAL
        Schedules => [
          {
            CopyTags   => 1,    # OPTIONAL
            CreateRule => {
              CronExpression =>
                'MyCronExpression',    # min: 17, max: 106; OPTIONAL
              Interval     => 1,       # min: 1; OPTIONAL
              IntervalUnit => 'HOURS', # values: HOURS; OPTIONAL
              Location     => 'CLOUD', # values: CLOUD, OUTPOST_LOCAL; OPTIONAL
              Times        => [
                'MyTime', ...          # min: 5, max: 5
              ],    # max: 1; OPTIONAL
            },    # OPTIONAL
            CrossRegionCopyRules => [
              {
                Encrypted  => 1,
                CmkArn     => 'MyCmkArn',    # max: 2048; OPTIONAL
                CopyTags   => 1,             # OPTIONAL
                RetainRule => {
                  Interval     => 1,         # min: 1; OPTIONAL
                  IntervalUnit =>
                    'DAYS',    # values: DAYS, WEEKS, MONTHS, YEARS; OPTIONAL
                },    # OPTIONAL
                Target       => 'MyTarget',          # max: 2048
                TargetRegion => 'MyTargetRegion',    # max: 16; OPTIONAL
              },
              ...
            ],    # max: 3; OPTIONAL
            FastRestoreRule => {
              AvailabilityZones => [
                'MyAvailabilityZone', ...    # max: 16
              ],    # min: 1, max: 10
              Count        => 1,    # min: 1, max: 1000; OPTIONAL
              Interval     => 1,    # min: 1; OPTIONAL
              IntervalUnit =>
                'DAYS',    # values: DAYS, WEEKS, MONTHS, YEARS; OPTIONAL
            },    # OPTIONAL
            Name       => 'MyScheduleName',    # max: 120; OPTIONAL
            RetainRule => {
              Count        => 1,               # min: 1, max: 1000; OPTIONAL
              Interval     => 1,               # min: 1; OPTIONAL
              IntervalUnit =>
                'DAYS',    # values: DAYS, WEEKS, MONTHS, YEARS; OPTIONAL
            },    # OPTIONAL
            ShareRules => [
              {
                TargetAccounts => [
                  'MyAwsAccountId', ...    # min: 12, max: 12
                ],    # min: 1
                UnshareInterval     => 1,    # min: 1; OPTIONAL
                UnshareIntervalUnit =>
                  'DAYS',    # values: DAYS, WEEKS, MONTHS, YEARS; OPTIONAL
              },
              ...
            ],    # max: 1; OPTIONAL
            TagsToAdd => [
              {
                Key   => 'MyString',    # max: 500
                Value => 'MyString',    # max: 500

              },
              ...
            ],    # max: 45; OPTIONAL
            VariableTags => [
              {
                Key   => 'MyString',    # max: 500
                Value => 'MyString',    # max: 500

              },
              ...
            ],    # max: 45; OPTIONAL
          },
          ...
        ],    # min: 1, max: 4; OPTIONAL
        TargetTags => [
          {
            Key   => 'MyString',    # max: 500
            Value => 'MyString',    # max: 500

          },
          ...
        ],    # min: 1, max: 50; OPTIONAL
      },
      State => 'ENABLED',
      Tags  => {
        'MyTagKey' => 'MyTagValue',    # key: min: 1, max: 128, value: max: 256
      },    # OPTIONAL
    );

    # Results:
    my $PolicyId = $CreateLifecyclePolicyResponse->PolicyId;

    # Returns a L<Paws::DLM::CreateLifecyclePolicyResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/dlm/CreateLifecyclePolicy

ATTRIBUTES

REQUIRED Description => Str

A description of the lifecycle policy. The characters ^[0-9A-Za-z _-]+$ are supported.

REQUIRED ExecutionRoleArn => Str

The Amazon Resource Name (ARN) of the IAM role used to run the operations specified by the lifecycle policy.

REQUIRED PolicyDetails => Paws::DLM::PolicyDetails

The configuration details of the lifecycle policy.

REQUIRED State => Str

The desired activation state of the lifecycle policy after creation.

Valid values are: "ENABLED", "DISABLED"

Tags => Paws::DLM::TagMap

The tags to apply to the lifecycle policy during creation.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateLifecyclePolicy in Paws::DLM

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues