aws-sdk-managedblockchain 1.35.0 → 1.37.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: 632ec972ea264300901a52c2e3067da88c629a07b54bf7f3b0b0b962ba4ce61c
4
- data.tar.gz: cbd557b5e978dbe8da70386aed1cfb1f11ea9efadc72ce1e9014b827e1e3220b
3
+ metadata.gz: 949e30028dc06e314a8fdead3443245a334ec5837668d10c091dbc4f7bf601ce
4
+ data.tar.gz: 5d100598f32d2bda2a373ef02677c39b95511369823dd3fba4fe30a8e9192761
5
5
  SHA512:
6
- metadata.gz: c8efb76bb4760488f9e6e6f9335b214b39a20d7383740766dac89c2ccf0aa63ff86edc4d429f5eda6ac29906a43eaf77d3d3985ebe617a3f9fb686bd13ac1da3
7
- data.tar.gz: 1ef7e93aff8587b71ed75ccb68fa54623c6f5f9e5953689eb842439051adbc33b198b3b72382bfd0709678509f60c291ca0dbf339b12bd285d831eb1645b50b6
6
+ metadata.gz: be4cad416c48cd95ce3c81dd4e127b50e3081e6b820001814a2633c047ca162b9730fe0d03a5af8584fa1fb9397cb481236622390af0a18868d60c9f143e244d
7
+ data.tar.gz: 20a10ce2eec9527e028ddb50fc3b7982f34dfd4831d7927039e034bebe7f0e61fd146283add7175ab19c7579992dd05d60e485d879a275adc57e15d4fd5fd2d0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.37.0 (2023-02-28)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for tagging to the accessor resource in Amazon Managed Blockchain
8
+
9
+ 1.36.0 (2023-01-18)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
15
+
4
16
  1.35.0 (2022-11-14)
5
17
  ------------------
6
18
 
@@ -185,4 +197,4 @@ Unreleased Changes
185
197
  1.0.0 (2019-04-30)
186
198
  ------------------
187
199
 
188
- * Feature - Initial release of `aws-sdk-managedblockchain`.
200
+ * Feature - Initial release of `aws-sdk-managedblockchain`.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.35.0
1
+ 1.37.0
@@ -368,14 +368,9 @@ module Aws::ManagedBlockchain
368
368
 
369
369
  # @!group API Operations
370
370
 
371
- # The token based access feature is in preview release for Ethereum on
372
- # Amazon Managed Blockchain and is subject to change. We recommend that
373
- # you use this feature only with test scenarios, and not in production
374
- # environments.
375
- #
376
371
  # Creates a new accessor for use with Managed Blockchain Ethereum nodes.
377
- # An accessor object is a container that has the information required
378
- # for token based access to your Ethereum nodes.
372
+ # An accessor contains information required for token based access to
373
+ # your Ethereum nodes.
379
374
  #
380
375
  # @option params [required, String] :client_request_token
381
376
  # This is a unique, case-sensitive identifier that you provide to ensure
@@ -394,6 +389,23 @@ module Aws::ManagedBlockchain
394
389
  #
395
390
  # </note>
396
391
  #
392
+ # @option params [Hash<String,String>] :tags
393
+ # Tags to assign to the Accessor.
394
+ #
395
+ # Each tag consists of a key and an optional value. You can specify
396
+ # multiple key-value pairs in a single request with an overall maximum
397
+ # of 50 tags allowed per resource.
398
+ #
399
+ # For more information about tags, see [Tagging Resources][1] in the
400
+ # *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging
401
+ # Resources][2] in the *Amazon Managed Blockchain Hyperledger Fabric
402
+ # Developer Guide*.
403
+ #
404
+ #
405
+ #
406
+ # [1]: https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html
407
+ # [2]: https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html
408
+ #
397
409
  # @return [Types::CreateAccessorOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
398
410
  #
399
411
  # * {Types::CreateAccessorOutput#accessor_id #accessor_id} => String
@@ -404,6 +416,9 @@ module Aws::ManagedBlockchain
404
416
  # resp = client.create_accessor({
405
417
  # client_request_token: "ClientRequestTokenString", # required
406
418
  # accessor_type: "BILLING_TOKEN", # required, accepts BILLING_TOKEN
419
+ # tags: {
420
+ # "TagKey" => "TagValue",
421
+ # },
407
422
  # })
408
423
  #
409
424
  # @example Response structure
@@ -530,12 +545,11 @@ module Aws::ManagedBlockchain
530
545
  # Configuration properties for the first member within the network.
531
546
  #
532
547
  # @option params [Hash<String,String>] :tags
533
- # Tags to assign to the network. Each tag consists of a key and optional
534
- # value.
548
+ # Tags to assign to the network.
535
549
  #
536
- # When specifying tags during creation, you can specify multiple
537
- # key-value pairs in a single request, with an overall maximum of 50
538
- # tags added to each resource.
550
+ # Each tag consists of a key and an optional value. You can specify
551
+ # multiple key-value pairs in a single request with an overall maximum
552
+ # of 50 tags allowed per resource.
539
553
  #
540
554
  # For more information about tags, see [Tagging Resources][1] in the
541
555
  # *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging
@@ -650,12 +664,11 @@ module Aws::ManagedBlockchain
650
664
  # The properties of a node configuration.
651
665
  #
652
666
  # @option params [Hash<String,String>] :tags
653
- # Tags to assign to the node. Each tag consists of a key and optional
654
- # value.
667
+ # Tags to assign to the node.
655
668
  #
656
- # When specifying tags during creation, you can specify multiple
657
- # key-value pairs in a single request, with an overall maximum of 50
658
- # tags added to each resource.
669
+ # Each tag consists of a key and an optional value. You can specify
670
+ # multiple key-value pairs in a single request with an overall maximum
671
+ # of 50 tags allowed per resource.
659
672
  #
660
673
  # For more information about tags, see [Tagging Resources][1] in the
661
674
  # *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging
@@ -750,13 +763,11 @@ module Aws::ManagedBlockchain
750
763
  # example, "Proposal to add Example Corp. as member."
751
764
  #
752
765
  # @option params [Hash<String,String>] :tags
753
- # Tags to assign to the proposal. Each tag consists of a key and
754
- # optional value.
766
+ # Tags to assign to the proposal.
755
767
  #
756
- # When specifying tags during creation, you can specify multiple
757
- # key-value pairs in a single request, with an overall maximum of 50
758
- # tags added to each resource. If the proposal is for a network
759
- # invitation, the invitation inherits the tags added to the proposal.
768
+ # Each tag consists of a key and an optional value. You can specify
769
+ # multiple key-value pairs in a single request with an overall maximum
770
+ # of 50 tags allowed per resource.
760
771
  #
761
772
  # For more information about tags, see [Tagging Resources][1] in the
762
773
  # *Amazon Managed Blockchain Ethereum Developer Guide*, or [Tagging
@@ -809,11 +820,6 @@ module Aws::ManagedBlockchain
809
820
  req.send_request(options)
810
821
  end
811
822
 
812
- # The token based access feature is in preview release for Ethereum on
813
- # Amazon Managed Blockchain and is subject to change. We recommend that
814
- # you use this feature only with test scenarios, and not in production
815
- # environments.
816
- #
817
823
  # Deletes an accessor that your Amazon Web Services account owns. An
818
824
  # accessor object is a container that has the information required for
819
825
  # token based access to your Ethereum nodes including, the
@@ -925,11 +931,6 @@ module Aws::ManagedBlockchain
925
931
  req.send_request(options)
926
932
  end
927
933
 
928
- # The token based access feature is in preview release for Ethereum on
929
- # Amazon Managed Blockchain and is subject to change. We recommend that
930
- # you use this feature only with test scenarios, and not in production
931
- # environments.
932
- #
933
934
  # Returns detailed information about an accessor. An accessor object is
934
935
  # a container that has the information required for token based access
935
936
  # to your Ethereum nodes.
@@ -955,6 +956,8 @@ module Aws::ManagedBlockchain
955
956
  # resp.accessor.status #=> String, one of "AVAILABLE", "PENDING_DELETION", "DELETED"
956
957
  # resp.accessor.creation_date #=> Time
957
958
  # resp.accessor.arn #=> String
959
+ # resp.accessor.tags #=> Hash
960
+ # resp.accessor.tags["TagKey"] #=> String
958
961
  #
959
962
  # @see http://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/GetAccessor AWS API Documentation
960
963
  #
@@ -1166,11 +1169,6 @@ module Aws::ManagedBlockchain
1166
1169
  req.send_request(options)
1167
1170
  end
1168
1171
 
1169
- # The token based access feature is in preview release for Ethereum on
1170
- # Amazon Managed Blockchain and is subject to change. We recommend that
1171
- # you use this feature only with test scenarios, and not in production
1172
- # environments.
1173
- #
1174
1172
  # Returns a list of the accessors and their properties. Accessor objects
1175
1173
  # are containers that have the information required for token based
1176
1174
  # access to your Ethereum nodes.
@@ -1876,7 +1874,7 @@ module Aws::ManagedBlockchain
1876
1874
  params: params,
1877
1875
  config: config)
1878
1876
  context[:gem_name] = 'aws-sdk-managedblockchain'
1879
- context[:gem_version] = '1.35.0'
1877
+ context[:gem_version] = '1.37.0'
1880
1878
  Seahorse::Client::Request.new(handlers, context)
1881
1879
  end
1882
1880
 
@@ -177,6 +177,7 @@ module Aws::ManagedBlockchain
177
177
  Accessor.add_member(:status, Shapes::ShapeRef.new(shape: AccessorStatus, location_name: "Status"))
178
178
  Accessor.add_member(:creation_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreationDate"))
179
179
  Accessor.add_member(:arn, Shapes::ShapeRef.new(shape: ArnString, location_name: "Arn"))
180
+ Accessor.add_member(:tags, Shapes::ShapeRef.new(shape: OutputTagMap, location_name: "Tags"))
180
181
  Accessor.struct_class = Types::Accessor
181
182
 
182
183
  AccessorSummary.add_member(:id, Shapes::ShapeRef.new(shape: ResourceIdString, location_name: "Id"))
@@ -195,6 +196,7 @@ module Aws::ManagedBlockchain
195
196
 
196
197
  CreateAccessorInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestTokenString, required: true, location_name: "ClientRequestToken", metadata: {"idempotencyToken"=>true}))
197
198
  CreateAccessorInput.add_member(:accessor_type, Shapes::ShapeRef.new(shape: AccessorType, required: true, location_name: "AccessorType"))
199
+ CreateAccessorInput.add_member(:tags, Shapes::ShapeRef.new(shape: InputTagMap, location_name: "Tags"))
198
200
  CreateAccessorInput.struct_class = Types::CreateAccessorInput
199
201
 
200
202
  CreateAccessorOutput.add_member(:accessor_id, Shapes::ShapeRef.new(shape: ResourceIdString, location_name: "AccessorId"))
@@ -692,6 +694,7 @@ module Aws::ManagedBlockchain
692
694
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
693
695
  o.errors << Shapes::ShapeRef.new(shape: ResourceLimitExceededException)
694
696
  o.errors << Shapes::ShapeRef.new(shape: InternalServiceErrorException)
697
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
695
698
  end)
696
699
 
697
700
  api.add_operation(:create_member, Seahorse::Model::Operation.new.tap do |o|
@@ -9,104 +9,46 @@
9
9
 
10
10
  module Aws::ManagedBlockchain
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 Aws::Endpoints::Matchers.set?(endpoint)
18
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
19
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
20
+ end
21
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
+ end
24
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
21
25
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
26
+ if Aws::Endpoints::Matchers.set?(region)
27
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
29
+ 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"))
30
+ return Aws::Endpoints::Endpoint.new(url: "https://managedblockchain-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
+ end
32
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
+ end
34
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
35
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
36
+ return Aws::Endpoints::Endpoint.new(url: "https://managedblockchain-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
37
+ end
38
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
39
+ end
40
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
41
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
42
+ return Aws::Endpoints::Endpoint.new(url: "https://managedblockchain.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
43
+ end
44
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
45
+ end
46
+ return Aws::Endpoints::Endpoint.new(url: "https://managedblockchain.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
47
+ end
48
+ end
49
+ raise ArgumentError, "Invalid Configuration: Missing Region"
50
+ raise ArgumentError, 'No endpoint could be resolved'
24
51
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
52
  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
- dCI6eyJ1cmwiOiJodHRwczovL21hbmFnZWRibG9ja2NoYWluLWZpcHMue1Jl
77
- Z2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9Iiwi
78
- cHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50
79
- In1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxT
80
- dGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90
81
- IHN1cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29u
82
- ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVm
83
- IjoiVXNlRklQUyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
84
- ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0
85
- cnVlLHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9u
86
- UmVzdWx0In0sInN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJy
87
- dWxlcyI6W3siY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMi
88
- Olt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczov
89
- L21hbmFnZWRibG9ja2NoYWluLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJl
90
- c3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9
91
- fSwidHlwZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W10sImVy
92
- cm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2Vz
93
- IG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
94
- aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
95
- VXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6
96
- W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6
97
- W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRp
98
- b25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0
99
- cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1
100
- cmwiOiJodHRwczovL21hbmFnZWRibG9ja2NoYWluLntSZWdpb259LntQYXJ0
101
- aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMi
102
- Ont9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25k
103
- aXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQg
104
- dGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0
105
- eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7
106
- InVybCI6Imh0dHBzOi8vbWFuYWdlZGJsb2NrY2hhaW4ue1JlZ2lvbn0ue1Bh
107
- cnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhl
108
- YWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
109
-
110
- JSON
111
53
  end
112
54
  end