aws-sdk-recyclebin 1.6.0 → 1.7.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: 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