aws-sdk-sns 1.55.0 → 1.57.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: 8c71df1b2aa3b87d7830d1f1f0da8d3f0e77cd4a47bfefcbd0103b5b6345a0e0
4
- data.tar.gz: 94e9f8682965568bb34b3390edbda1e837169b7f8b7c71cc0ee5dc21697b734c
3
+ metadata.gz: '09d96c5064cfda3614ce1c8530e45e99d3dcbafc8063a8ac6077aa8eddea9d00'
4
+ data.tar.gz: ab592750055fa0bc03b8452295bc4ced0c60bda61ed8bca95a2fe3c61dc92aba
5
5
  SHA512:
6
- metadata.gz: 1748ac289a9df669017f6a77869f5cf04b5c5e91f4576d6519d0c24e5628b2be2e22f526df0f1337930a88e0ea783878bfaa5ed2a7f9ad07eaa8890a59617a12
7
- data.tar.gz: '0994ffbc6518f135eeed5877540a3d30ddc42c9d4aef3f155780c22b3cecab8da234890882859f54624969aaab12d8aa84c63cddbee5158b71520f4eaf277d0e'
6
+ metadata.gz: 01c6e355f17207399c94be20dd2fa5286edd45e07a3b0ade21a33263b970c7dbea182cfd80c6082c44d1fc68e02d9d295184c4a8d8193161fb77900b50cad892
7
+ data.tar.gz: effe88a806965b33a6f691192a22ea60847ffa93755a5e5dd42c556171cee59de565d649aaa72c44431ebdf232ac02e6b80a40737cc1cb44183af354ce23a9a7
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.57.0 (2022-12-02)
5
+ ------------------
6
+
7
+ * Feature - This release adds the message payload-filtering feature to the SNS Subscribe, SetSubscriptionAttributes, and GetSubscriptionAttributes API actions
8
+
9
+ 1.56.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.55.0 (2022-09-07)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.55.0
1
+ 1.57.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/query.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:sns)
@@ -79,8 +79,9 @@ module Aws::SNS
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::Query)
84
+ add_plugin(Aws::SNS::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::SNS
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::SNS
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::SNS::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::SNS::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
  #
@@ -355,6 +372,12 @@ module Aws::SNS
355
372
  # for the specified Amazon Web Services accounts to the specified
356
373
  # actions.
357
374
  #
375
+ # <note markdown="1"> To remove the ability to change topic permissions, you must deny
376
+ # permissions to the `AddPermission`, `RemovePermission`, and
377
+ # `SetTopicAttributes` actions in your IAM policy.
378
+ #
379
+ # </note>
380
+ #
358
381
  # @option params [required, String] :topic_arn
359
382
  # The ARN of the topic whose access control policy you wish to modify.
360
383
  #
@@ -703,6 +726,19 @@ module Aws::SNS
703
726
  # * `Policy` – The policy that defines who can access your topic. By
704
727
  # default, only the topic owner can publish or subscribe to the topic.
705
728
  #
729
+ # * `SignatureVersion` – The signature version corresponds to the
730
+ # hashing algorithm used while creating the signature of the
731
+ # notifications, subscription confirmations, or unsubscribe
732
+ # confirmation messages sent by Amazon SNS. By default,
733
+ # `SignatureVersion` is set to 1.
734
+ #
735
+ # * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
736
+ # `TracingConfig` is set to `PassThrough`, and the topic passes
737
+ # through the tracing header it receives from an Amazon SNS publisher
738
+ # to its subscriptions. If set to Active, Amazon SNS will vend X-Ray
739
+ # segment data to topic owner account if the sampled flag in the
740
+ # tracing header is true. This is only supported on standard topics.
741
+ #
706
742
  # The following attribute applies only to [server-side encryption][1]\:
707
743
  #
708
744
  # * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
@@ -1923,6 +1959,12 @@ module Aws::SNS
1923
1959
 
1924
1960
  # Removes a statement from a topic's access control policy.
1925
1961
  #
1962
+ # <note markdown="1"> To remove the ability to change topic permissions, you must deny
1963
+ # permissions to the `AddPermission`, `RemovePermission`, and
1964
+ # `SetTopicAttributes` actions in your IAM policy.
1965
+ #
1966
+ # </note>
1967
+ #
1926
1968
  # @option params [required, String] :topic_arn
1927
1969
  # The ARN of the topic whose access control policy you wish to modify.
1928
1970
  #
@@ -2238,6 +2280,14 @@ module Aws::SNS
2238
2280
  # receive only a subset of messages, rather than receiving every
2239
2281
  # message published to the topic.
2240
2282
  #
2283
+ # * `FilterPolicyScope` – This attribute lets you choose the filtering
2284
+ # scope by using one of the following string value types:
2285
+ #
2286
+ # * `MessageAttributes` (default) – The filter is applied on the
2287
+ # message attributes.
2288
+ #
2289
+ # * `MessageBody` – The filter is applied on the message body.
2290
+ #
2241
2291
  # * `RawMessageDelivery` – When set to `true`, enables raw message
2242
2292
  # delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
2243
2293
  # for the endpoints to process JSON formatting, which is otherwise
@@ -2293,6 +2343,12 @@ module Aws::SNS
2293
2343
 
2294
2344
  # Allows a topic owner to set an attribute of the topic to a new value.
2295
2345
  #
2346
+ # <note markdown="1"> To remove the ability to change topic permissions, you must deny
2347
+ # permissions to the `AddPermission`, `RemovePermission`, and
2348
+ # `SetTopicAttributes` actions in your IAM policy.
2349
+ #
2350
+ # </note>
2351
+ #
2296
2352
  # @option params [required, String] :topic_arn
2297
2353
  # The ARN of the topic to modify.
2298
2354
  #
@@ -2311,6 +2367,13 @@ module Aws::SNS
2311
2367
  # * `Policy` – The policy that defines who can access your topic. By
2312
2368
  # default, only the topic owner can publish or subscribe to the topic.
2313
2369
  #
2370
+ # * `TracingConfig` – Tracing mode of an Amazon SNS topic. By default
2371
+ # `TracingConfig` is set to `PassThrough`, and the topic passes
2372
+ # through the tracing header it receives from an Amazon SNS publisher
2373
+ # to its subscriptions. If set to Active, Amazon SNS will vend X-Ray
2374
+ # segment data to topic owner account if the sampled flag in the
2375
+ # tracing header is true. This is only supported on standard topics.
2376
+ #
2314
2377
  # The following attribute applies only to [server-side-encryption][1]\:
2315
2378
  #
2316
2379
  # * `KmsMasterKeyId` – The ID of an Amazon Web Services managed customer
@@ -2318,7 +2381,10 @@ module Aws::SNS
2318
2381
  # information, see [Key Terms][2]. For more examples, see [KeyId][3]
2319
2382
  # in the *Key Management Service API Reference*.
2320
2383
  #
2321
- # ^
2384
+ # * `SignatureVersion` – The signature version corresponds to the
2385
+ # hashing algorithm used while creating the signature of the
2386
+ # notifications, subscription confirmations, or unsubscribe
2387
+ # confirmation messages sent by Amazon SNS.
2322
2388
  #
2323
2389
  # The following attribute applies only to [FIFO topics][4]\:
2324
2390
  #
@@ -2446,6 +2512,14 @@ module Aws::SNS
2446
2512
  # receive only a subset of messages, rather than receiving every
2447
2513
  # message published to the topic.
2448
2514
  #
2515
+ # * `FilterPolicyScope` – This attribute lets you choose the filtering
2516
+ # scope by using one of the following string value types:
2517
+ #
2518
+ # * `MessageAttributes` (default) – The filter is applied on the
2519
+ # message attributes.
2520
+ #
2521
+ # * `MessageBody` – The filter is applied on the message body.
2522
+ #
2449
2523
  # * `RawMessageDelivery` – When set to `true`, enables raw message
2450
2524
  # delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need
2451
2525
  # for the endpoints to process JSON formatting, which is otherwise
@@ -2583,6 +2657,12 @@ module Aws::SNS
2583
2657
  # is delivered to the endpoint, so that the endpoint owner can easily
2584
2658
  # resubscribe to the topic if the `Unsubscribe` request was unintended.
2585
2659
  #
2660
+ # <note markdown="1"> Amazon SQS queue subscriptions require authentication for deletion.
2661
+ # Only the owner of the subscription, or the owner of the topic can
2662
+ # unsubscribe using the required Amazon Web Services signature.
2663
+ #
2664
+ # </note>
2665
+ #
2586
2666
  # This action is throttled at 100 transactions per second (TPS).
2587
2667
  #
2588
2668
  # @option params [required, String] :subscription_arn
@@ -2691,7 +2771,7 @@ module Aws::SNS
2691
2771
  params: params,
2692
2772
  config: config)
2693
2773
  context[:gem_name] = 'aws-sdk-sns'
2694
- context[:gem_version] = '1.55.0'
2774
+ context[:gem_version] = '1.57.0'
2695
2775
  Seahorse::Client::Request.new(handlers, context)
2696
2776
  end
2697
2777
 
@@ -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::SNS
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,119 @@
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::SNS
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
+ dCI6eyJ1cmwiOiJodHRwczovL3Nucy1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6IlJlZ2lv
89
+ biJ9LCJ1cy1nb3YtZWFzdC0xIl19XSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
90
+ cHM6Ly9zbnMudXMtZ292LWVhc3QtMS5hbWF6b25hd3MuY29tIiwicHJvcGVy
91
+ dGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In0seyJj
92
+ b25kaXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJl
93
+ ZiI6IlJlZ2lvbiJ9LCJ1cy1nb3Ytd2VzdC0xIl19XSwiZW5kcG9pbnQiOnsi
94
+ dXJsIjoiaHR0cHM6Ly9zbnMudXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29t
95
+ IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBv
96
+ aW50In0seyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
97
+ cHM6Ly9zbnMtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1
98
+ ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoi
99
+ ZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBT
100
+ IGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBv
101
+ cnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
102
+ biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3Rh
103
+ Y2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
104
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
105
+ IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
106
+ LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
107
+ cyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
108
+ Oi8vc25zLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5z
109
+ U3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
110
+ OiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFs
111
+ U3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qg
112
+ c3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
113
+ aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vc25zLntSZWdp
114
+ b259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMi
115
+ Ont9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
116
+
117
+ JSON
118
+ end
119
+ end