aws-sdk-amplifybackend 1.16.0 → 1.18.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: ef2fd6acd7fbb64ef5291f7eee7f77363d3293cdd62f11cef0530974a179d747
4
- data.tar.gz: e7ceb21e525c8c2d8ed219fe00d647bb1f0ad6c041434a699c1c72ff4040a8ef
3
+ metadata.gz: 569c06ac0d80cac839c7315cb3953377d3ca5850fcfe526d31f488a205f2c97f
4
+ data.tar.gz: f5f0e2a2a43feae1939627536eadb13d45a46aa6c1d2de6d1719b6efedd03c1c
5
5
  SHA512:
6
- metadata.gz: bcfdca340cd04c875bd1de209754b958cd1d699613058478dfedaef3dec211b332b8993b64d3b7d6ee3a7bf3251224220114a48ba071f113d9170ad8ef1d6322
7
- data.tar.gz: fbef3548d0eac7bddfc081b9dd2fbae3df3e2ef45520fc23a24cd50c2aace65227fa757ab101a3dee7e6f299a9bca7e722d7b9134ee4029bbdb8828b18afe83e
6
+ metadata.gz: 3968c9c26651c1f82e108165d2b204a451429ac887c0391e88e9b08cbdbb66911352078ea9a95c6b9156efdd9d01d924185e0e4381b33c11a2c71527ccd38d6d
7
+ data.tar.gz: c8cfc9be743fb35cfdd3b6e994aea7b317657f961497cba10a76ceb967498a84e1bcd5eadaad6dc77150493ff79755b8cf9cf61295fc372714d00de2d8ead39c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.18.0 (2022-10-25)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.17.0 (2022-03-16)
10
+ ------------------
11
+
12
+ * Feature - Adding the ability to customize Cognito verification messages for email and SMS in CreateBackendAuth and UpdateBackendAuth. Adding deprecation documentation for ForgotPassword in CreateBackendAuth and UpdateBackendAuth
13
+
4
14
  1.16.0 (2022-02-24)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.16.0
1
+ 1.18.0
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:amplifybackend)
@@ -79,8 +79,9 @@ module Aws::AmplifyBackend
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::RestJson)
84
+ add_plugin(Aws::AmplifyBackend::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::AmplifyBackend
287
288
  # ** Please note ** When response stubbing is enabled, no HTTP
288
289
  # requests are made, and retries are disabled.
289
290
  #
291
+ # @option options [Aws::TokenProvider] :token_provider
292
+ # A Bearer Token Provider. This can be an instance of any one of the
293
+ # following classes:
294
+ #
295
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
296
+ # tokens.
297
+ #
298
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
299
+ # access token generated from `aws login`.
300
+ #
301
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
302
+ # will be used to search for tokens configured for your profile in shared configuration files.
303
+ #
290
304
  # @option options [Boolean] :use_dualstack_endpoint
291
305
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
306
  # will be used if available.
@@ -300,6 +314,9 @@ module Aws::AmplifyBackend
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::AmplifyBackend::EndpointProvider] :endpoint_provider
318
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::AmplifyBackend::EndpointParameters`
319
+ #
303
320
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
321
  # requests through. Formatted like 'http://proxy.com:123'.
305
322
  #
@@ -613,6 +630,16 @@ module Aws::AmplifyBackend
613
630
  # required_sign_up_attributes: ["ADDRESS"], # required, accepts ADDRESS, BIRTHDATE, EMAIL, FAMILY_NAME, GENDER, GIVEN_NAME, LOCALE, MIDDLE_NAME, NAME, NICKNAME, PHONE_NUMBER, PICTURE, PREFERRED_USERNAME, PROFILE, UPDATED_AT, WEBSITE, ZONE_INFO
614
631
  # sign_in_method: "EMAIL", # required, accepts EMAIL, EMAIL_AND_PHONE_NUMBER, PHONE_NUMBER, USERNAME
615
632
  # user_pool_name: "__string", # required
633
+ # verification_message: {
634
+ # delivery_method: "EMAIL", # required, accepts EMAIL, SMS
635
+ # email_settings: {
636
+ # email_message: "__string",
637
+ # email_subject: "__string",
638
+ # },
639
+ # sms_settings: {
640
+ # sms_message: "__string",
641
+ # },
642
+ # },
616
643
  # },
617
644
  # },
618
645
  # resource_name: "__string", # required
@@ -1284,6 +1311,10 @@ module Aws::AmplifyBackend
1284
1311
  # resp.resource_config.user_pool_configs.required_sign_up_attributes[0] #=> String, one of "ADDRESS", "BIRTHDATE", "EMAIL", "FAMILY_NAME", "GENDER", "GIVEN_NAME", "LOCALE", "MIDDLE_NAME", "NAME", "NICKNAME", "PHONE_NUMBER", "PICTURE", "PREFERRED_USERNAME", "PROFILE", "UPDATED_AT", "WEBSITE", "ZONE_INFO"
1285
1312
  # resp.resource_config.user_pool_configs.sign_in_method #=> String, one of "EMAIL", "EMAIL_AND_PHONE_NUMBER", "PHONE_NUMBER", "USERNAME"
1286
1313
  # resp.resource_config.user_pool_configs.user_pool_name #=> String
1314
+ # resp.resource_config.user_pool_configs.verification_message.delivery_method #=> String, one of "EMAIL", "SMS"
1315
+ # resp.resource_config.user_pool_configs.verification_message.email_settings.email_message #=> String
1316
+ # resp.resource_config.user_pool_configs.verification_message.email_settings.email_subject #=> String
1317
+ # resp.resource_config.user_pool_configs.verification_message.sms_settings.sms_message #=> String
1287
1318
  # resp.resource_name #=> String
1288
1319
  #
1289
1320
  # @see http://docs.aws.amazon.com/goto/WebAPI/amplifybackend-2020-08-11/GetBackendAuth AWS API Documentation
@@ -1834,6 +1865,16 @@ module Aws::AmplifyBackend
1834
1865
  # additional_constraints: ["REQUIRE_DIGIT"], # accepts REQUIRE_DIGIT, REQUIRE_LOWERCASE, REQUIRE_SYMBOL, REQUIRE_UPPERCASE
1835
1866
  # minimum_length: 1.0,
1836
1867
  # },
1868
+ # verification_message: {
1869
+ # delivery_method: "EMAIL", # required, accepts EMAIL, SMS
1870
+ # email_settings: {
1871
+ # email_message: "__string",
1872
+ # email_subject: "__string",
1873
+ # },
1874
+ # sms_settings: {
1875
+ # sms_message: "__string",
1876
+ # },
1877
+ # },
1837
1878
  # },
1838
1879
  # },
1839
1880
  # resource_name: "__string", # required
@@ -2017,7 +2058,7 @@ module Aws::AmplifyBackend
2017
2058
  params: params,
2018
2059
  config: config)
2019
2060
  context[:gem_name] = 'aws-sdk-amplifybackend'
2020
- context[:gem_version] = '1.16.0'
2061
+ context[:gem_version] = '1.18.0'
2021
2062
  Seahorse::Client::Request.new(handlers, context)
2022
2063
  end
2023
2064
 
@@ -50,6 +50,7 @@ module Aws::AmplifyBackend
50
50
  CreateBackendAuthResourceConfig = Shapes::StructureShape.new(name: 'CreateBackendAuthResourceConfig')
51
51
  CreateBackendAuthResponse = Shapes::StructureShape.new(name: 'CreateBackendAuthResponse')
52
52
  CreateBackendAuthUserPoolConfig = Shapes::StructureShape.new(name: 'CreateBackendAuthUserPoolConfig')
53
+ CreateBackendAuthVerificationMessageConfig = Shapes::StructureShape.new(name: 'CreateBackendAuthVerificationMessageConfig')
53
54
  CreateBackendConfigReqObj = Shapes::StructureShape.new(name: 'CreateBackendConfigReqObj')
54
55
  CreateBackendConfigRequest = Shapes::StructureShape.new(name: 'CreateBackendConfigRequest')
55
56
  CreateBackendConfigRespObj = Shapes::StructureShape.new(name: 'CreateBackendConfigRespObj')
@@ -173,6 +174,7 @@ module Aws::AmplifyBackend
173
174
  UpdateBackendAuthResourceConfig = Shapes::StructureShape.new(name: 'UpdateBackendAuthResourceConfig')
174
175
  UpdateBackendAuthResponse = Shapes::StructureShape.new(name: 'UpdateBackendAuthResponse')
175
176
  UpdateBackendAuthUserPoolConfig = Shapes::StructureShape.new(name: 'UpdateBackendAuthUserPoolConfig')
177
+ UpdateBackendAuthVerificationMessageConfig = Shapes::StructureShape.new(name: 'UpdateBackendAuthVerificationMessageConfig')
176
178
  UpdateBackendConfigReqObj = Shapes::StructureShape.new(name: 'UpdateBackendConfigReqObj')
177
179
  UpdateBackendConfigRequest = Shapes::StructureShape.new(name: 'UpdateBackendConfigRequest')
178
180
  UpdateBackendConfigResponse = Shapes::StructureShape.new(name: 'UpdateBackendConfigResponse')
@@ -390,8 +392,14 @@ module Aws::AmplifyBackend
390
392
  CreateBackendAuthUserPoolConfig.add_member(:required_sign_up_attributes, Shapes::ShapeRef.new(shape: ListOfRequiredSignUpAttributesElement, required: true, location_name: "requiredSignUpAttributes"))
391
393
  CreateBackendAuthUserPoolConfig.add_member(:sign_in_method, Shapes::ShapeRef.new(shape: SignInMethod, required: true, location_name: "signInMethod"))
392
394
  CreateBackendAuthUserPoolConfig.add_member(:user_pool_name, Shapes::ShapeRef.new(shape: __string, required: true, location_name: "userPoolName"))
395
+ CreateBackendAuthUserPoolConfig.add_member(:verification_message, Shapes::ShapeRef.new(shape: CreateBackendAuthVerificationMessageConfig, location_name: "verificationMessage"))
393
396
  CreateBackendAuthUserPoolConfig.struct_class = Types::CreateBackendAuthUserPoolConfig
394
397
 
398
+ CreateBackendAuthVerificationMessageConfig.add_member(:delivery_method, Shapes::ShapeRef.new(shape: DeliveryMethod, required: true, location_name: "deliveryMethod"))
399
+ CreateBackendAuthVerificationMessageConfig.add_member(:email_settings, Shapes::ShapeRef.new(shape: EmailSettings, location_name: "emailSettings"))
400
+ CreateBackendAuthVerificationMessageConfig.add_member(:sms_settings, Shapes::ShapeRef.new(shape: SmsSettings, location_name: "smsSettings"))
401
+ CreateBackendAuthVerificationMessageConfig.struct_class = Types::CreateBackendAuthVerificationMessageConfig
402
+
395
403
  CreateBackendConfigReqObj.add_member(:backend_manager_app_id, Shapes::ShapeRef.new(shape: __string, location_name: "backendManagerAppId"))
396
404
  CreateBackendConfigReqObj.struct_class = Types::CreateBackendConfigReqObj
397
405
 
@@ -943,8 +951,14 @@ module Aws::AmplifyBackend
943
951
  UpdateBackendAuthUserPoolConfig.add_member(:mfa, Shapes::ShapeRef.new(shape: UpdateBackendAuthMFAConfig, location_name: "mfa"))
944
952
  UpdateBackendAuthUserPoolConfig.add_member(:o_auth, Shapes::ShapeRef.new(shape: UpdateBackendAuthOAuthConfig, location_name: "oAuth"))
945
953
  UpdateBackendAuthUserPoolConfig.add_member(:password_policy, Shapes::ShapeRef.new(shape: UpdateBackendAuthPasswordPolicyConfig, location_name: "passwordPolicy"))
954
+ UpdateBackendAuthUserPoolConfig.add_member(:verification_message, Shapes::ShapeRef.new(shape: UpdateBackendAuthVerificationMessageConfig, location_name: "verificationMessage"))
946
955
  UpdateBackendAuthUserPoolConfig.struct_class = Types::UpdateBackendAuthUserPoolConfig
947
956
 
957
+ UpdateBackendAuthVerificationMessageConfig.add_member(:delivery_method, Shapes::ShapeRef.new(shape: DeliveryMethod, required: true, location_name: "deliveryMethod"))
958
+ UpdateBackendAuthVerificationMessageConfig.add_member(:email_settings, Shapes::ShapeRef.new(shape: EmailSettings, location_name: "emailSettings"))
959
+ UpdateBackendAuthVerificationMessageConfig.add_member(:sms_settings, Shapes::ShapeRef.new(shape: SmsSettings, location_name: "smsSettings"))
960
+ UpdateBackendAuthVerificationMessageConfig.struct_class = Types::UpdateBackendAuthVerificationMessageConfig
961
+
948
962
  UpdateBackendConfigReqObj.add_member(:login_auth_config, Shapes::ShapeRef.new(shape: LoginAuthConfigReqObj, location_name: "loginAuthConfig"))
949
963
  UpdateBackendConfigReqObj.struct_class = Types::UpdateBackendConfigReqObj
950
964
 
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::AmplifyBackend
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,112 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::AmplifyBackend
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
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ 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
+ dCI6eyJ1cmwiOiJodHRwczovL2FtcGxpZnliYWNrZW5kLWZpcHMue1JlZ2lv
77
+ bn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJv
78
+ cGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1d
79
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFj
80
+ ayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1
81
+ cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
82
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
83
+ VXNlRklQUyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNv
84
+ bmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVl
85
+ LHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVz
86
+ dWx0In0sInN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
87
+ cyI6W3siY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
88
+ ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2Ft
89
+ cGxpZnliYWNrZW5kLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNk
90
+ bnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
91
+ ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoi
92
+ RklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBz
93
+ dXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
94
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVh
95
+ bFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
96
+ ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUs
97
+ eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
98
+ bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0cmVlIiwi
99
+ cnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJo
100
+ dHRwczovL2FtcGxpZnliYWNrZW5kLntSZWdpb259LntQYXJ0aXRpb25SZXN1
101
+ bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFk
102
+ ZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpb
103
+ XSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0
104
+ aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJy
105
+ b3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0
106
+ dHBzOi8vYW1wbGlmeWJhY2tlbmQue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3Vs
107
+ dCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwi
108
+ dHlwZSI6ImVuZHBvaW50In1dfV19
109
+
110
+ JSON
111
+ end
112
+ end