aws-sdk-recyclebin 1.6.0 → 1.8.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: 864cb7b23ccd48bcd8c96f24783d6dce91a5f8322c90a8816ae828d40a057e3d
4
+ data.tar.gz: 5bd03fc4f285d9d0f097c82932b135a34e1355daf6b8e5b5169ea33777b420c6
5
5
  SHA512:
6
- metadata.gz: b58354ab01bf160b8f3ac52acf79d3bce0b9506bc4c08e05e3672c5db7b2252f22ad0088a0b0f610d64f276812bf5e482795b6cd2d39a2216e8a5168360bb889
7
- data.tar.gz: 8470b7dfa69c97f34f5b28d450edbb5f314d9df857260077eba666c892f95c5db38efbd9ff658bb792ea3a68c854548086ee17c9d3c6a3f3f1a131c339789f97
6
+ metadata.gz: 73a3b870eeb662bc886e4716c0bec2c35dde9fc0eaeaad55b0c0a914caa40876bb4ed3ee0a2a8c0783fc3e5cc91f95dc48c13d2511bb0e5bb7084538dde1e81d
7
+ data.tar.gz: 0656f0c93e0232f5b99248ab615c504f008efe876ee1ccbd4c59c3228c5c668ecf971bb9fc9ebd77867f68a5c027a098ad35e0307d1811c9c06c7086fc6a2b3a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.8.0 (2023-01-18)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
10
+
11
+ 1.7.0 (2022-11-23)
12
+ ------------------
13
+
14
+ * 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.
15
+
4
16
  1.6.0 (2022-10-25)
5
17
  ------------------
6
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.8.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.8.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?
@@ -9,103 +9,43 @@
9
9
 
10
10
  module Aws::RecycleBin
11
11
  class EndpointProvider
12
- def initialize(rule_set = nil)
13
- @@rule_set ||= begin
14
- endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
- Aws::Endpoints::RuleSet.new(
16
- version: endpoint_rules['version'],
17
- service_id: endpoint_rules['serviceId'],
18
- parameters: endpoint_rules['parameters'],
19
- rules: endpoint_rules['rules']
20
- )
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
19
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
+ end
22
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
+ end
25
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
+ end
27
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
+ return Aws::Endpoints::Endpoint.new(url: "https://rbin-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ end
31
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
+ end
33
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ return Aws::Endpoints::Endpoint.new(url: "https://rbin-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://rbin.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
44
+ end
45
+ return Aws::Endpoints::Endpoint.new(url: "https://rbin.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
46
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
47
+ raise ArgumentError, 'No endpoint could be resolved'
24
48
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
49
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
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=
108
-
109
- JSON
110
50
  end
111
51
  end