aws-sdk-dlm 1.34.0 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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