aws-sdk-dlm 1.34.0 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b03fa2d13f9b6691d0df5354b1671412e3084bdf87b64f7be65e34bcb6c503f
4
- data.tar.gz: d54d9b85619a52d6a4130d84f210e40aeaaca89fb98b8d75280eb3e749dbd026
3
+ metadata.gz: '09fcecf2b9e70b4f18c24b69d2591a1a40ea49a44d9ef0c0652f1f4058cfdc09'
4
+ data.tar.gz: 3c8ff848261112e5d32d23f3f9bca62d2a783b06671c1dfac6fa43c8e5638b3f
5
5
  SHA512:
6
- metadata.gz: efffcf12f990eb30d4135ca68eedca0fb0e64d59fbd7a41fe2ad970fb1d6de36babc89dcc51549830e9d4171f81de6d714bb5c13e532558c0374a1a7a29d22fe
7
- data.tar.gz: 2bfc5c036599c28602be14ce7b3ac93cf841eb68e215ba873eeadf06691391b538cac8b423239fa14e45e03161443dccff54a083ae60f5f5cfe55d33d156007d
6
+ metadata.gz: aab54f33c1d1e9d3ab119400be34911ea5da0f1a62b35aa8391cfb63df4226bf4f67d36b6631d7d125a39a7a0e02f1c8fea25766a9167cc89a21bc438eb91126
7
+ data.tar.gz: d464e27fff431a25fddc634499c8692e8992048e0e36c1c92d584cf75d3f549b76c39795bc1ca65a9417f4d465725db5f45c7dc0a0fa2f9c6385ade21bf1c4e9
data/lib/aws-sdk-dlm.rb CHANGED
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-dlm/customizations'
48
48
  # @!group service
49
49
  module Aws::DLM
50
50
 
51
- GEM_VERSION = '1.34.0'
51
+ GEM_VERSION = '1.39.0'
52
52
 
53
53
  end
@@ -358,8 +358,9 @@ module Aws::DLM
358
358
  # description: "PolicyDescription", # required
359
359
  # state: "ENABLED", # required, accepts ENABLED, DISABLED
360
360
  # policy_details: { # required
361
- # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT
361
+ # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY
362
362
  # resource_types: ["VOLUME"], # accepts VOLUME, INSTANCE
363
+ # resource_locations: ["CLOUD"], # accepts CLOUD, OUTPOST
363
364
  # target_tags: [
364
365
  # {
365
366
  # key: "String", # required
@@ -383,6 +384,7 @@ module Aws::DLM
383
384
  # },
384
385
  # ],
385
386
  # create_rule: {
387
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
386
388
  # interval: 1,
387
389
  # interval_unit: "HOURS", # accepts HOURS
388
390
  # times: ["Time"],
@@ -401,7 +403,8 @@ module Aws::DLM
401
403
  # },
402
404
  # cross_region_copy_rules: [
403
405
  # {
404
- # target_region: "TargetRegion", # required
406
+ # target_region: "TargetRegion",
407
+ # target: "Target",
405
408
  # encrypted: false, # required
406
409
  # cmk_arn: "CmkArn",
407
410
  # copy_tags: false,
@@ -411,11 +414,45 @@ module Aws::DLM
411
414
  # },
412
415
  # },
413
416
  # ],
417
+ # share_rules: [
418
+ # {
419
+ # target_accounts: ["AwsAccountId"], # required
420
+ # unshare_interval: 1,
421
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
422
+ # },
423
+ # ],
414
424
  # },
415
425
  # ],
416
426
  # parameters: {
417
427
  # exclude_boot_volume: false,
428
+ # no_reboot: false,
429
+ # },
430
+ # event_source: {
431
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
432
+ # parameters: {
433
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
434
+ # snapshot_owner: ["AwsAccountId"], # required
435
+ # description_regex: "DescriptionRegex", # required
436
+ # },
418
437
  # },
438
+ # actions: [
439
+ # {
440
+ # name: "ActionName", # required
441
+ # cross_region_copy: [ # required
442
+ # {
443
+ # target: "Target", # required
444
+ # encryption_configuration: { # required
445
+ # encrypted: false, # required
446
+ # cmk_arn: "CmkArn",
447
+ # },
448
+ # retain_rule: {
449
+ # interval: 1,
450
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
451
+ # },
452
+ # },
453
+ # ],
454
+ # },
455
+ # ],
419
456
  # },
420
457
  # tags: {
421
458
  # "TagKey" => "TagValue",
@@ -507,6 +544,7 @@ module Aws::DLM
507
544
  # resp.policies[0].state #=> String, one of "ENABLED", "DISABLED", "ERROR"
508
545
  # resp.policies[0].tags #=> Hash
509
546
  # resp.policies[0].tags["TagKey"] #=> String
547
+ # resp.policies[0].policy_type #=> String, one of "EBS_SNAPSHOT_MANAGEMENT", "IMAGE_MANAGEMENT", "EVENT_BASED_POLICY"
510
548
  #
511
549
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/GetLifecyclePolicies AWS API Documentation
512
550
  #
@@ -541,9 +579,11 @@ module Aws::DLM
541
579
  # resp.policy.execution_role_arn #=> String
542
580
  # resp.policy.date_created #=> Time
543
581
  # resp.policy.date_modified #=> Time
544
- # resp.policy.policy_details.policy_type #=> String, one of "EBS_SNAPSHOT_MANAGEMENT"
582
+ # resp.policy.policy_details.policy_type #=> String, one of "EBS_SNAPSHOT_MANAGEMENT", "IMAGE_MANAGEMENT", "EVENT_BASED_POLICY"
545
583
  # resp.policy.policy_details.resource_types #=> Array
546
584
  # resp.policy.policy_details.resource_types[0] #=> String, one of "VOLUME", "INSTANCE"
585
+ # resp.policy.policy_details.resource_locations #=> Array
586
+ # resp.policy.policy_details.resource_locations[0] #=> String, one of "CLOUD", "OUTPOST"
547
587
  # resp.policy.policy_details.target_tags #=> Array
548
588
  # resp.policy.policy_details.target_tags[0].key #=> String
549
589
  # resp.policy.policy_details.target_tags[0].value #=> String
@@ -556,6 +596,7 @@ module Aws::DLM
556
596
  # resp.policy.policy_details.schedules[0].variable_tags #=> Array
557
597
  # resp.policy.policy_details.schedules[0].variable_tags[0].key #=> String
558
598
  # resp.policy.policy_details.schedules[0].variable_tags[0].value #=> String
599
+ # resp.policy.policy_details.schedules[0].create_rule.location #=> String, one of "CLOUD", "OUTPOST_LOCAL"
559
600
  # resp.policy.policy_details.schedules[0].create_rule.interval #=> Integer
560
601
  # resp.policy.policy_details.schedules[0].create_rule.interval_unit #=> String, one of "HOURS"
561
602
  # resp.policy.policy_details.schedules[0].create_rule.times #=> Array
@@ -571,12 +612,32 @@ module Aws::DLM
571
612
  # resp.policy.policy_details.schedules[0].fast_restore_rule.availability_zones[0] #=> String
572
613
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules #=> Array
573
614
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].target_region #=> String
615
+ # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].target #=> String
574
616
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].encrypted #=> Boolean
575
617
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].cmk_arn #=> String
576
618
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].copy_tags #=> Boolean
577
619
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].retain_rule.interval #=> Integer
578
620
  # resp.policy.policy_details.schedules[0].cross_region_copy_rules[0].retain_rule.interval_unit #=> String, one of "DAYS", "WEEKS", "MONTHS", "YEARS"
621
+ # resp.policy.policy_details.schedules[0].share_rules #=> Array
622
+ # resp.policy.policy_details.schedules[0].share_rules[0].target_accounts #=> Array
623
+ # resp.policy.policy_details.schedules[0].share_rules[0].target_accounts[0] #=> String
624
+ # resp.policy.policy_details.schedules[0].share_rules[0].unshare_interval #=> Integer
625
+ # resp.policy.policy_details.schedules[0].share_rules[0].unshare_interval_unit #=> String, one of "DAYS", "WEEKS", "MONTHS", "YEARS"
579
626
  # resp.policy.policy_details.parameters.exclude_boot_volume #=> Boolean
627
+ # resp.policy.policy_details.parameters.no_reboot #=> Boolean
628
+ # resp.policy.policy_details.event_source.type #=> String, one of "MANAGED_CWE"
629
+ # resp.policy.policy_details.event_source.parameters.event_type #=> String, one of "shareSnapshot"
630
+ # resp.policy.policy_details.event_source.parameters.snapshot_owner #=> Array
631
+ # resp.policy.policy_details.event_source.parameters.snapshot_owner[0] #=> String
632
+ # resp.policy.policy_details.event_source.parameters.description_regex #=> String
633
+ # resp.policy.policy_details.actions #=> Array
634
+ # resp.policy.policy_details.actions[0].name #=> String
635
+ # resp.policy.policy_details.actions[0].cross_region_copy #=> Array
636
+ # resp.policy.policy_details.actions[0].cross_region_copy[0].target #=> String
637
+ # resp.policy.policy_details.actions[0].cross_region_copy[0].encryption_configuration.encrypted #=> Boolean
638
+ # resp.policy.policy_details.actions[0].cross_region_copy[0].encryption_configuration.cmk_arn #=> String
639
+ # resp.policy.policy_details.actions[0].cross_region_copy[0].retain_rule.interval #=> Integer
640
+ # resp.policy.policy_details.actions[0].cross_region_copy[0].retain_rule.interval_unit #=> String, one of "DAYS", "WEEKS", "MONTHS", "YEARS"
580
641
  # resp.policy.tags #=> Hash
581
642
  # resp.policy.tags["TagKey"] #=> String
582
643
  # resp.policy.policy_arn #=> String
@@ -702,8 +763,9 @@ module Aws::DLM
702
763
  # state: "ENABLED", # accepts ENABLED, DISABLED
703
764
  # description: "PolicyDescription",
704
765
  # policy_details: {
705
- # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT
766
+ # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY
706
767
  # resource_types: ["VOLUME"], # accepts VOLUME, INSTANCE
768
+ # resource_locations: ["CLOUD"], # accepts CLOUD, OUTPOST
707
769
  # target_tags: [
708
770
  # {
709
771
  # key: "String", # required
@@ -727,6 +789,7 @@ module Aws::DLM
727
789
  # },
728
790
  # ],
729
791
  # create_rule: {
792
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
730
793
  # interval: 1,
731
794
  # interval_unit: "HOURS", # accepts HOURS
732
795
  # times: ["Time"],
@@ -745,7 +808,8 @@ module Aws::DLM
745
808
  # },
746
809
  # cross_region_copy_rules: [
747
810
  # {
748
- # target_region: "TargetRegion", # required
811
+ # target_region: "TargetRegion",
812
+ # target: "Target",
749
813
  # encrypted: false, # required
750
814
  # cmk_arn: "CmkArn",
751
815
  # copy_tags: false,
@@ -755,11 +819,45 @@ module Aws::DLM
755
819
  # },
756
820
  # },
757
821
  # ],
822
+ # share_rules: [
823
+ # {
824
+ # target_accounts: ["AwsAccountId"], # required
825
+ # unshare_interval: 1,
826
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
827
+ # },
828
+ # ],
758
829
  # },
759
830
  # ],
760
831
  # parameters: {
761
832
  # exclude_boot_volume: false,
833
+ # no_reboot: false,
834
+ # },
835
+ # event_source: {
836
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
837
+ # parameters: {
838
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
839
+ # snapshot_owner: ["AwsAccountId"], # required
840
+ # description_regex: "DescriptionRegex", # required
841
+ # },
762
842
  # },
843
+ # actions: [
844
+ # {
845
+ # name: "ActionName", # required
846
+ # cross_region_copy: [ # required
847
+ # {
848
+ # target: "Target", # required
849
+ # encryption_configuration: { # required
850
+ # encrypted: false, # required
851
+ # cmk_arn: "CmkArn",
852
+ # },
853
+ # retain_rule: {
854
+ # interval: 1,
855
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
856
+ # },
857
+ # },
858
+ # ],
859
+ # },
860
+ # ],
763
861
  # },
764
862
  # })
765
863
  #
@@ -785,7 +883,7 @@ module Aws::DLM
785
883
  params: params,
786
884
  config: config)
787
885
  context[:gem_name] = 'aws-sdk-dlm'
788
- context[:gem_version] = '1.34.0'
886
+ context[:gem_version] = '1.39.0'
789
887
  Seahorse::Client::Request.new(handlers, context)
790
888
  end
791
889
 
@@ -13,8 +13,12 @@ module Aws::DLM
13
13
 
14
14
  include Seahorse::Model
15
15
 
16
+ Action = Shapes::StructureShape.new(name: 'Action')
17
+ ActionList = Shapes::ListShape.new(name: 'ActionList')
18
+ ActionName = Shapes::StringShape.new(name: 'ActionName')
16
19
  AvailabilityZone = Shapes::StringShape.new(name: 'AvailabilityZone')
17
20
  AvailabilityZoneList = Shapes::ListShape.new(name: 'AvailabilityZoneList')
21
+ AwsAccountId = Shapes::StringShape.new(name: 'AwsAccountId')
18
22
  CmkArn = Shapes::StringShape.new(name: 'CmkArn')
19
23
  CopyTags = Shapes::BooleanShape.new(name: 'CopyTags')
20
24
  CopyTagsNullable = Shapes::BooleanShape.new(name: 'CopyTagsNullable')
@@ -23,14 +27,22 @@ module Aws::DLM
23
27
  CreateLifecyclePolicyResponse = Shapes::StructureShape.new(name: 'CreateLifecyclePolicyResponse')
24
28
  CreateRule = Shapes::StructureShape.new(name: 'CreateRule')
25
29
  CronExpression = Shapes::StringShape.new(name: 'CronExpression')
30
+ CrossRegionCopyAction = Shapes::StructureShape.new(name: 'CrossRegionCopyAction')
31
+ CrossRegionCopyActionList = Shapes::ListShape.new(name: 'CrossRegionCopyActionList')
26
32
  CrossRegionCopyRetainRule = Shapes::StructureShape.new(name: 'CrossRegionCopyRetainRule')
27
33
  CrossRegionCopyRule = Shapes::StructureShape.new(name: 'CrossRegionCopyRule')
28
34
  CrossRegionCopyRules = Shapes::ListShape.new(name: 'CrossRegionCopyRules')
29
35
  DeleteLifecyclePolicyRequest = Shapes::StructureShape.new(name: 'DeleteLifecyclePolicyRequest')
30
36
  DeleteLifecyclePolicyResponse = Shapes::StructureShape.new(name: 'DeleteLifecyclePolicyResponse')
37
+ DescriptionRegex = Shapes::StringShape.new(name: 'DescriptionRegex')
31
38
  Encrypted = Shapes::BooleanShape.new(name: 'Encrypted')
39
+ EncryptionConfiguration = Shapes::StructureShape.new(name: 'EncryptionConfiguration')
32
40
  ErrorCode = Shapes::StringShape.new(name: 'ErrorCode')
33
41
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
42
+ EventParameters = Shapes::StructureShape.new(name: 'EventParameters')
43
+ EventSource = Shapes::StructureShape.new(name: 'EventSource')
44
+ EventSourceValues = Shapes::StringShape.new(name: 'EventSourceValues')
45
+ EventTypeValues = Shapes::StringShape.new(name: 'EventTypeValues')
34
46
  ExcludeBootVolume = Shapes::BooleanShape.new(name: 'ExcludeBootVolume')
35
47
  ExecutionRoleArn = Shapes::StringShape.new(name: 'ExecutionRoleArn')
36
48
  FastRestoreRule = Shapes::StructureShape.new(name: 'FastRestoreRule')
@@ -49,6 +61,8 @@ module Aws::DLM
49
61
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
50
62
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
51
63
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
64
+ LocationValues = Shapes::StringShape.new(name: 'LocationValues')
65
+ NoReboot = Shapes::BooleanShape.new(name: 'NoReboot')
52
66
  Parameter = Shapes::StringShape.new(name: 'Parameter')
53
67
  ParameterList = Shapes::ListShape.new(name: 'ParameterList')
54
68
  Parameters = Shapes::StructureShape.new(name: 'Parameters')
@@ -58,6 +72,8 @@ module Aws::DLM
58
72
  PolicyId = Shapes::StringShape.new(name: 'PolicyId')
59
73
  PolicyIdList = Shapes::ListShape.new(name: 'PolicyIdList')
60
74
  PolicyTypeValues = Shapes::StringShape.new(name: 'PolicyTypeValues')
75
+ ResourceLocationList = Shapes::ListShape.new(name: 'ResourceLocationList')
76
+ ResourceLocationValues = Shapes::StringShape.new(name: 'ResourceLocationValues')
61
77
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
62
78
  ResourceTypeValues = Shapes::StringShape.new(name: 'ResourceTypeValues')
63
79
  ResourceTypeValuesList = Shapes::ListShape.new(name: 'ResourceTypeValuesList')
@@ -67,6 +83,10 @@ module Aws::DLM
67
83
  ScheduleList = Shapes::ListShape.new(name: 'ScheduleList')
68
84
  ScheduleName = Shapes::StringShape.new(name: 'ScheduleName')
69
85
  SettablePolicyStateValues = Shapes::StringShape.new(name: 'SettablePolicyStateValues')
86
+ ShareRule = Shapes::StructureShape.new(name: 'ShareRule')
87
+ ShareRules = Shapes::ListShape.new(name: 'ShareRules')
88
+ ShareTargetAccountList = Shapes::ListShape.new(name: 'ShareTargetAccountList')
89
+ SnapshotOwnerList = Shapes::ListShape.new(name: 'SnapshotOwnerList')
70
90
  StatusMessage = Shapes::StringShape.new(name: 'StatusMessage')
71
91
  String = Shapes::StringShape.new(name: 'String')
72
92
  Tag = Shapes::StructureShape.new(name: 'Tag')
@@ -79,6 +99,7 @@ module Aws::DLM
79
99
  TagValue = Shapes::StringShape.new(name: 'TagValue')
80
100
  TagsToAddFilterList = Shapes::ListShape.new(name: 'TagsToAddFilterList')
81
101
  TagsToAddList = Shapes::ListShape.new(name: 'TagsToAddList')
102
+ Target = Shapes::StringShape.new(name: 'Target')
82
103
  TargetRegion = Shapes::StringShape.new(name: 'TargetRegion')
83
104
  TargetTagList = Shapes::ListShape.new(name: 'TargetTagList')
84
105
  TargetTagsFilterList = Shapes::ListShape.new(name: 'TargetTagsFilterList')
@@ -91,6 +112,12 @@ module Aws::DLM
91
112
  UpdateLifecyclePolicyResponse = Shapes::StructureShape.new(name: 'UpdateLifecyclePolicyResponse')
92
113
  VariableTagsList = Shapes::ListShape.new(name: 'VariableTagsList')
93
114
 
115
+ Action.add_member(:name, Shapes::ShapeRef.new(shape: ActionName, required: true, location_name: "Name"))
116
+ Action.add_member(:cross_region_copy, Shapes::ShapeRef.new(shape: CrossRegionCopyActionList, required: true, location_name: "CrossRegionCopy"))
117
+ Action.struct_class = Types::Action
118
+
119
+ ActionList.member = Shapes::ShapeRef.new(shape: Action)
120
+
94
121
  AvailabilityZoneList.member = Shapes::ShapeRef.new(shape: AvailabilityZone)
95
122
 
96
123
  CreateLifecyclePolicyRequest.add_member(:execution_role_arn, Shapes::ShapeRef.new(shape: ExecutionRoleArn, required: true, location_name: "ExecutionRoleArn"))
@@ -103,17 +130,26 @@ module Aws::DLM
103
130
  CreateLifecyclePolicyResponse.add_member(:policy_id, Shapes::ShapeRef.new(shape: PolicyId, location_name: "PolicyId"))
104
131
  CreateLifecyclePolicyResponse.struct_class = Types::CreateLifecyclePolicyResponse
105
132
 
133
+ CreateRule.add_member(:location, Shapes::ShapeRef.new(shape: LocationValues, location_name: "Location"))
106
134
  CreateRule.add_member(:interval, Shapes::ShapeRef.new(shape: Interval, location_name: "Interval"))
107
135
  CreateRule.add_member(:interval_unit, Shapes::ShapeRef.new(shape: IntervalUnitValues, location_name: "IntervalUnit"))
108
136
  CreateRule.add_member(:times, Shapes::ShapeRef.new(shape: TimesList, location_name: "Times"))
109
137
  CreateRule.add_member(:cron_expression, Shapes::ShapeRef.new(shape: CronExpression, location_name: "CronExpression"))
110
138
  CreateRule.struct_class = Types::CreateRule
111
139
 
140
+ CrossRegionCopyAction.add_member(:target, Shapes::ShapeRef.new(shape: Target, required: true, location_name: "Target"))
141
+ CrossRegionCopyAction.add_member(:encryption_configuration, Shapes::ShapeRef.new(shape: EncryptionConfiguration, required: true, location_name: "EncryptionConfiguration"))
142
+ CrossRegionCopyAction.add_member(:retain_rule, Shapes::ShapeRef.new(shape: CrossRegionCopyRetainRule, location_name: "RetainRule"))
143
+ CrossRegionCopyAction.struct_class = Types::CrossRegionCopyAction
144
+
145
+ CrossRegionCopyActionList.member = Shapes::ShapeRef.new(shape: CrossRegionCopyAction)
146
+
112
147
  CrossRegionCopyRetainRule.add_member(:interval, Shapes::ShapeRef.new(shape: Interval, location_name: "Interval"))
113
148
  CrossRegionCopyRetainRule.add_member(:interval_unit, Shapes::ShapeRef.new(shape: RetentionIntervalUnitValues, location_name: "IntervalUnit"))
114
149
  CrossRegionCopyRetainRule.struct_class = Types::CrossRegionCopyRetainRule
115
150
 
116
- CrossRegionCopyRule.add_member(:target_region, Shapes::ShapeRef.new(shape: TargetRegion, required: true, location_name: "TargetRegion"))
151
+ CrossRegionCopyRule.add_member(:target_region, Shapes::ShapeRef.new(shape: TargetRegion, location_name: "TargetRegion"))
152
+ CrossRegionCopyRule.add_member(:target, Shapes::ShapeRef.new(shape: Target, location_name: "Target"))
117
153
  CrossRegionCopyRule.add_member(:encrypted, Shapes::ShapeRef.new(shape: Encrypted, required: true, location_name: "Encrypted"))
118
154
  CrossRegionCopyRule.add_member(:cmk_arn, Shapes::ShapeRef.new(shape: CmkArn, location_name: "CmkArn"))
119
155
  CrossRegionCopyRule.add_member(:copy_tags, Shapes::ShapeRef.new(shape: CopyTagsNullable, location_name: "CopyTags"))
@@ -127,6 +163,19 @@ module Aws::DLM
127
163
 
128
164
  DeleteLifecyclePolicyResponse.struct_class = Types::DeleteLifecyclePolicyResponse
129
165
 
166
+ EncryptionConfiguration.add_member(:encrypted, Shapes::ShapeRef.new(shape: Encrypted, required: true, location_name: "Encrypted"))
167
+ EncryptionConfiguration.add_member(:cmk_arn, Shapes::ShapeRef.new(shape: CmkArn, location_name: "CmkArn"))
168
+ EncryptionConfiguration.struct_class = Types::EncryptionConfiguration
169
+
170
+ EventParameters.add_member(:event_type, Shapes::ShapeRef.new(shape: EventTypeValues, required: true, location_name: "EventType"))
171
+ EventParameters.add_member(:snapshot_owner, Shapes::ShapeRef.new(shape: SnapshotOwnerList, required: true, location_name: "SnapshotOwner"))
172
+ EventParameters.add_member(:description_regex, Shapes::ShapeRef.new(shape: DescriptionRegex, required: true, location_name: "DescriptionRegex"))
173
+ EventParameters.struct_class = Types::EventParameters
174
+
175
+ EventSource.add_member(:type, Shapes::ShapeRef.new(shape: EventSourceValues, required: true, location_name: "Type"))
176
+ EventSource.add_member(:parameters, Shapes::ShapeRef.new(shape: EventParameters, location_name: "Parameters"))
177
+ EventSource.struct_class = Types::EventSource
178
+
130
179
  FastRestoreRule.add_member(:count, Shapes::ShapeRef.new(shape: Count, location_name: "Count"))
131
180
  FastRestoreRule.add_member(:interval, Shapes::ShapeRef.new(shape: Interval, location_name: "Interval"))
132
181
  FastRestoreRule.add_member(:interval_unit, Shapes::ShapeRef.new(shape: RetentionIntervalUnitValues, location_name: "IntervalUnit"))
@@ -175,6 +224,7 @@ module Aws::DLM
175
224
  LifecyclePolicySummary.add_member(:description, Shapes::ShapeRef.new(shape: PolicyDescription, location_name: "Description"))
176
225
  LifecyclePolicySummary.add_member(:state, Shapes::ShapeRef.new(shape: GettablePolicyStateValues, location_name: "State"))
177
226
  LifecyclePolicySummary.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
227
+ LifecyclePolicySummary.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyTypeValues, location_name: "PolicyType"))
178
228
  LifecyclePolicySummary.struct_class = Types::LifecyclePolicySummary
179
229
 
180
230
  LifecyclePolicySummaryList.member = Shapes::ShapeRef.new(shape: LifecyclePolicySummary)
@@ -193,17 +243,23 @@ module Aws::DLM
193
243
  ParameterList.member = Shapes::ShapeRef.new(shape: Parameter)
194
244
 
195
245
  Parameters.add_member(:exclude_boot_volume, Shapes::ShapeRef.new(shape: ExcludeBootVolume, location_name: "ExcludeBootVolume"))
246
+ Parameters.add_member(:no_reboot, Shapes::ShapeRef.new(shape: NoReboot, location_name: "NoReboot"))
196
247
  Parameters.struct_class = Types::Parameters
197
248
 
198
249
  PolicyDetails.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyTypeValues, location_name: "PolicyType"))
199
250
  PolicyDetails.add_member(:resource_types, Shapes::ShapeRef.new(shape: ResourceTypeValuesList, location_name: "ResourceTypes"))
251
+ PolicyDetails.add_member(:resource_locations, Shapes::ShapeRef.new(shape: ResourceLocationList, location_name: "ResourceLocations"))
200
252
  PolicyDetails.add_member(:target_tags, Shapes::ShapeRef.new(shape: TargetTagList, location_name: "TargetTags"))
201
253
  PolicyDetails.add_member(:schedules, Shapes::ShapeRef.new(shape: ScheduleList, location_name: "Schedules"))
202
254
  PolicyDetails.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
255
+ PolicyDetails.add_member(:event_source, Shapes::ShapeRef.new(shape: EventSource, location_name: "EventSource"))
256
+ PolicyDetails.add_member(:actions, Shapes::ShapeRef.new(shape: ActionList, location_name: "Actions"))
203
257
  PolicyDetails.struct_class = Types::PolicyDetails
204
258
 
205
259
  PolicyIdList.member = Shapes::ShapeRef.new(shape: PolicyId)
206
260
 
261
+ ResourceLocationList.member = Shapes::ShapeRef.new(shape: ResourceLocationValues)
262
+
207
263
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
208
264
  ResourceNotFoundException.add_member(:code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "Code"))
209
265
  ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, location_name: "ResourceType"))
@@ -225,10 +281,22 @@ module Aws::DLM
225
281
  Schedule.add_member(:retain_rule, Shapes::ShapeRef.new(shape: RetainRule, location_name: "RetainRule"))
226
282
  Schedule.add_member(:fast_restore_rule, Shapes::ShapeRef.new(shape: FastRestoreRule, location_name: "FastRestoreRule"))
227
283
  Schedule.add_member(:cross_region_copy_rules, Shapes::ShapeRef.new(shape: CrossRegionCopyRules, location_name: "CrossRegionCopyRules"))
284
+ Schedule.add_member(:share_rules, Shapes::ShapeRef.new(shape: ShareRules, location_name: "ShareRules"))
228
285
  Schedule.struct_class = Types::Schedule
229
286
 
230
287
  ScheduleList.member = Shapes::ShapeRef.new(shape: Schedule)
231
288
 
289
+ ShareRule.add_member(:target_accounts, Shapes::ShapeRef.new(shape: ShareTargetAccountList, required: true, location_name: "TargetAccounts"))
290
+ ShareRule.add_member(:unshare_interval, Shapes::ShapeRef.new(shape: Interval, location_name: "UnshareInterval"))
291
+ ShareRule.add_member(:unshare_interval_unit, Shapes::ShapeRef.new(shape: RetentionIntervalUnitValues, location_name: "UnshareIntervalUnit"))
292
+ ShareRule.struct_class = Types::ShareRule
293
+
294
+ ShareRules.member = Shapes::ShapeRef.new(shape: ShareRule)
295
+
296
+ ShareTargetAccountList.member = Shapes::ShapeRef.new(shape: AwsAccountId)
297
+
298
+ SnapshotOwnerList.member = Shapes::ShapeRef.new(shape: AwsAccountId)
299
+
232
300
  Tag.add_member(:key, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Key"))
233
301
  Tag.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Value"))
234
302
  Tag.struct_class = Types::Tag
@@ -10,6 +10,45 @@
10
10
  module Aws::DLM
11
11
  module Types
12
12
 
13
+ # Specifies an action for an event-based policy.
14
+ #
15
+ # @note When making an API call, you may pass Action
16
+ # data as a hash:
17
+ #
18
+ # {
19
+ # name: "ActionName", # required
20
+ # cross_region_copy: [ # required
21
+ # {
22
+ # target: "Target", # required
23
+ # encryption_configuration: { # required
24
+ # encrypted: false, # required
25
+ # cmk_arn: "CmkArn",
26
+ # },
27
+ # retain_rule: {
28
+ # interval: 1,
29
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
30
+ # },
31
+ # },
32
+ # ],
33
+ # }
34
+ #
35
+ # @!attribute [rw] name
36
+ # A descriptive name for the action.
37
+ # @return [String]
38
+ #
39
+ # @!attribute [rw] cross_region_copy
40
+ # The rule for copying shared snapshots across Regions.
41
+ # @return [Array<Types::CrossRegionCopyAction>]
42
+ #
43
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/Action AWS API Documentation
44
+ #
45
+ class Action < Struct.new(
46
+ :name,
47
+ :cross_region_copy)
48
+ SENSITIVE = []
49
+ include Aws::Structure
50
+ end
51
+
13
52
  # @note When making an API call, you may pass CreateLifecyclePolicyRequest
14
53
  # data as a hash:
15
54
  #
@@ -18,8 +57,9 @@ module Aws::DLM
18
57
  # description: "PolicyDescription", # required
19
58
  # state: "ENABLED", # required, accepts ENABLED, DISABLED
20
59
  # policy_details: { # required
21
- # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT
60
+ # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY
22
61
  # resource_types: ["VOLUME"], # accepts VOLUME, INSTANCE
62
+ # resource_locations: ["CLOUD"], # accepts CLOUD, OUTPOST
23
63
  # target_tags: [
24
64
  # {
25
65
  # key: "String", # required
@@ -43,6 +83,7 @@ module Aws::DLM
43
83
  # },
44
84
  # ],
45
85
  # create_rule: {
86
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
46
87
  # interval: 1,
47
88
  # interval_unit: "HOURS", # accepts HOURS
48
89
  # times: ["Time"],
@@ -61,7 +102,8 @@ module Aws::DLM
61
102
  # },
62
103
  # cross_region_copy_rules: [
63
104
  # {
64
- # target_region: "TargetRegion", # required
105
+ # target_region: "TargetRegion",
106
+ # target: "Target",
65
107
  # encrypted: false, # required
66
108
  # cmk_arn: "CmkArn",
67
109
  # copy_tags: false,
@@ -71,11 +113,45 @@ module Aws::DLM
71
113
  # },
72
114
  # },
73
115
  # ],
116
+ # share_rules: [
117
+ # {
118
+ # target_accounts: ["AwsAccountId"], # required
119
+ # unshare_interval: 1,
120
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
121
+ # },
122
+ # ],
74
123
  # },
75
124
  # ],
76
125
  # parameters: {
77
126
  # exclude_boot_volume: false,
127
+ # no_reboot: false,
78
128
  # },
129
+ # event_source: {
130
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
131
+ # parameters: {
132
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
133
+ # snapshot_owner: ["AwsAccountId"], # required
134
+ # description_regex: "DescriptionRegex", # required
135
+ # },
136
+ # },
137
+ # actions: [
138
+ # {
139
+ # name: "ActionName", # required
140
+ # cross_region_copy: [ # required
141
+ # {
142
+ # target: "Target", # required
143
+ # encryption_configuration: { # required
144
+ # encrypted: false, # required
145
+ # cmk_arn: "CmkArn",
146
+ # },
147
+ # retain_rule: {
148
+ # interval: 1,
149
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
150
+ # },
151
+ # },
152
+ # ],
153
+ # },
154
+ # ],
79
155
  # },
80
156
  # tags: {
81
157
  # "TagKey" => "TagValue",
@@ -137,12 +213,28 @@ module Aws::DLM
137
213
  # data as a hash:
138
214
  #
139
215
  # {
216
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
140
217
  # interval: 1,
141
218
  # interval_unit: "HOURS", # accepts HOURS
142
219
  # times: ["Time"],
143
220
  # cron_expression: "CronExpression",
144
221
  # }
145
222
  #
223
+ # @!attribute [rw] location
224
+ # Specifies the destination for snapshots created by the policy. To
225
+ # create snapshots in the same Region as the source resource, specify
226
+ # `CLOUD`. To create snapshots on the same Outpost as the source
227
+ # resource, specify `OUTPOST_LOCAL`. If you omit this parameter,
228
+ # `CLOUD` is used by default.
229
+ #
230
+ # If the policy targets resources in an AWS Region, then you must
231
+ # create snapshots in the same Region as the source resource.
232
+ #
233
+ # If the policy targets resources on an Outpost, then you can create
234
+ # snapshots on the same Outpost as the source resource, or in the
235
+ # Region of that Outpost.
236
+ # @return [String]
237
+ #
146
238
  # @!attribute [rw] interval
147
239
  # The interval between snapshots. The supported values are 1, 2, 3, 4,
148
240
  # 6, 8, 12, and 24.
@@ -174,6 +266,7 @@ module Aws::DLM
174
266
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/CreateRule AWS API Documentation
175
267
  #
176
268
  class CreateRule < Struct.new(
269
+ :location,
177
270
  :interval,
178
271
  :interval_unit,
179
272
  :times,
@@ -182,6 +275,45 @@ module Aws::DLM
182
275
  include Aws::Structure
183
276
  end
184
277
 
278
+ # Specifies a rule for copying shared snapshots across Regions.
279
+ #
280
+ # @note When making an API call, you may pass CrossRegionCopyAction
281
+ # data as a hash:
282
+ #
283
+ # {
284
+ # target: "Target", # required
285
+ # encryption_configuration: { # required
286
+ # encrypted: false, # required
287
+ # cmk_arn: "CmkArn",
288
+ # },
289
+ # retain_rule: {
290
+ # interval: 1,
291
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
292
+ # },
293
+ # }
294
+ #
295
+ # @!attribute [rw] target
296
+ # The target Region.
297
+ # @return [String]
298
+ #
299
+ # @!attribute [rw] encryption_configuration
300
+ # The encryption settings for the copied snapshot.
301
+ # @return [Types::EncryptionConfiguration]
302
+ #
303
+ # @!attribute [rw] retain_rule
304
+ # Specifies the retention rule for cross-Region snapshot copies.
305
+ # @return [Types::CrossRegionCopyRetainRule]
306
+ #
307
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/CrossRegionCopyAction AWS API Documentation
308
+ #
309
+ class CrossRegionCopyAction < Struct.new(
310
+ :target,
311
+ :encryption_configuration,
312
+ :retain_rule)
313
+ SENSITIVE = []
314
+ include Aws::Structure
315
+ end
316
+
185
317
  # Specifies the retention rule for cross-Region snapshot copies.
186
318
  #
187
319
  # @note When making an API call, you may pass CrossRegionCopyRetainRule
@@ -216,7 +348,8 @@ module Aws::DLM
216
348
  # data as a hash:
217
349
  #
218
350
  # {
219
- # target_region: "TargetRegion", # required
351
+ # target_region: "TargetRegion",
352
+ # target: "Target",
220
353
  # encrypted: false, # required
221
354
  # cmk_arn: "CmkArn",
222
355
  # copy_tags: false,
@@ -227,7 +360,18 @@ module Aws::DLM
227
360
  # }
228
361
  #
229
362
  # @!attribute [rw] target_region
230
- # The target Region.
363
+ # The target Region for the snapshot copies.
364
+ #
365
+ # If you specify a target Region, you must omit **Target**. You cannot
366
+ # specify a target Region and a target Outpost in the same rule.
367
+ # @return [String]
368
+ #
369
+ # @!attribute [rw] target
370
+ # The Amazon Resource Name (ARN) of the target AWS Outpost for the
371
+ # snapshot copies.
372
+ #
373
+ # If you specify an ARN, you must omit **TargetRegion**. You cannot
374
+ # specify a target Region and a target Outpost in the same rule.
231
375
  # @return [String]
232
376
  #
233
377
  # @!attribute [rw] encrypted
@@ -256,6 +400,7 @@ module Aws::DLM
256
400
  #
257
401
  class CrossRegionCopyRule < Struct.new(
258
402
  :target_region,
403
+ :target,
259
404
  :encrypted,
260
405
  :cmk_arn,
261
406
  :copy_tags,
@@ -287,6 +432,115 @@ module Aws::DLM
287
432
  #
288
433
  class DeleteLifecyclePolicyResponse < Aws::EmptyStructure; end
289
434
 
435
+ # Specifies the encryption settings for shared snapshots that are copied
436
+ # across Regions.
437
+ #
438
+ # @note When making an API call, you may pass EncryptionConfiguration
439
+ # data as a hash:
440
+ #
441
+ # {
442
+ # encrypted: false, # required
443
+ # cmk_arn: "CmkArn",
444
+ # }
445
+ #
446
+ # @!attribute [rw] encrypted
447
+ # To encrypt a copy of an unencrypted snapshot when encryption by
448
+ # default is not enabled, enable encryption using this parameter.
449
+ # Copies of encrypted snapshots are encrypted, even if this parameter
450
+ # is false or when encryption by default is not enabled.
451
+ # @return [Boolean]
452
+ #
453
+ # @!attribute [rw] cmk_arn
454
+ # The Amazon Resource Name (ARN) of the AWS KMS customer master key
455
+ # (CMK) to use for EBS encryption. If this parameter is not specified,
456
+ # your AWS managed CMK for EBS is used.
457
+ # @return [String]
458
+ #
459
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/EncryptionConfiguration AWS API Documentation
460
+ #
461
+ class EncryptionConfiguration < Struct.new(
462
+ :encrypted,
463
+ :cmk_arn)
464
+ SENSITIVE = []
465
+ include Aws::Structure
466
+ end
467
+
468
+ # Specifies an event that triggers an event-based policy.
469
+ #
470
+ # @note When making an API call, you may pass EventParameters
471
+ # data as a hash:
472
+ #
473
+ # {
474
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
475
+ # snapshot_owner: ["AwsAccountId"], # required
476
+ # description_regex: "DescriptionRegex", # required
477
+ # }
478
+ #
479
+ # @!attribute [rw] event_type
480
+ # The type of event. Currently, only snapshot sharing events are
481
+ # supported.
482
+ # @return [String]
483
+ #
484
+ # @!attribute [rw] snapshot_owner
485
+ # The IDs of the AWS accounts that can trigger policy by sharing
486
+ # snapshots with your account. The policy only runs if one of the
487
+ # specified AWS accounts shares a snapshot with your account.
488
+ # @return [Array<String>]
489
+ #
490
+ # @!attribute [rw] description_regex
491
+ # The snapshot description that can trigger the policy. The
492
+ # description pattern is specified using a regular expression. The
493
+ # policy runs only if a snapshot with a description that matches the
494
+ # specified pattern is shared with your account.
495
+ #
496
+ # For example, specifying `^.*Created for policy:
497
+ # policy-1234567890abcdef0.*$` configures the policy to run only if
498
+ # snapshots created by policy `policy-1234567890abcdef0` are shared
499
+ # with your account.
500
+ # @return [String]
501
+ #
502
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/EventParameters AWS API Documentation
503
+ #
504
+ class EventParameters < Struct.new(
505
+ :event_type,
506
+ :snapshot_owner,
507
+ :description_regex)
508
+ SENSITIVE = []
509
+ include Aws::Structure
510
+ end
511
+
512
+ # Specifies an event that triggers an event-based policy.
513
+ #
514
+ # @note When making an API call, you may pass EventSource
515
+ # data as a hash:
516
+ #
517
+ # {
518
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
519
+ # parameters: {
520
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
521
+ # snapshot_owner: ["AwsAccountId"], # required
522
+ # description_regex: "DescriptionRegex", # required
523
+ # },
524
+ # }
525
+ #
526
+ # @!attribute [rw] type
527
+ # The source of the event. Currently only managed AWS CloudWatch
528
+ # Events rules are supported.
529
+ # @return [String]
530
+ #
531
+ # @!attribute [rw] parameters
532
+ # Information about the event.
533
+ # @return [Types::EventParameters]
534
+ #
535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/EventSource AWS API Documentation
536
+ #
537
+ class EventSource < Struct.new(
538
+ :type,
539
+ :parameters)
540
+ SENSITIVE = []
541
+ include Aws::Structure
542
+ end
543
+
290
544
  # Specifies a rule for enabling fast snapshot restore. You can enable
291
545
  # fast snapshot restore based on either a count or a time interval.
292
546
  #
@@ -545,13 +799,21 @@ module Aws::DLM
545
799
  # The tags.
546
800
  # @return [Hash<String,String>]
547
801
  #
802
+ # @!attribute [rw] policy_type
803
+ # The type of policy. `EBS_SNAPSHOT_MANAGEMENT` indicates that the
804
+ # policy manages the lifecycle of Amazon EBS snapshots.
805
+ # `IMAGE_MANAGEMENT` indicates that the policy manages the lifecycle
806
+ # of EBS-backed AMIs.
807
+ # @return [String]
808
+ #
548
809
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/LifecyclePolicySummary AWS API Documentation
549
810
  #
550
811
  class LifecyclePolicySummary < Struct.new(
551
812
  :policy_id,
552
813
  :description,
553
814
  :state,
554
- :tags)
815
+ :tags,
816
+ :policy_type)
555
817
  SENSITIVE = []
556
818
  include Aws::Structure
557
819
  end
@@ -618,6 +880,7 @@ module Aws::DLM
618
880
  #
619
881
  # {
620
882
  # exclude_boot_volume: false,
883
+ # no_reboot: false,
621
884
  # }
622
885
  #
623
886
  # @!attribute [rw] exclude_boot_volume
@@ -630,10 +893,19 @@ module Aws::DLM
630
893
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html
631
894
  # @return [Boolean]
632
895
  #
896
+ # @!attribute [rw] no_reboot
897
+ # Applies to AMI lifecycle policies only. Indicates whether targeted
898
+ # instances are rebooted when the lifecycle policy runs. `true`
899
+ # indicates that targeted instances are not rebooted when the policy
900
+ # runs. `false` indicates that target instances are rebooted when the
901
+ # policy runs. The default is `true` (instances are not rebooted).
902
+ # @return [Boolean]
903
+ #
633
904
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/Parameters AWS API Documentation
634
905
  #
635
906
  class Parameters < Struct.new(
636
- :exclude_boot_volume)
907
+ :exclude_boot_volume,
908
+ :no_reboot)
637
909
  SENSITIVE = []
638
910
  include Aws::Structure
639
911
  end
@@ -644,8 +916,9 @@ module Aws::DLM
644
916
  # data as a hash:
645
917
  #
646
918
  # {
647
- # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT
919
+ # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY
648
920
  # resource_types: ["VOLUME"], # accepts VOLUME, INSTANCE
921
+ # resource_locations: ["CLOUD"], # accepts CLOUD, OUTPOST
649
922
  # target_tags: [
650
923
  # {
651
924
  # key: "String", # required
@@ -669,6 +942,7 @@ module Aws::DLM
669
942
  # },
670
943
  # ],
671
944
  # create_rule: {
945
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
672
946
  # interval: 1,
673
947
  # interval_unit: "HOURS", # accepts HOURS
674
948
  # times: ["Time"],
@@ -687,7 +961,8 @@ module Aws::DLM
687
961
  # },
688
962
  # cross_region_copy_rules: [
689
963
  # {
690
- # target_region: "TargetRegion", # required
964
+ # target_region: "TargetRegion",
965
+ # target: "Target",
691
966
  # encrypted: false, # required
692
967
  # cmk_arn: "CmkArn",
693
968
  # copy_tags: false,
@@ -697,46 +972,129 @@ module Aws::DLM
697
972
  # },
698
973
  # },
699
974
  # ],
975
+ # share_rules: [
976
+ # {
977
+ # target_accounts: ["AwsAccountId"], # required
978
+ # unshare_interval: 1,
979
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
980
+ # },
981
+ # ],
700
982
  # },
701
983
  # ],
702
984
  # parameters: {
703
985
  # exclude_boot_volume: false,
986
+ # no_reboot: false,
987
+ # },
988
+ # event_source: {
989
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
990
+ # parameters: {
991
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
992
+ # snapshot_owner: ["AwsAccountId"], # required
993
+ # description_regex: "DescriptionRegex", # required
994
+ # },
704
995
  # },
996
+ # actions: [
997
+ # {
998
+ # name: "ActionName", # required
999
+ # cross_region_copy: [ # required
1000
+ # {
1001
+ # target: "Target", # required
1002
+ # encryption_configuration: { # required
1003
+ # encrypted: false, # required
1004
+ # cmk_arn: "CmkArn",
1005
+ # },
1006
+ # retain_rule: {
1007
+ # interval: 1,
1008
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
1009
+ # },
1010
+ # },
1011
+ # ],
1012
+ # },
1013
+ # ],
705
1014
  # }
706
1015
  #
707
1016
  # @!attribute [rw] policy_type
708
- # The valid target resource types and actions a policy can manage. The
709
- # default is EBS\_SNAPSHOT\_MANAGEMENT.
1017
+ # The valid target resource types and actions a policy can manage.
1018
+ # Specify `EBS_SNAPSHOT_MANAGEMENT` to create a lifecycle policy that
1019
+ # manages the lifecycle of Amazon EBS snapshots. Specify
1020
+ # `IMAGE_MANAGEMENT` to create a lifecycle policy that manages the
1021
+ # lifecycle of EBS-backed AMIs. Specify `EVENT_BASED_POLICY ` to
1022
+ # create an event-based policy that performs specific actions when a
1023
+ # defined event occurs in your AWS account.
1024
+ #
1025
+ # The default is `EBS_SNAPSHOT_MANAGEMENT`.
710
1026
  # @return [String]
711
1027
  #
712
1028
  # @!attribute [rw] resource_types
713
- # The resource type. Use VOLUME to create snapshots of individual
714
- # volumes or use INSTANCE to create multi-volume snapshots from the
715
- # volumes for an instance.
1029
+ # The target resource type for snapshot and AMI lifecycle policies.
1030
+ # Use `VOLUME `to create snapshots of individual volumes or use
1031
+ # `INSTANCE` to create multi-volume snapshots from the volumes for an
1032
+ # instance.
1033
+ #
1034
+ # This parameter is required for snapshot and AMI policies only. If
1035
+ # you are creating an event-based policy, omit this parameter.
1036
+ # @return [Array<String>]
1037
+ #
1038
+ # @!attribute [rw] resource_locations
1039
+ # The location of the resources to backup. If the source resources are
1040
+ # located in an AWS Region, specify `CLOUD`. If the source resources
1041
+ # are located on an AWS Outpost in your account, specify `OUTPOST`.
1042
+ #
1043
+ # If you specify `OUTPOST`, Amazon Data Lifecycle Manager backs up all
1044
+ # resources of the specified type with matching target tags across all
1045
+ # of the Outposts in your account.
716
1046
  # @return [Array<String>]
717
1047
  #
718
1048
  # @!attribute [rw] target_tags
719
1049
  # The single tag that identifies targeted resources for this policy.
1050
+ #
1051
+ # This parameter is required for snapshot and AMI policies only. If
1052
+ # you are creating an event-based policy, omit this parameter.
720
1053
  # @return [Array<Types::Tag>]
721
1054
  #
722
1055
  # @!attribute [rw] schedules
723
- # The schedules of policy-defined actions. A policy can have up to
724
- # four schedules - one mandatory schedule and up to three optional
725
- # schedules.
1056
+ # The schedules of policy-defined actions for snapshot and AMI
1057
+ # lifecycle policies. A policy can have up to four schedules—one
1058
+ # mandatory schedule and up to three optional schedules.
1059
+ #
1060
+ # This parameter is required for snapshot and AMI policies only. If
1061
+ # you are creating an event-based policy, omit this parameter.
726
1062
  # @return [Array<Types::Schedule>]
727
1063
  #
728
1064
  # @!attribute [rw] parameters
729
- # A set of optional parameters for the policy.
1065
+ # A set of optional parameters for snapshot and AMI lifecycle
1066
+ # policies.
1067
+ #
1068
+ # This parameter is required for snapshot and AMI policies only. If
1069
+ # you are creating an event-based policy, omit this parameter.
730
1070
  # @return [Types::Parameters]
731
1071
  #
1072
+ # @!attribute [rw] event_source
1073
+ # The event that triggers the event-based policy.
1074
+ #
1075
+ # This parameter is required for event-based policies only. If you are
1076
+ # creating a snapshot or AMI policy, omit this parameter.
1077
+ # @return [Types::EventSource]
1078
+ #
1079
+ # @!attribute [rw] actions
1080
+ # The actions to be performed when the event-based policy is
1081
+ # triggered. You can specify only one action per policy.
1082
+ #
1083
+ # This parameter is required for event-based policies only. If you are
1084
+ # creating a snapshot or AMI policy, omit this parameter.
1085
+ # @return [Array<Types::Action>]
1086
+ #
732
1087
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/PolicyDetails AWS API Documentation
733
1088
  #
734
1089
  class PolicyDetails < Struct.new(
735
1090
  :policy_type,
736
1091
  :resource_types,
1092
+ :resource_locations,
737
1093
  :target_tags,
738
1094
  :schedules,
739
- :parameters)
1095
+ :parameters,
1096
+ :event_source,
1097
+ :actions)
740
1098
  SENSITIVE = []
741
1099
  include Aws::Structure
742
1100
  end
@@ -804,7 +1162,7 @@ module Aws::DLM
804
1162
  include Aws::Structure
805
1163
  end
806
1164
 
807
- # Specifies a backup schedule.
1165
+ # Specifies a backup schedule for a snapshot or AMI lifecycle policy.
808
1166
  #
809
1167
  # @note When making an API call, you may pass Schedule
810
1168
  # data as a hash:
@@ -825,6 +1183,7 @@ module Aws::DLM
825
1183
  # },
826
1184
  # ],
827
1185
  # create_rule: {
1186
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
828
1187
  # interval: 1,
829
1188
  # interval_unit: "HOURS", # accepts HOURS
830
1189
  # times: ["Time"],
@@ -843,7 +1202,8 @@ module Aws::DLM
843
1202
  # },
844
1203
  # cross_region_copy_rules: [
845
1204
  # {
846
- # target_region: "TargetRegion", # required
1205
+ # target_region: "TargetRegion",
1206
+ # target: "Target",
847
1207
  # encrypted: false, # required
848
1208
  # cmk_arn: "CmkArn",
849
1209
  # copy_tags: false,
@@ -853,6 +1213,13 @@ module Aws::DLM
853
1213
  # },
854
1214
  # },
855
1215
  # ],
1216
+ # share_rules: [
1217
+ # {
1218
+ # target_accounts: ["AwsAccountId"], # required
1219
+ # unshare_interval: 1,
1220
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
1221
+ # },
1222
+ # ],
856
1223
  # }
857
1224
  #
858
1225
  # @!attribute [rw] name
@@ -891,8 +1258,18 @@ module Aws::DLM
891
1258
  #
892
1259
  # @!attribute [rw] cross_region_copy_rules
893
1260
  # The rule for cross-Region snapshot copies.
1261
+ #
1262
+ # You can only specify cross-Region copy rules for policies that
1263
+ # create snapshots in a Region. If the policy creates snapshots on an
1264
+ # Outpost, then you cannot copy the snapshots to a Region or to an
1265
+ # Outpost. If the policy creates snapshots in a Region, then snapshots
1266
+ # can be copied to up to three Regions or Outposts.
894
1267
  # @return [Array<Types::CrossRegionCopyRule>]
895
1268
  #
1269
+ # @!attribute [rw] share_rules
1270
+ # The rule for sharing snapshots with other AWS accounts.
1271
+ # @return [Array<Types::ShareRule>]
1272
+ #
896
1273
  # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/Schedule AWS API Documentation
897
1274
  #
898
1275
  class Schedule < Struct.new(
@@ -903,7 +1280,42 @@ module Aws::DLM
903
1280
  :create_rule,
904
1281
  :retain_rule,
905
1282
  :fast_restore_rule,
906
- :cross_region_copy_rules)
1283
+ :cross_region_copy_rules,
1284
+ :share_rules)
1285
+ SENSITIVE = []
1286
+ include Aws::Structure
1287
+ end
1288
+
1289
+ # Specifies a rule for sharing snapshots across AWS accounts.
1290
+ #
1291
+ # @note When making an API call, you may pass ShareRule
1292
+ # data as a hash:
1293
+ #
1294
+ # {
1295
+ # target_accounts: ["AwsAccountId"], # required
1296
+ # unshare_interval: 1,
1297
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
1298
+ # }
1299
+ #
1300
+ # @!attribute [rw] target_accounts
1301
+ # The IDs of the AWS accounts with which to share the snapshots.
1302
+ # @return [Array<String>]
1303
+ #
1304
+ # @!attribute [rw] unshare_interval
1305
+ # The period after which snapshots that are shared with other AWS
1306
+ # accounts are automatically unshared.
1307
+ # @return [Integer]
1308
+ #
1309
+ # @!attribute [rw] unshare_interval_unit
1310
+ # The unit of time for the automatic unsharing interval.
1311
+ # @return [String]
1312
+ #
1313
+ # @see http://docs.aws.amazon.com/goto/WebAPI/dlm-2018-01-12/ShareRule AWS API Documentation
1314
+ #
1315
+ class ShareRule < Struct.new(
1316
+ :target_accounts,
1317
+ :unshare_interval,
1318
+ :unshare_interval_unit)
907
1319
  SENSITIVE = []
908
1320
  include Aws::Structure
909
1321
  end
@@ -1004,8 +1416,9 @@ module Aws::DLM
1004
1416
  # state: "ENABLED", # accepts ENABLED, DISABLED
1005
1417
  # description: "PolicyDescription",
1006
1418
  # policy_details: {
1007
- # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT
1419
+ # policy_type: "EBS_SNAPSHOT_MANAGEMENT", # accepts EBS_SNAPSHOT_MANAGEMENT, IMAGE_MANAGEMENT, EVENT_BASED_POLICY
1008
1420
  # resource_types: ["VOLUME"], # accepts VOLUME, INSTANCE
1421
+ # resource_locations: ["CLOUD"], # accepts CLOUD, OUTPOST
1009
1422
  # target_tags: [
1010
1423
  # {
1011
1424
  # key: "String", # required
@@ -1029,6 +1442,7 @@ module Aws::DLM
1029
1442
  # },
1030
1443
  # ],
1031
1444
  # create_rule: {
1445
+ # location: "CLOUD", # accepts CLOUD, OUTPOST_LOCAL
1032
1446
  # interval: 1,
1033
1447
  # interval_unit: "HOURS", # accepts HOURS
1034
1448
  # times: ["Time"],
@@ -1047,7 +1461,8 @@ module Aws::DLM
1047
1461
  # },
1048
1462
  # cross_region_copy_rules: [
1049
1463
  # {
1050
- # target_region: "TargetRegion", # required
1464
+ # target_region: "TargetRegion",
1465
+ # target: "Target",
1051
1466
  # encrypted: false, # required
1052
1467
  # cmk_arn: "CmkArn",
1053
1468
  # copy_tags: false,
@@ -1057,11 +1472,45 @@ module Aws::DLM
1057
1472
  # },
1058
1473
  # },
1059
1474
  # ],
1475
+ # share_rules: [
1476
+ # {
1477
+ # target_accounts: ["AwsAccountId"], # required
1478
+ # unshare_interval: 1,
1479
+ # unshare_interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
1480
+ # },
1481
+ # ],
1060
1482
  # },
1061
1483
  # ],
1062
1484
  # parameters: {
1063
1485
  # exclude_boot_volume: false,
1486
+ # no_reboot: false,
1064
1487
  # },
1488
+ # event_source: {
1489
+ # type: "MANAGED_CWE", # required, accepts MANAGED_CWE
1490
+ # parameters: {
1491
+ # event_type: "shareSnapshot", # required, accepts shareSnapshot
1492
+ # snapshot_owner: ["AwsAccountId"], # required
1493
+ # description_regex: "DescriptionRegex", # required
1494
+ # },
1495
+ # },
1496
+ # actions: [
1497
+ # {
1498
+ # name: "ActionName", # required
1499
+ # cross_region_copy: [ # required
1500
+ # {
1501
+ # target: "Target", # required
1502
+ # encryption_configuration: { # required
1503
+ # encrypted: false, # required
1504
+ # cmk_arn: "CmkArn",
1505
+ # },
1506
+ # retain_rule: {
1507
+ # interval: 1,
1508
+ # interval_unit: "DAYS", # accepts DAYS, WEEKS, MONTHS, YEARS
1509
+ # },
1510
+ # },
1511
+ # ],
1512
+ # },
1513
+ # ],
1065
1514
  # },
1066
1515
  # }
1067
1516
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-dlm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.34.0
4
+ version: 1.39.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-16 00:00:00.000000000 Z
11
+ date: 2021-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.99.0
22
+ version: 3.112.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.99.0
32
+ version: 3.112.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement