aws-sdk-recyclebin 1.6.0 → 1.7.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: 1ca38bc32882fd2177d12049aa2e862710324391f0a4fee87f92f4ddb0955308
4
- data.tar.gz: b8e030288efec5d0f18a1b09903b1761ecfc209cc3243b56c81721715dd7cfe4
3
+ metadata.gz: 35bfe58e724308c363f220ae012d8bc1bfff6995c7312d5a80af1cbc5fde2859
4
+ data.tar.gz: 1b5aca716fee385a44d9690a4938386018765673e54814349f0907d931ac9d8a
5
5
  SHA512:
6
- metadata.gz: b58354ab01bf160b8f3ac52acf79d3bce0b9506bc4c08e05e3672c5db7b2252f22ad0088a0b0f610d64f276812bf5e482795b6cd2d39a2216e8a5168360bb889
7
- data.tar.gz: 8470b7dfa69c97f34f5b28d450edbb5f314d9df857260077eba666c892f95c5db38efbd9ff658bb792ea3a68c854548086ee17c9d3c6a3f3f1a131c339789f97
6
+ metadata.gz: adb7b22323cafab6b5a093d3b22d324d174297ca0d6d2772dc3d24c2284206f17b7d7cc0308df28ebd38971b2b0cd5f89dae41e82609c55f562fce90762b754e
7
+ data.tar.gz: f8e6ffde0850048044bef3feb5f60f60ce1c84320f3882354bf730740a6756a53326d8d05509ad6a11dfd52fc6f59afdb3c6eecb153e07a2f5e441dc6530a00c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.7.0 (2022-11-23)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for Rule Lock for Recycle Bin, which allows you to lock retention rules so that they can no longer be modified or deleted.
8
+
4
9
  1.6.0 (2022-10-25)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.7.0
@@ -410,6 +410,9 @@ module Aws::RecycleBin
410
410
  # Region in which the rule is created, even if the resources are not
411
411
  # tagged.
412
412
  #
413
+ # @option params [Types::LockConfiguration] :lock_configuration
414
+ # Information about the retention rule lock configuration.
415
+ #
413
416
  # @return [Types::CreateRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
414
417
  #
415
418
  # * {Types::CreateRuleResponse#identifier #identifier} => String
@@ -419,6 +422,8 @@ module Aws::RecycleBin
419
422
  # * {Types::CreateRuleResponse#resource_type #resource_type} => String
420
423
  # * {Types::CreateRuleResponse#resource_tags #resource_tags} => Array<Types::ResourceTag>
421
424
  # * {Types::CreateRuleResponse#status #status} => String
425
+ # * {Types::CreateRuleResponse#lock_configuration #lock_configuration} => Types::LockConfiguration
426
+ # * {Types::CreateRuleResponse#lock_state #lock_state} => String
422
427
  #
423
428
  # @example Request syntax with placeholder values
424
429
  #
@@ -441,6 +446,12 @@ module Aws::RecycleBin
441
446
  # resource_tag_value: "ResourceTagValue",
442
447
  # },
443
448
  # ],
449
+ # lock_configuration: {
450
+ # unlock_delay: { # required
451
+ # unlock_delay_value: 1, # required
452
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
453
+ # },
454
+ # },
444
455
  # })
445
456
  #
446
457
  # @example Response structure
@@ -457,6 +468,9 @@ module Aws::RecycleBin
457
468
  # resp.resource_tags[0].resource_tag_key #=> String
458
469
  # resp.resource_tags[0].resource_tag_value #=> String
459
470
  # resp.status #=> String, one of "pending", "available"
471
+ # resp.lock_configuration.unlock_delay.unlock_delay_value #=> Integer
472
+ # resp.lock_configuration.unlock_delay.unlock_delay_unit #=> String, one of "DAYS"
473
+ # resp.lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
460
474
  #
461
475
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/CreateRule AWS API Documentation
462
476
  #
@@ -508,6 +522,9 @@ module Aws::RecycleBin
508
522
  # * {Types::GetRuleResponse#retention_period #retention_period} => Types::RetentionPeriod
509
523
  # * {Types::GetRuleResponse#resource_tags #resource_tags} => Array<Types::ResourceTag>
510
524
  # * {Types::GetRuleResponse#status #status} => String
525
+ # * {Types::GetRuleResponse#lock_configuration #lock_configuration} => Types::LockConfiguration
526
+ # * {Types::GetRuleResponse#lock_state #lock_state} => String
527
+ # * {Types::GetRuleResponse#lock_end_time #lock_end_time} => Time
511
528
  #
512
529
  # @example Request syntax with placeholder values
513
530
  #
@@ -526,6 +543,10 @@ module Aws::RecycleBin
526
543
  # resp.resource_tags[0].resource_tag_key #=> String
527
544
  # resp.resource_tags[0].resource_tag_value #=> String
528
545
  # resp.status #=> String, one of "pending", "available"
546
+ # resp.lock_configuration.unlock_delay.unlock_delay_value #=> Integer
547
+ # resp.lock_configuration.unlock_delay.unlock_delay_unit #=> String, one of "DAYS"
548
+ # resp.lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
549
+ # resp.lock_end_time #=> Time
529
550
  #
530
551
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/GetRule AWS API Documentation
531
552
  #
@@ -557,6 +578,10 @@ module Aws::RecycleBin
557
578
  # Information about the resource tags used to identify resources that
558
579
  # are retained by the retention rule.
559
580
  #
581
+ # @option params [String] :lock_state
582
+ # The lock state of the retention rules to list. Only retention rules
583
+ # with the specified lock state are returned.
584
+ #
560
585
  # @return [Types::ListRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
561
586
  #
562
587
  # * {Types::ListRulesResponse#rules #rules} => Array<Types::RuleSummary>
@@ -576,6 +601,7 @@ module Aws::RecycleBin
576
601
  # resource_tag_value: "ResourceTagValue",
577
602
  # },
578
603
  # ],
604
+ # lock_state: "locked", # accepts locked, pending_unlock, unlocked
579
605
  # })
580
606
  #
581
607
  # @example Response structure
@@ -585,6 +611,7 @@ module Aws::RecycleBin
585
611
  # resp.rules[0].description #=> String
586
612
  # resp.rules[0].retention_period.retention_period_value #=> Integer
587
613
  # resp.rules[0].retention_period.retention_period_unit #=> String, one of "DAYS"
614
+ # resp.rules[0].lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
588
615
  # resp.next_token #=> String
589
616
  #
590
617
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/ListRules AWS API Documentation
@@ -626,6 +653,62 @@ module Aws::RecycleBin
626
653
  req.send_request(options)
627
654
  end
628
655
 
656
+ # Locks a retention rule. A locked retention rule can't be modified or
657
+ # deleted.
658
+ #
659
+ # @option params [required, String] :identifier
660
+ # The unique ID of the retention rule.
661
+ #
662
+ # @option params [required, Types::LockConfiguration] :lock_configuration
663
+ # Information about the retention rule lock configuration.
664
+ #
665
+ # @return [Types::LockRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
666
+ #
667
+ # * {Types::LockRuleResponse#identifier #identifier} => String
668
+ # * {Types::LockRuleResponse#description #description} => String
669
+ # * {Types::LockRuleResponse#resource_type #resource_type} => String
670
+ # * {Types::LockRuleResponse#retention_period #retention_period} => Types::RetentionPeriod
671
+ # * {Types::LockRuleResponse#resource_tags #resource_tags} => Array<Types::ResourceTag>
672
+ # * {Types::LockRuleResponse#status #status} => String
673
+ # * {Types::LockRuleResponse#lock_configuration #lock_configuration} => Types::LockConfiguration
674
+ # * {Types::LockRuleResponse#lock_state #lock_state} => String
675
+ #
676
+ # @example Request syntax with placeholder values
677
+ #
678
+ # resp = client.lock_rule({
679
+ # identifier: "RuleIdentifier", # required
680
+ # lock_configuration: { # required
681
+ # unlock_delay: { # required
682
+ # unlock_delay_value: 1, # required
683
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
684
+ # },
685
+ # },
686
+ # })
687
+ #
688
+ # @example Response structure
689
+ #
690
+ # resp.identifier #=> String
691
+ # resp.description #=> String
692
+ # resp.resource_type #=> String, one of "EBS_SNAPSHOT", "EC2_IMAGE"
693
+ # resp.retention_period.retention_period_value #=> Integer
694
+ # resp.retention_period.retention_period_unit #=> String, one of "DAYS"
695
+ # resp.resource_tags #=> Array
696
+ # resp.resource_tags[0].resource_tag_key #=> String
697
+ # resp.resource_tags[0].resource_tag_value #=> String
698
+ # resp.status #=> String, one of "pending", "available"
699
+ # resp.lock_configuration.unlock_delay.unlock_delay_value #=> Integer
700
+ # resp.lock_configuration.unlock_delay.unlock_delay_unit #=> String, one of "DAYS"
701
+ # resp.lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
702
+ #
703
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/LockRule AWS API Documentation
704
+ #
705
+ # @overload lock_rule(params = {})
706
+ # @param [Hash] params ({})
707
+ def lock_rule(params = {}, options = {})
708
+ req = build_request(:lock_rule, params)
709
+ req.send_request(options)
710
+ end
711
+
629
712
  # Assigns tags to the specified retention rule.
630
713
  #
631
714
  # @option params [required, String] :resource_arn
@@ -657,6 +740,55 @@ module Aws::RecycleBin
657
740
  req.send_request(options)
658
741
  end
659
742
 
743
+ # Unlocks a retention rule. After a retention rule is unlocked, it can
744
+ # be modified or deleted only after the unlock delay period expires.
745
+ #
746
+ # @option params [required, String] :identifier
747
+ # The unique ID of the retention rule.
748
+ #
749
+ # @return [Types::UnlockRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
750
+ #
751
+ # * {Types::UnlockRuleResponse#identifier #identifier} => String
752
+ # * {Types::UnlockRuleResponse#description #description} => String
753
+ # * {Types::UnlockRuleResponse#resource_type #resource_type} => String
754
+ # * {Types::UnlockRuleResponse#retention_period #retention_period} => Types::RetentionPeriod
755
+ # * {Types::UnlockRuleResponse#resource_tags #resource_tags} => Array<Types::ResourceTag>
756
+ # * {Types::UnlockRuleResponse#status #status} => String
757
+ # * {Types::UnlockRuleResponse#lock_configuration #lock_configuration} => Types::LockConfiguration
758
+ # * {Types::UnlockRuleResponse#lock_state #lock_state} => String
759
+ # * {Types::UnlockRuleResponse#lock_end_time #lock_end_time} => Time
760
+ #
761
+ # @example Request syntax with placeholder values
762
+ #
763
+ # resp = client.unlock_rule({
764
+ # identifier: "RuleIdentifier", # required
765
+ # })
766
+ #
767
+ # @example Response structure
768
+ #
769
+ # resp.identifier #=> String
770
+ # resp.description #=> String
771
+ # resp.resource_type #=> String, one of "EBS_SNAPSHOT", "EC2_IMAGE"
772
+ # resp.retention_period.retention_period_value #=> Integer
773
+ # resp.retention_period.retention_period_unit #=> String, one of "DAYS"
774
+ # resp.resource_tags #=> Array
775
+ # resp.resource_tags[0].resource_tag_key #=> String
776
+ # resp.resource_tags[0].resource_tag_value #=> String
777
+ # resp.status #=> String, one of "pending", "available"
778
+ # resp.lock_configuration.unlock_delay.unlock_delay_value #=> Integer
779
+ # resp.lock_configuration.unlock_delay.unlock_delay_unit #=> String, one of "DAYS"
780
+ # resp.lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
781
+ # resp.lock_end_time #=> Time
782
+ #
783
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UnlockRule AWS API Documentation
784
+ #
785
+ # @overload unlock_rule(params = {})
786
+ # @param [Hash] params ({})
787
+ def unlock_rule(params = {}, options = {})
788
+ req = build_request(:unlock_rule, params)
789
+ req.send_request(options)
790
+ end
791
+
660
792
  # Unassigns a tag from a retention rule.
661
793
  #
662
794
  # @option params [required, String] :resource_arn
@@ -684,9 +816,12 @@ module Aws::RecycleBin
684
816
  req.send_request(options)
685
817
  end
686
818
 
687
- # Updates an existing Recycle Bin retention rule. For more information,
688
- # see [ Update Recycle Bin retention rules][1] in the *Amazon Elastic
689
- # Compute Cloud User Guide*.
819
+ # Updates an existing Recycle Bin retention rule. You can update a
820
+ # retention rule's description, resource tags, and retention period at
821
+ # any time after creation. You can't update a retention rule's
822
+ # resource type after creation. For more information, see [ Update
823
+ # Recycle Bin retention rules][1] in the *Amazon Elastic Compute Cloud
824
+ # User Guide*.
690
825
  #
691
826
  #
692
827
  #
@@ -703,10 +838,10 @@ module Aws::RecycleBin
703
838
  # The retention rule description.
704
839
  #
705
840
  # @option params [String] :resource_type
706
- # The resource type to be retained by the retention rule. Currently,
707
- # only Amazon EBS snapshots and EBS-backed AMIs are supported. To retain
708
- # snapshots, specify `EBS_SNAPSHOT`. To retain EBS-backed AMIs, specify
709
- # `EC2_IMAGE`.
841
+ # <note markdown="1"> This parameter is currently not supported. You can't update a
842
+ # retention rule's resource type after creation.
843
+ #
844
+ # </note>
710
845
  #
711
846
  # @option params [Array<Types::ResourceTag>] :resource_tags
712
847
  # Specifies the resource tags to use to identify resources that are to
@@ -734,6 +869,8 @@ module Aws::RecycleBin
734
869
  # * {Types::UpdateRuleResponse#resource_type #resource_type} => String
735
870
  # * {Types::UpdateRuleResponse#resource_tags #resource_tags} => Array&lt;Types::ResourceTag&gt;
736
871
  # * {Types::UpdateRuleResponse#status #status} => String
872
+ # * {Types::UpdateRuleResponse#lock_state #lock_state} => String
873
+ # * {Types::UpdateRuleResponse#lock_end_time #lock_end_time} => Time
737
874
  #
738
875
  # @example Request syntax with placeholder values
739
876
  #
@@ -764,6 +901,8 @@ module Aws::RecycleBin
764
901
  # resp.resource_tags[0].resource_tag_key #=> String
765
902
  # resp.resource_tags[0].resource_tag_value #=> String
766
903
  # resp.status #=> String, one of "pending", "available"
904
+ # resp.lock_state #=> String, one of "locked", "pending_unlock", "unlocked"
905
+ # resp.lock_end_time #=> Time
767
906
  #
768
907
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UpdateRule AWS API Documentation
769
908
  #
@@ -787,7 +926,7 @@ module Aws::RecycleBin
787
926
  params: params,
788
927
  config: config)
789
928
  context[:gem_name] = 'aws-sdk-recyclebin'
790
- context[:gem_version] = '1.6.0'
929
+ context[:gem_version] = '1.7.0'
791
930
  Seahorse::Client::Request.new(handlers, context)
792
931
  end
793
932
 
@@ -13,6 +13,8 @@ module Aws::RecycleBin
13
13
 
14
14
  include Seahorse::Model
15
15
 
16
+ ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
17
+ ConflictExceptionReason = Shapes::StringShape.new(name: 'ConflictExceptionReason')
16
18
  CreateRuleRequest = Shapes::StructureShape.new(name: 'CreateRuleRequest')
17
19
  CreateRuleResponse = Shapes::StructureShape.new(name: 'CreateRuleResponse')
18
20
  DeleteRuleRequest = Shapes::StructureShape.new(name: 'DeleteRuleRequest')
@@ -26,6 +28,10 @@ module Aws::RecycleBin
26
28
  ListRulesResponse = Shapes::StructureShape.new(name: 'ListRulesResponse')
27
29
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
28
30
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
31
+ LockConfiguration = Shapes::StructureShape.new(name: 'LockConfiguration')
32
+ LockRuleRequest = Shapes::StructureShape.new(name: 'LockRuleRequest')
33
+ LockRuleResponse = Shapes::StructureShape.new(name: 'LockRuleResponse')
34
+ LockState = Shapes::StringShape.new(name: 'LockState')
29
35
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
30
36
  NextToken = Shapes::StringShape.new(name: 'NextToken')
31
37
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
@@ -52,6 +58,12 @@ module Aws::RecycleBin
52
58
  TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
53
59
  TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
54
60
  TagValue = Shapes::StringShape.new(name: 'TagValue')
61
+ TimeStamp = Shapes::TimestampShape.new(name: 'TimeStamp')
62
+ UnlockDelay = Shapes::StructureShape.new(name: 'UnlockDelay')
63
+ UnlockDelayUnit = Shapes::StringShape.new(name: 'UnlockDelayUnit')
64
+ UnlockDelayValue = Shapes::IntegerShape.new(name: 'UnlockDelayValue')
65
+ UnlockRuleRequest = Shapes::StructureShape.new(name: 'UnlockRuleRequest')
66
+ UnlockRuleResponse = Shapes::StructureShape.new(name: 'UnlockRuleResponse')
55
67
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
56
68
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
57
69
  UpdateRuleRequest = Shapes::StructureShape.new(name: 'UpdateRuleRequest')
@@ -59,11 +71,16 @@ module Aws::RecycleBin
59
71
  ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
60
72
  ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason')
61
73
 
74
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
75
+ ConflictException.add_member(:reason, Shapes::ShapeRef.new(shape: ConflictExceptionReason, location_name: "Reason"))
76
+ ConflictException.struct_class = Types::ConflictException
77
+
62
78
  CreateRuleRequest.add_member(:retention_period, Shapes::ShapeRef.new(shape: RetentionPeriod, required: true, location_name: "RetentionPeriod"))
63
79
  CreateRuleRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
64
80
  CreateRuleRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
65
81
  CreateRuleRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
66
82
  CreateRuleRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
83
+ CreateRuleRequest.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, location_name: "LockConfiguration"))
67
84
  CreateRuleRequest.struct_class = Types::CreateRuleRequest
68
85
 
69
86
  CreateRuleResponse.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, location_name: "Identifier"))
@@ -73,6 +90,8 @@ module Aws::RecycleBin
73
90
  CreateRuleResponse.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
74
91
  CreateRuleResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
75
92
  CreateRuleResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleStatus, location_name: "Status"))
93
+ CreateRuleResponse.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, location_name: "LockConfiguration"))
94
+ CreateRuleResponse.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
76
95
  CreateRuleResponse.struct_class = Types::CreateRuleResponse
77
96
 
78
97
  DeleteRuleRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, required: true, location: "uri", location_name: "identifier"))
@@ -89,6 +108,9 @@ module Aws::RecycleBin
89
108
  GetRuleResponse.add_member(:retention_period, Shapes::ShapeRef.new(shape: RetentionPeriod, location_name: "RetentionPeriod"))
90
109
  GetRuleResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
91
110
  GetRuleResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleStatus, location_name: "Status"))
111
+ GetRuleResponse.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, location_name: "LockConfiguration"))
112
+ GetRuleResponse.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
113
+ GetRuleResponse.add_member(:lock_end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LockEndTime"))
92
114
  GetRuleResponse.struct_class = Types::GetRuleResponse
93
115
 
94
116
  InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
@@ -98,6 +120,7 @@ module Aws::RecycleBin
98
120
  ListRulesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
99
121
  ListRulesRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
100
122
  ListRulesRequest.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
123
+ ListRulesRequest.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
101
124
  ListRulesRequest.struct_class = Types::ListRulesRequest
102
125
 
103
126
  ListRulesResponse.add_member(:rules, Shapes::ShapeRef.new(shape: RuleSummaryList, location_name: "Rules"))
@@ -110,6 +133,23 @@ module Aws::RecycleBin
110
133
  ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
111
134
  ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse
112
135
 
136
+ LockConfiguration.add_member(:unlock_delay, Shapes::ShapeRef.new(shape: UnlockDelay, required: true, location_name: "UnlockDelay"))
137
+ LockConfiguration.struct_class = Types::LockConfiguration
138
+
139
+ LockRuleRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, required: true, location: "uri", location_name: "identifier"))
140
+ LockRuleRequest.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, required: true, location_name: "LockConfiguration"))
141
+ LockRuleRequest.struct_class = Types::LockRuleRequest
142
+
143
+ LockRuleResponse.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, location_name: "Identifier"))
144
+ LockRuleResponse.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
145
+ LockRuleResponse.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
146
+ LockRuleResponse.add_member(:retention_period, Shapes::ShapeRef.new(shape: RetentionPeriod, location_name: "RetentionPeriod"))
147
+ LockRuleResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
148
+ LockRuleResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleStatus, location_name: "Status"))
149
+ LockRuleResponse.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, location_name: "LockConfiguration"))
150
+ LockRuleResponse.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
151
+ LockRuleResponse.struct_class = Types::LockRuleResponse
152
+
113
153
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
114
154
  ResourceNotFoundException.add_member(:reason, Shapes::ShapeRef.new(shape: ResourceNotFoundExceptionReason, location_name: "Reason"))
115
155
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
@@ -127,6 +167,7 @@ module Aws::RecycleBin
127
167
  RuleSummary.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, location_name: "Identifier"))
128
168
  RuleSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
129
169
  RuleSummary.add_member(:retention_period, Shapes::ShapeRef.new(shape: RetentionPeriod, location_name: "RetentionPeriod"))
170
+ RuleSummary.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
130
171
  RuleSummary.struct_class = Types::RuleSummary
131
172
 
132
173
  RuleSummaryList.member = Shapes::ShapeRef.new(shape: RuleSummary)
@@ -149,6 +190,24 @@ module Aws::RecycleBin
149
190
 
150
191
  TagResourceResponse.struct_class = Types::TagResourceResponse
151
192
 
193
+ UnlockDelay.add_member(:unlock_delay_value, Shapes::ShapeRef.new(shape: UnlockDelayValue, required: true, location_name: "UnlockDelayValue"))
194
+ UnlockDelay.add_member(:unlock_delay_unit, Shapes::ShapeRef.new(shape: UnlockDelayUnit, required: true, location_name: "UnlockDelayUnit"))
195
+ UnlockDelay.struct_class = Types::UnlockDelay
196
+
197
+ UnlockRuleRequest.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, required: true, location: "uri", location_name: "identifier"))
198
+ UnlockRuleRequest.struct_class = Types::UnlockRuleRequest
199
+
200
+ UnlockRuleResponse.add_member(:identifier, Shapes::ShapeRef.new(shape: RuleIdentifier, location_name: "Identifier"))
201
+ UnlockRuleResponse.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
202
+ UnlockRuleResponse.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
203
+ UnlockRuleResponse.add_member(:retention_period, Shapes::ShapeRef.new(shape: RetentionPeriod, location_name: "RetentionPeriod"))
204
+ UnlockRuleResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
205
+ UnlockRuleResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleStatus, location_name: "Status"))
206
+ UnlockRuleResponse.add_member(:lock_configuration, Shapes::ShapeRef.new(shape: LockConfiguration, location_name: "LockConfiguration"))
207
+ UnlockRuleResponse.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
208
+ UnlockRuleResponse.add_member(:lock_end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LockEndTime"))
209
+ UnlockRuleResponse.struct_class = Types::UnlockRuleResponse
210
+
152
211
  UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: RuleArn, required: true, location: "uri", location_name: "resourceArn"))
153
212
  UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location: "querystring", location_name: "tagKeys"))
154
213
  UntagResourceRequest.struct_class = Types::UntagResourceRequest
@@ -168,6 +227,8 @@ module Aws::RecycleBin
168
227
  UpdateRuleResponse.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
169
228
  UpdateRuleResponse.add_member(:resource_tags, Shapes::ShapeRef.new(shape: ResourceTags, location_name: "ResourceTags"))
170
229
  UpdateRuleResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleStatus, location_name: "Status"))
230
+ UpdateRuleResponse.add_member(:lock_state, Shapes::ShapeRef.new(shape: LockState, location_name: "LockState"))
231
+ UpdateRuleResponse.add_member(:lock_end_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LockEndTime"))
171
232
  UpdateRuleResponse.struct_class = Types::UpdateRuleResponse
172
233
 
173
234
  ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
@@ -212,6 +273,7 @@ module Aws::RecycleBin
212
273
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
213
274
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
214
275
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
276
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
215
277
  end)
216
278
 
217
279
  api.add_operation(:get_rule, Seahorse::Model::Operation.new.tap do |o|
@@ -252,6 +314,18 @@ module Aws::RecycleBin
252
314
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
253
315
  end)
254
316
 
317
+ api.add_operation(:lock_rule, Seahorse::Model::Operation.new.tap do |o|
318
+ o.name = "LockRule"
319
+ o.http_method = "PATCH"
320
+ o.http_request_uri = "/rules/{identifier}/lock"
321
+ o.input = Shapes::ShapeRef.new(shape: LockRuleRequest)
322
+ o.output = Shapes::ShapeRef.new(shape: LockRuleResponse)
323
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
324
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
325
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
326
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
327
+ end)
328
+
255
329
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
256
330
  o.name = "TagResource"
257
331
  o.http_method = "POST"
@@ -264,6 +338,18 @@ module Aws::RecycleBin
264
338
  o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
265
339
  end)
266
340
 
341
+ api.add_operation(:unlock_rule, Seahorse::Model::Operation.new.tap do |o|
342
+ o.name = "UnlockRule"
343
+ o.http_method = "PATCH"
344
+ o.http_request_uri = "/rules/{identifier}/unlock"
345
+ o.input = Shapes::ShapeRef.new(shape: UnlockRuleRequest)
346
+ o.output = Shapes::ShapeRef.new(shape: UnlockRuleResponse)
347
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
348
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
349
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
350
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
351
+ end)
352
+
267
353
  api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o|
268
354
  o.name = "UntagResource"
269
355
  o.http_method = "DELETE"
@@ -284,6 +370,7 @@ module Aws::RecycleBin
284
370
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
285
371
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
286
372
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
373
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
287
374
  end)
288
375
  end
289
376
 
@@ -50,6 +50,9 @@ module Aws::RecycleBin
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?
@@ -29,82 +29,82 @@ module Aws::RecycleBin
29
29
  # @api private
30
30
  RULES = <<-JSON
31
31
  eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL3JiaW4tZmlwcy57UmVnaW9ufS57UGFydGl0
77
- aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
78
- fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0
79
- aW9ucyI6W10sImVycm9yIjoiRklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFi
80
- bGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUg
81
- b3IgYm90aCIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
82
- biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0s
83
- dHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
84
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6Imdl
85
- dEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3Vw
86
- cG9ydHNGSVBTIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
87
- aXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9u
88
- cyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vcmJpbi1maXBzLntS
89
- ZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRp
90
- ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfSx7
91
- ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgaXMgZW5hYmxlZCBidXQg
92
- dGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBGSVBTIiwidHlwZSI6
93
- ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFs
94
- cyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0sInR5
95
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9v
96
- bGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4iOiJnZXRBdHRyIiwiYXJn
97
- diI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sInN1cHBvcnRzRHVhbFN0
98
- YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
99
- IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9yYmluLntSZWdpb259
100
- LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
101
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
102
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxl
103
- ZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3Rh
104
- Y2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBv
105
- aW50Ijp7InVybCI6Imh0dHBzOi8vcmJpbi57UmVnaW9ufS57UGFydGl0aW9u
106
- UmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6
107
- e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0=
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOnRydWUsImRvY3VtZW50
33
+ YXRpb24iOiJUaGUgQVdTIHJlZ2lvbiB1c2VkIHRvIGRpc3BhdGNoIHRoZSBy
34
+ ZXF1ZXN0LiIsInR5cGUiOiJTdHJpbmcifSwiVXNlRHVhbFN0YWNrIjp7ImJ1
35
+ aWx0SW4iOiJBV1M6OlVzZUR1YWxTdGFjayIsInJlcXVpcmVkIjp0cnVlLCJk
36
+ ZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRhdGlvbiI6IldoZW4gdHJ1ZSwgdXNl
37
+ IHRoZSBkdWFsLXN0YWNrIGVuZHBvaW50LiBJZiB0aGUgY29uZmlndXJlZCBl
38
+ bmRwb2ludCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2ssIGRpc3BhdGNo
39
+ aW5nIHRoZSByZXF1ZXN0IE1BWSByZXR1cm4gYW4gZXJyb3IuIiwidHlwZSI6
40
+ IkJvb2xlYW4ifSwiVXNlRklQUyI6eyJidWlsdEluIjoiQVdTOjpVc2VGSVBT
41
+ IiwicmVxdWlyZWQiOnRydWUsImRlZmF1bHQiOmZhbHNlLCJkb2N1bWVudGF0
42
+ aW9uIjoiV2hlbiB0cnVlLCBzZW5kIHRoaXMgcmVxdWVzdCB0byB0aGUgRklQ
43
+ Uy1jb21wbGlhbnQgcmVnaW9uYWwgZW5kcG9pbnQuIElmIHRoZSBjb25maWd1
44
+ cmVkIGVuZHBvaW50IGRvZXMgbm90IGhhdmUgYSBGSVBTIGNvbXBsaWFudCBl
45
+ bmRwb2ludCwgZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3Qgd2lsbCByZXR1cm4g
46
+ YW4gZXJyb3IuIiwidHlwZSI6IkJvb2xlYW4ifSwiRW5kcG9pbnQiOnsiYnVp
47
+ bHRJbiI6IlNESzo6RW5kcG9pbnQiLCJyZXF1aXJlZCI6ZmFsc2UsImRvY3Vt
48
+ ZW50YXRpb24iOiJPdmVycmlkZSB0aGUgZW5kcG9pbnQgdXNlZCB0byBzZW5k
49
+ IHRoaXMgcmVxdWVzdCIsInR5cGUiOiJTdHJpbmcifX0sInJ1bGVzIjpbeyJj
50
+ b25kaXRpb25zIjpbeyJmbiI6ImF3cy5wYXJ0aXRpb24iLCJhcmd2IjpbeyJy
51
+ ZWYiOiJSZWdpb24ifV0sImFzc2lnbiI6IlBhcnRpdGlvblJlc3VsdCJ9XSwi
52
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJp
53
+ c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfSx7ImZuIjoicGFy
54
+ c2VVUkwiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XSwiYXNzaWduIjoi
55
+ dXJsIn1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
56
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBT
57
+ In0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJ
58
+ UFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5
59
+ cGUiOiJlcnJvciJ9LHsiY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwi
60
+ cnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIs
61
+ ImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0sImVycm9y
62
+ IjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3Rv
63
+ bSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5cGUiOiJlcnJvciJ9
64
+ LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6eyJyZWYiOiJF
65
+ bmRwb2ludCJ9LCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
66
+ IjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
67
+ YW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19LHsi
68
+ Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0
69
+ YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
70
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJm
71
+ biI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQi
72
+ fSwic3VwcG9ydHNGSVBTIl19XX0seyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJh
73
+ cmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBh
74
+ cnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlw
75
+ ZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50
76
+ Ijp7InVybCI6Imh0dHBzOi8vcmJpbi1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9yYmluLWZpcHMue1Jl
89
+ Z2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGll
90
+ cyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19LHsi
91
+ Y29uZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1dCB0
92
+ aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBlIjoi
93
+ ZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxz
94
+ IiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwidHlw
95
+ ZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29s
96
+ ZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2
97
+ IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3Rh
98
+ Y2siXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMi
99
+ OltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL3JiaW4ue1JlZ2lvbn0u
100
+ e1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJvcGVy
101
+ dGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfSx7
102
+ ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkR1YWxTdGFjayBpcyBlbmFibGVk
103
+ IGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IER1YWxTdGFj
104
+ ayIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbXSwiZW5kcG9p
105
+ bnQiOnsidXJsIjoiaHR0cHM6Ly9yYmluLntSZWdpb259LntQYXJ0aXRpb25S
106
+ ZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7
107
+ fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
108
108
 
109
109
  JSON
110
110
  end
@@ -81,6 +81,20 @@ module Aws::RecycleBin
81
81
  end
82
82
  end
83
83
 
84
+ class LockRule
85
+ def self.build(context)
86
+ unless context.config.regional_endpoint
87
+ endpoint = context.config.endpoint.to_s
88
+ end
89
+ Aws::RecycleBin::EndpointParameters.new(
90
+ region: context.config.region,
91
+ use_dual_stack: context.config.use_dualstack_endpoint,
92
+ use_fips: context.config.use_fips_endpoint,
93
+ endpoint: endpoint,
94
+ )
95
+ end
96
+ end
97
+
84
98
  class TagResource
85
99
  def self.build(context)
86
100
  unless context.config.regional_endpoint
@@ -95,6 +109,20 @@ module Aws::RecycleBin
95
109
  end
96
110
  end
97
111
 
112
+ class UnlockRule
113
+ def self.build(context)
114
+ unless context.config.regional_endpoint
115
+ endpoint = context.config.endpoint.to_s
116
+ end
117
+ Aws::RecycleBin::EndpointParameters.new(
118
+ region: context.config.region,
119
+ use_dual_stack: context.config.use_dualstack_endpoint,
120
+ use_fips: context.config.use_fips_endpoint,
121
+ endpoint: endpoint,
122
+ )
123
+ end
124
+ end
125
+
98
126
  class UntagResource
99
127
  def self.build(context)
100
128
  unless context.config.regional_endpoint
@@ -27,6 +27,7 @@ module Aws::RecycleBin
27
27
  # See {Seahorse::Client::RequestContext} for more information.
28
28
  #
29
29
  # ## Error Classes
30
+ # * {ConflictException}
30
31
  # * {InternalServerException}
31
32
  # * {ResourceNotFoundException}
32
33
  # * {ServiceQuotaExceededException}
@@ -38,6 +39,26 @@ module Aws::RecycleBin
38
39
 
39
40
  extend Aws::Errors::DynamicErrors
40
41
 
42
+ class ConflictException < ServiceError
43
+
44
+ # @param [Seahorse::Client::RequestContext] context
45
+ # @param [String] message
46
+ # @param [Aws::RecycleBin::Types::ConflictException] data
47
+ def initialize(context, message, data = Aws::EmptyStructure.new)
48
+ super(context, message, data)
49
+ end
50
+
51
+ # @return [String]
52
+ def message
53
+ @message || @data[:message]
54
+ end
55
+
56
+ # @return [String]
57
+ def reason
58
+ @data[:reason]
59
+ end
60
+ end
61
+
41
62
  class InternalServerException < ServiceError
42
63
 
43
64
  # @param [Seahorse::Client::RequestContext] context
@@ -66,8 +66,12 @@ module Aws::RecycleBin
66
66
  Aws::RecycleBin::Endpoints::ListRules.build(context)
67
67
  when :list_tags_for_resource
68
68
  Aws::RecycleBin::Endpoints::ListTagsForResource.build(context)
69
+ when :lock_rule
70
+ Aws::RecycleBin::Endpoints::LockRule.build(context)
69
71
  when :tag_resource
70
72
  Aws::RecycleBin::Endpoints::TagResource.build(context)
73
+ when :unlock_rule
74
+ Aws::RecycleBin::Endpoints::UnlockRule.build(context)
71
75
  when :untag_resource
72
76
  Aws::RecycleBin::Endpoints::UntagResource.build(context)
73
77
  when :update_rule
@@ -10,6 +10,24 @@
10
10
  module Aws::RecycleBin
11
11
  module Types
12
12
 
13
+ # The specified retention rule lock request can't be completed.
14
+ #
15
+ # @!attribute [rw] message
16
+ # @return [String]
17
+ #
18
+ # @!attribute [rw] reason
19
+ # The reason for the exception.
20
+ # @return [String]
21
+ #
22
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/ConflictException AWS API Documentation
23
+ #
24
+ class ConflictException < Struct.new(
25
+ :message,
26
+ :reason)
27
+ SENSITIVE = []
28
+ include Aws::Structure
29
+ end
30
+
13
31
  # @note When making an API call, you may pass CreateRuleRequest
14
32
  # data as a hash:
15
33
  #
@@ -32,6 +50,12 @@ module Aws::RecycleBin
32
50
  # resource_tag_value: "ResourceTagValue",
33
51
  # },
34
52
  # ],
53
+ # lock_configuration: {
54
+ # unlock_delay: { # required
55
+ # unlock_delay_value: 1, # required
56
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
57
+ # },
58
+ # },
35
59
  # }
36
60
  #
37
61
  # @!attribute [rw] retention_period
@@ -73,6 +97,10 @@ module Aws::RecycleBin
73
97
  # the resources are not tagged.
74
98
  # @return [Array<Types::ResourceTag>]
75
99
  #
100
+ # @!attribute [rw] lock_configuration
101
+ # Information about the retention rule lock configuration.
102
+ # @return [Types::LockConfiguration]
103
+ #
76
104
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/CreateRuleRequest AWS API Documentation
77
105
  #
78
106
  class CreateRuleRequest < Struct.new(
@@ -80,7 +108,8 @@ module Aws::RecycleBin
80
108
  :description,
81
109
  :tags,
82
110
  :resource_type,
83
- :resource_tags)
111
+ :resource_tags,
112
+ :lock_configuration)
84
113
  SENSITIVE = []
85
114
  include Aws::Structure
86
115
  end
@@ -116,6 +145,30 @@ module Aws::RecycleBin
116
145
  # the `available` state retain resources.
117
146
  # @return [String]
118
147
  #
148
+ # @!attribute [rw] lock_configuration
149
+ # Information about the retention rule lock configuration.
150
+ # @return [Types::LockConfiguration]
151
+ #
152
+ # @!attribute [rw] lock_state
153
+ # The lock state for the retention rule.
154
+ #
155
+ # * `locked` - The retention rule is locked and can't be modified or
156
+ # deleted.
157
+ #
158
+ # * `pending_unlock` - The retention rule has been unlocked but it is
159
+ # still within the unlock delay period. The retention rule can be
160
+ # modified or deleted only after the unlock delay period has
161
+ # expired.
162
+ #
163
+ # * `unlocked` - The retention rule is unlocked and it can be modified
164
+ # or deleted by any user with the required permissions.
165
+ #
166
+ # * `null` - The retention rule has never been locked. Once a
167
+ # retention rule has been locked, it can transition between the
168
+ # `locked` and `unlocked` states only; it can never transition back
169
+ # to `null`.
170
+ # @return [String]
171
+ #
119
172
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/CreateRuleResponse AWS API Documentation
120
173
  #
121
174
  class CreateRuleResponse < Struct.new(
@@ -125,7 +178,9 @@ module Aws::RecycleBin
125
178
  :tags,
126
179
  :resource_type,
127
180
  :resource_tags,
128
- :status)
181
+ :status,
182
+ :lock_configuration,
183
+ :lock_state)
129
184
  SENSITIVE = []
130
185
  include Aws::Structure
131
186
  end
@@ -199,6 +254,36 @@ module Aws::RecycleBin
199
254
  # the `available` state retain resources.
200
255
  # @return [String]
201
256
  #
257
+ # @!attribute [rw] lock_configuration
258
+ # Information about the retention rule lock configuration.
259
+ # @return [Types::LockConfiguration]
260
+ #
261
+ # @!attribute [rw] lock_state
262
+ # The lock state for the retention rule.
263
+ #
264
+ # * `locked` - The retention rule is locked and can't be modified or
265
+ # deleted.
266
+ #
267
+ # * `pending_unlock` - The retention rule has been unlocked but it is
268
+ # still within the unlock delay period. The retention rule can be
269
+ # modified or deleted only after the unlock delay period has
270
+ # expired.
271
+ #
272
+ # * `unlocked` - The retention rule is unlocked and it can be modified
273
+ # or deleted by any user with the required permissions.
274
+ #
275
+ # * `null` - The retention rule has never been locked. Once a
276
+ # retention rule has been locked, it can transition between the
277
+ # `locked` and `unlocked` states only; it can never transition back
278
+ # to `null`.
279
+ # @return [String]
280
+ #
281
+ # @!attribute [rw] lock_end_time
282
+ # The date and time at which the unlock delay is set to expire. Only
283
+ # returned for retention rules that have been unlocked and that are
284
+ # still within the unlock delay period.
285
+ # @return [Time]
286
+ #
202
287
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/GetRuleResponse AWS API Documentation
203
288
  #
204
289
  class GetRuleResponse < Struct.new(
@@ -207,7 +292,10 @@ module Aws::RecycleBin
207
292
  :resource_type,
208
293
  :retention_period,
209
294
  :resource_tags,
210
- :status)
295
+ :status,
296
+ :lock_configuration,
297
+ :lock_state,
298
+ :lock_end_time)
211
299
  SENSITIVE = []
212
300
  include Aws::Structure
213
301
  end
@@ -239,6 +327,7 @@ module Aws::RecycleBin
239
327
  # resource_tag_value: "ResourceTagValue",
240
328
  # },
241
329
  # ],
330
+ # lock_state: "locked", # accepts locked, pending_unlock, unlocked
242
331
  # }
243
332
  #
244
333
  # @!attribute [rw] max_results
@@ -265,13 +354,19 @@ module Aws::RecycleBin
265
354
  # are retained by the retention rule.
266
355
  # @return [Array<Types::ResourceTag>]
267
356
  #
357
+ # @!attribute [rw] lock_state
358
+ # The lock state of the retention rules to list. Only retention rules
359
+ # with the specified lock state are returned.
360
+ # @return [String]
361
+ #
268
362
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/ListRulesRequest AWS API Documentation
269
363
  #
270
364
  class ListRulesRequest < Struct.new(
271
365
  :max_results,
272
366
  :next_token,
273
367
  :resource_type,
274
- :resource_tags)
368
+ :resource_tags,
369
+ :lock_state)
275
370
  SENSITIVE = []
276
371
  include Aws::Structure
277
372
  end
@@ -325,6 +420,126 @@ module Aws::RecycleBin
325
420
  include Aws::Structure
326
421
  end
327
422
 
423
+ # Information about a retention rule lock configuration.
424
+ #
425
+ # @note When making an API call, you may pass LockConfiguration
426
+ # data as a hash:
427
+ #
428
+ # {
429
+ # unlock_delay: { # required
430
+ # unlock_delay_value: 1, # required
431
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
432
+ # },
433
+ # }
434
+ #
435
+ # @!attribute [rw] unlock_delay
436
+ # Information about the retention rule unlock delay.
437
+ # @return [Types::UnlockDelay]
438
+ #
439
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/LockConfiguration AWS API Documentation
440
+ #
441
+ class LockConfiguration < Struct.new(
442
+ :unlock_delay)
443
+ SENSITIVE = []
444
+ include Aws::Structure
445
+ end
446
+
447
+ # @note When making an API call, you may pass LockRuleRequest
448
+ # data as a hash:
449
+ #
450
+ # {
451
+ # identifier: "RuleIdentifier", # required
452
+ # lock_configuration: { # required
453
+ # unlock_delay: { # required
454
+ # unlock_delay_value: 1, # required
455
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
456
+ # },
457
+ # },
458
+ # }
459
+ #
460
+ # @!attribute [rw] identifier
461
+ # The unique ID of the retention rule.
462
+ # @return [String]
463
+ #
464
+ # @!attribute [rw] lock_configuration
465
+ # Information about the retention rule lock configuration.
466
+ # @return [Types::LockConfiguration]
467
+ #
468
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/LockRuleRequest AWS API Documentation
469
+ #
470
+ class LockRuleRequest < Struct.new(
471
+ :identifier,
472
+ :lock_configuration)
473
+ SENSITIVE = []
474
+ include Aws::Structure
475
+ end
476
+
477
+ # @!attribute [rw] identifier
478
+ # The unique ID of the retention rule.
479
+ # @return [String]
480
+ #
481
+ # @!attribute [rw] description
482
+ # The retention rule description.
483
+ # @return [String]
484
+ #
485
+ # @!attribute [rw] resource_type
486
+ # The resource type retained by the retention rule.
487
+ # @return [String]
488
+ #
489
+ # @!attribute [rw] retention_period
490
+ # Information about the retention period for which the retention rule
491
+ # is to retain resources.
492
+ # @return [Types::RetentionPeriod]
493
+ #
494
+ # @!attribute [rw] resource_tags
495
+ # Information about the resource tags used to identify resources that
496
+ # are retained by the retention rule.
497
+ # @return [Array<Types::ResourceTag>]
498
+ #
499
+ # @!attribute [rw] status
500
+ # The state of the retention rule. Only retention rules that are in
501
+ # the `available` state retain resources.
502
+ # @return [String]
503
+ #
504
+ # @!attribute [rw] lock_configuration
505
+ # Information about the retention rule lock configuration.
506
+ # @return [Types::LockConfiguration]
507
+ #
508
+ # @!attribute [rw] lock_state
509
+ # The lock state for the retention rule.
510
+ #
511
+ # * `locked` - The retention rule is locked and can't be modified or
512
+ # deleted.
513
+ #
514
+ # * `pending_unlock` - The retention rule has been unlocked but it is
515
+ # still within the unlock delay period. The retention rule can be
516
+ # modified or deleted only after the unlock delay period has
517
+ # expired.
518
+ #
519
+ # * `unlocked` - The retention rule is unlocked and it can be modified
520
+ # or deleted by any user with the required permissions.
521
+ #
522
+ # * `null` - The retention rule has never been locked. Once a
523
+ # retention rule has been locked, it can transition between the
524
+ # `locked` and `unlocked` states only; it can never transition back
525
+ # to `null`.
526
+ # @return [String]
527
+ #
528
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/LockRuleResponse AWS API Documentation
529
+ #
530
+ class LockRuleResponse < Struct.new(
531
+ :identifier,
532
+ :description,
533
+ :resource_type,
534
+ :retention_period,
535
+ :resource_tags,
536
+ :status,
537
+ :lock_configuration,
538
+ :lock_state)
539
+ SENSITIVE = []
540
+ include Aws::Structure
541
+ end
542
+
328
543
  # The specified resource was not found.
329
544
  #
330
545
  # @!attribute [rw] message
@@ -417,12 +632,33 @@ module Aws::RecycleBin
417
632
  # is to retain resources.
418
633
  # @return [Types::RetentionPeriod]
419
634
  #
635
+ # @!attribute [rw] lock_state
636
+ # The lock state for the retention rule.
637
+ #
638
+ # * `locked` - The retention rule is locked and can't be modified or
639
+ # deleted.
640
+ #
641
+ # * `pending_unlock` - The retention rule has been unlocked but it is
642
+ # still within the unlock delay period. The retention rule can be
643
+ # modified or deleted only after the unlock delay period has
644
+ # expired.
645
+ #
646
+ # * `unlocked` - The retention rule is unlocked and it can be modified
647
+ # or deleted by any user with the required permissions.
648
+ #
649
+ # * `null` - The retention rule has never been locked. Once a
650
+ # retention rule has been locked, it can transition between the
651
+ # `locked` and `unlocked` states only; it can never transition back
652
+ # to `null`.
653
+ # @return [String]
654
+ #
420
655
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/RuleSummary AWS API Documentation
421
656
  #
422
657
  class RuleSummary < Struct.new(
423
658
  :identifier,
424
659
  :description,
425
- :retention_period)
660
+ :retention_period,
661
+ :lock_state)
426
662
  SENSITIVE = []
427
663
  include Aws::Structure
428
664
  end
@@ -507,6 +743,131 @@ module Aws::RecycleBin
507
743
  #
508
744
  class TagResourceResponse < Aws::EmptyStructure; end
509
745
 
746
+ # Information about the retention rule unlock delay. The unlock delay is
747
+ # the period after which a retention rule can be modified or edited
748
+ # after it has been unlocked by a user with the required permissions.
749
+ # The retention rule can't be modified or deleted during the unlock
750
+ # delay.
751
+ #
752
+ # @note When making an API call, you may pass UnlockDelay
753
+ # data as a hash:
754
+ #
755
+ # {
756
+ # unlock_delay_value: 1, # required
757
+ # unlock_delay_unit: "DAYS", # required, accepts DAYS
758
+ # }
759
+ #
760
+ # @!attribute [rw] unlock_delay_value
761
+ # The unlock delay period, measured in the unit specified for <b>
762
+ # UnlockDelayUnit</b>.
763
+ # @return [Integer]
764
+ #
765
+ # @!attribute [rw] unlock_delay_unit
766
+ # The unit of time in which to measure the unlock delay. Currently,
767
+ # the unlock delay can be measure only in days.
768
+ # @return [String]
769
+ #
770
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UnlockDelay AWS API Documentation
771
+ #
772
+ class UnlockDelay < Struct.new(
773
+ :unlock_delay_value,
774
+ :unlock_delay_unit)
775
+ SENSITIVE = []
776
+ include Aws::Structure
777
+ end
778
+
779
+ # @note When making an API call, you may pass UnlockRuleRequest
780
+ # data as a hash:
781
+ #
782
+ # {
783
+ # identifier: "RuleIdentifier", # required
784
+ # }
785
+ #
786
+ # @!attribute [rw] identifier
787
+ # The unique ID of the retention rule.
788
+ # @return [String]
789
+ #
790
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UnlockRuleRequest AWS API Documentation
791
+ #
792
+ class UnlockRuleRequest < Struct.new(
793
+ :identifier)
794
+ SENSITIVE = []
795
+ include Aws::Structure
796
+ end
797
+
798
+ # @!attribute [rw] identifier
799
+ # The unique ID of the retention rule.
800
+ # @return [String]
801
+ #
802
+ # @!attribute [rw] description
803
+ # The retention rule description.
804
+ # @return [String]
805
+ #
806
+ # @!attribute [rw] resource_type
807
+ # The resource type retained by the retention rule.
808
+ # @return [String]
809
+ #
810
+ # @!attribute [rw] retention_period
811
+ # Information about the retention period for which the retention rule
812
+ # is to retain resources.
813
+ # @return [Types::RetentionPeriod]
814
+ #
815
+ # @!attribute [rw] resource_tags
816
+ # Information about the resource tags used to identify resources that
817
+ # are retained by the retention rule.
818
+ # @return [Array<Types::ResourceTag>]
819
+ #
820
+ # @!attribute [rw] status
821
+ # The state of the retention rule. Only retention rules that are in
822
+ # the `available` state retain resources.
823
+ # @return [String]
824
+ #
825
+ # @!attribute [rw] lock_configuration
826
+ # Information about the retention rule lock configuration.
827
+ # @return [Types::LockConfiguration]
828
+ #
829
+ # @!attribute [rw] lock_state
830
+ # The lock state for the retention rule.
831
+ #
832
+ # * `locked` - The retention rule is locked and can't be modified or
833
+ # deleted.
834
+ #
835
+ # * `pending_unlock` - The retention rule has been unlocked but it is
836
+ # still within the unlock delay period. The retention rule can be
837
+ # modified or deleted only after the unlock delay period has
838
+ # expired.
839
+ #
840
+ # * `unlocked` - The retention rule is unlocked and it can be modified
841
+ # or deleted by any user with the required permissions.
842
+ #
843
+ # * `null` - The retention rule has never been locked. Once a
844
+ # retention rule has been locked, it can transition between the
845
+ # `locked` and `unlocked` states only; it can never transition back
846
+ # to `null`.
847
+ # @return [String]
848
+ #
849
+ # @!attribute [rw] lock_end_time
850
+ # The date and time at which the unlock delay is set to expire. Only
851
+ # returned for retention rules that have been unlocked and that are
852
+ # still within the unlock delay period.
853
+ # @return [Time]
854
+ #
855
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UnlockRuleResponse AWS API Documentation
856
+ #
857
+ class UnlockRuleResponse < Struct.new(
858
+ :identifier,
859
+ :description,
860
+ :resource_type,
861
+ :retention_period,
862
+ :resource_tags,
863
+ :status,
864
+ :lock_configuration,
865
+ :lock_state,
866
+ :lock_end_time)
867
+ SENSITIVE = []
868
+ include Aws::Structure
869
+ end
870
+
510
871
  # @note When making an API call, you may pass UntagResourceRequest
511
872
  # data as a hash:
512
873
  #
@@ -570,10 +931,10 @@ module Aws::RecycleBin
570
931
  # @return [String]
571
932
  #
572
933
  # @!attribute [rw] resource_type
573
- # The resource type to be retained by the retention rule. Currently,
574
- # only Amazon EBS snapshots and EBS-backed AMIs are supported. To
575
- # retain snapshots, specify `EBS_SNAPSHOT`. To retain EBS-backed AMIs,
576
- # specify `EC2_IMAGE`.
934
+ # <note markdown="1"> This parameter is currently not supported. You can't update a
935
+ # retention rule's resource type after creation.
936
+ #
937
+ # </note>
577
938
  # @return [String]
578
939
  #
579
940
  # @!attribute [rw] resource_tags
@@ -634,6 +995,32 @@ module Aws::RecycleBin
634
995
  # the `available` state retain resources.
635
996
  # @return [String]
636
997
  #
998
+ # @!attribute [rw] lock_state
999
+ # The lock state for the retention rule.
1000
+ #
1001
+ # * `locked` - The retention rule is locked and can't be modified or
1002
+ # deleted.
1003
+ #
1004
+ # * `pending_unlock` - The retention rule has been unlocked but it is
1005
+ # still within the unlock delay period. The retention rule can be
1006
+ # modified or deleted only after the unlock delay period has
1007
+ # expired.
1008
+ #
1009
+ # * `unlocked` - The retention rule is unlocked and it can be modified
1010
+ # or deleted by any user with the required permissions.
1011
+ #
1012
+ # * `null` - The retention rule has never been locked. Once a
1013
+ # retention rule has been locked, it can transition between the
1014
+ # `locked` and `unlocked` states only; it can never transition back
1015
+ # to `null`.
1016
+ # @return [String]
1017
+ #
1018
+ # @!attribute [rw] lock_end_time
1019
+ # The date and time at which the unlock delay is set to expire. Only
1020
+ # returned for retention rules that have been unlocked and that are
1021
+ # still within the unlock delay period.
1022
+ # @return [Time]
1023
+ #
637
1024
  # @see http://docs.aws.amazon.com/goto/WebAPI/rbin-2021-06-15/UpdateRuleResponse AWS API Documentation
638
1025
  #
639
1026
  class UpdateRuleResponse < Struct.new(
@@ -642,7 +1029,9 @@ module Aws::RecycleBin
642
1029
  :description,
643
1030
  :resource_type,
644
1031
  :resource_tags,
645
- :status)
1032
+ :status,
1033
+ :lock_state,
1034
+ :lock_end_time)
646
1035
  SENSITIVE = []
647
1036
  include Aws::Structure
648
1037
  end
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-recyclebin/customizations'
52
52
  # @!group service
53
53
  module Aws::RecycleBin
54
54
 
55
- GEM_VERSION = '1.6.0'
55
+ GEM_VERSION = '1.7.0'
56
56
 
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-recyclebin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.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: 2022-10-25 00:00:00.000000000 Z
11
+ date: 2022-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core