aws-sdk-iot 1.94.0 → 1.96.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: 48af15b064378f429ba5c7af2e343845baaa6e8ff643090a9d6dfc911304fe3a
4
- data.tar.gz: 4e4224f2afa3e3e5722419a42e8cbed95b61fbf3a6881fc224e171e93ca7fbb8
3
+ metadata.gz: aa8ae5a478fab7a2b5193783cfb104e9b8417d18bafb66c9d5fb9ad3210e3820
4
+ data.tar.gz: 620a8a71188cafdff10cde6c14a8acda5e11a2af261d51b1ba504b85308e3e00
5
5
  SHA512:
6
- metadata.gz: d38399f5d0101674324018a06ed7d8e4ab33ec02697055bf465c89ae3ab92cd1fed6de0d3a442dc0194a8198c1d4ced89ecb09f52e461a6d2fc11e1474b2b893
7
- data.tar.gz: 83ff5efb5cc00f8b51f842b26c0b8252171cd4f2ae59c0423461b3899ab52349b6f4424e1bcc63d8a9be46f1536727bc4a08535e1a1065132456f3bc95260604
6
+ metadata.gz: f9d7ed1dcf4fda64c817cbcc82509846f5a6c4703f8814b5b443d7aa12abd3c8c4b70b154514757126b49299b3bb4e0156f548463341f8cf3e4879129bd11591
7
+ data.tar.gz: 6affc147aa60ec035bf99e572c0932803ac52b94aab969006d7dcc5d9e09393bdf66b08caaac671cad673e13a989dd5fbec192d4926fd138330eea06721a5858
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.96.0 (2022-10-31)
5
+ ------------------
6
+
7
+ * Feature - This release adds the Amazon Location action to IoT Rules Engine.
8
+
9
+ 1.95.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.94.0 (2022-08-04)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.94.0
1
+ 1.96.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(:iot)
@@ -79,8 +79,9 @@ module Aws::IoT
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::IoT::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::IoT
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::IoT
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::IoT::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::IoT::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
  #
@@ -2473,7 +2490,13 @@ module Aws::IoT
2473
2490
  # This IoT role grants permission to provision a device.
2474
2491
  #
2475
2492
  # @option params [Types::ProvisioningHook] :pre_provisioning_hook
2476
- # Creates a pre-provisioning hook template.
2493
+ # Creates a pre-provisioning hook template. Only supports template of
2494
+ # type `FLEET_PROVISIONING`. For more information about provisioning
2495
+ # template types, see [type][1].
2496
+ #
2497
+ #
2498
+ #
2499
+ # [1]: https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html#iot-CreateProvisioningTemplate-request-type
2477
2500
  #
2478
2501
  # @option params [Array<Types::Tag>] :tags
2479
2502
  # Metadata which can be used to manage the provisioning template.
@@ -3317,6 +3340,17 @@ module Aws::IoT
3317
3340
  # type: "ElasticsearchType", # required
3318
3341
  # id: "ElasticsearchId", # required
3319
3342
  # },
3343
+ # location: {
3344
+ # role_arn: "AwsArn", # required
3345
+ # tracker_name: "String", # required
3346
+ # device_id: "String", # required
3347
+ # timestamp: {
3348
+ # value: "String", # required
3349
+ # unit: "String",
3350
+ # },
3351
+ # latitude: "String", # required
3352
+ # longitude: "String", # required
3353
+ # },
3320
3354
  # },
3321
3355
  # ],
3322
3356
  # rule_disabled: false,
@@ -3495,6 +3529,17 @@ module Aws::IoT
3495
3529
  # type: "ElasticsearchType", # required
3496
3530
  # id: "ElasticsearchId", # required
3497
3531
  # },
3532
+ # location: {
3533
+ # role_arn: "AwsArn", # required
3534
+ # tracker_name: "String", # required
3535
+ # device_id: "String", # required
3536
+ # timestamp: {
3537
+ # value: "String", # required
3538
+ # unit: "String",
3539
+ # },
3540
+ # latitude: "String", # required
3541
+ # longitude: "String", # required
3542
+ # },
3498
3543
  # },
3499
3544
  # },
3500
3545
  # tags: "String",
@@ -6492,7 +6537,7 @@ module Aws::IoT
6492
6537
  #
6493
6538
  # @option params [Integer] :max_results
6494
6539
  # The maximum number of results to return at one time. The default is
6495
- # 25.
6540
+ # 10.
6496
6541
  #
6497
6542
  # @option params [String] :next_token
6498
6543
  # The token for the next set of results.
@@ -7229,6 +7274,13 @@ module Aws::IoT
7229
7274
  # resp.rule.actions[0].open_search.index #=> String
7230
7275
  # resp.rule.actions[0].open_search.type #=> String
7231
7276
  # resp.rule.actions[0].open_search.id #=> String
7277
+ # resp.rule.actions[0].location.role_arn #=> String
7278
+ # resp.rule.actions[0].location.tracker_name #=> String
7279
+ # resp.rule.actions[0].location.device_id #=> String
7280
+ # resp.rule.actions[0].location.timestamp.value #=> String
7281
+ # resp.rule.actions[0].location.timestamp.unit #=> String
7282
+ # resp.rule.actions[0].location.latitude #=> String
7283
+ # resp.rule.actions[0].location.longitude #=> String
7232
7284
  # resp.rule.rule_disabled #=> Boolean
7233
7285
  # resp.rule.aws_iot_sql_version #=> String
7234
7286
  # resp.rule.error_action.dynamo_db.table_name #=> String
@@ -7335,6 +7387,13 @@ module Aws::IoT
7335
7387
  # resp.rule.error_action.open_search.index #=> String
7336
7388
  # resp.rule.error_action.open_search.type #=> String
7337
7389
  # resp.rule.error_action.open_search.id #=> String
7390
+ # resp.rule.error_action.location.role_arn #=> String
7391
+ # resp.rule.error_action.location.tracker_name #=> String
7392
+ # resp.rule.error_action.location.device_id #=> String
7393
+ # resp.rule.error_action.location.timestamp.value #=> String
7394
+ # resp.rule.error_action.location.timestamp.unit #=> String
7395
+ # resp.rule.error_action.location.latitude #=> String
7396
+ # resp.rule.error_action.location.longitude #=> String
7338
7397
  #
7339
7398
  # @overload get_topic_rule(params = {})
7340
7399
  # @param [Hash] params ({})
@@ -11239,6 +11298,17 @@ module Aws::IoT
11239
11298
  # type: "ElasticsearchType", # required
11240
11299
  # id: "ElasticsearchId", # required
11241
11300
  # },
11301
+ # location: {
11302
+ # role_arn: "AwsArn", # required
11303
+ # tracker_name: "String", # required
11304
+ # device_id: "String", # required
11305
+ # timestamp: {
11306
+ # value: "String", # required
11307
+ # unit: "String",
11308
+ # },
11309
+ # latitude: "String", # required
11310
+ # longitude: "String", # required
11311
+ # },
11242
11312
  # },
11243
11313
  # ],
11244
11314
  # rule_disabled: false,
@@ -11417,6 +11487,17 @@ module Aws::IoT
11417
11487
  # type: "ElasticsearchType", # required
11418
11488
  # id: "ElasticsearchId", # required
11419
11489
  # },
11490
+ # location: {
11491
+ # role_arn: "AwsArn", # required
11492
+ # tracker_name: "String", # required
11493
+ # device_id: "String", # required
11494
+ # timestamp: {
11495
+ # value: "String", # required
11496
+ # unit: "String",
11497
+ # },
11498
+ # latitude: "String", # required
11499
+ # longitude: "String", # required
11500
+ # },
11420
11501
  # },
11421
11502
  # },
11422
11503
  # })
@@ -13083,7 +13164,13 @@ module Aws::IoT
13083
13164
  # IoT role grants permission to provision a device.
13084
13165
  #
13085
13166
  # @option params [Types::ProvisioningHook] :pre_provisioning_hook
13086
- # Updates the pre-provisioning hook template.
13167
+ # Updates the pre-provisioning hook template. Only supports template of
13168
+ # type `FLEET_PROVISIONING`. For more information about provisioning
13169
+ # template types, see [type][1].
13170
+ #
13171
+ #
13172
+ #
13173
+ # [1]: https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html#iot-CreateProvisioningTemplate-request-type
13087
13174
  #
13088
13175
  # @option params [Boolean] :remove_pre_provisioning_hook
13089
13176
  # Removes pre-provisioning hook template.
@@ -13746,7 +13833,7 @@ module Aws::IoT
13746
13833
  params: params,
13747
13834
  config: config)
13748
13835
  context[:gem_name] = 'aws-sdk-iot'
13749
- context[:gem_version] = '1.94.0'
13836
+ context[:gem_version] = '1.96.0'
13750
13837
  Seahorse::Client::Request.new(handlers, context)
13751
13838
  end
13752
13839
 
@@ -768,6 +768,8 @@ module Aws::IoT
768
768
  ListV2LoggingLevelsResponse = Shapes::StructureShape.new(name: 'ListV2LoggingLevelsResponse')
769
769
  ListViolationEventsRequest = Shapes::StructureShape.new(name: 'ListViolationEventsRequest')
770
770
  ListViolationEventsResponse = Shapes::StructureShape.new(name: 'ListViolationEventsResponse')
771
+ LocationAction = Shapes::StructureShape.new(name: 'LocationAction')
772
+ LocationTimestamp = Shapes::StructureShape.new(name: 'LocationTimestamp')
771
773
  LogGroupName = Shapes::StringShape.new(name: 'LogGroupName')
772
774
  LogLevel = Shapes::StringShape.new(name: 'LogLevel')
773
775
  LogTarget = Shapes::StructureShape.new(name: 'LogTarget')
@@ -1305,6 +1307,7 @@ module Aws::IoT
1305
1307
  Action.add_member(:http, Shapes::ShapeRef.new(shape: HttpAction, location_name: "http"))
1306
1308
  Action.add_member(:kafka, Shapes::ShapeRef.new(shape: KafkaAction, location_name: "kafka"))
1307
1309
  Action.add_member(:open_search, Shapes::ShapeRef.new(shape: OpenSearchAction, location_name: "openSearch"))
1310
+ Action.add_member(:location, Shapes::ShapeRef.new(shape: LocationAction, location_name: "location"))
1308
1311
  Action.struct_class = Types::Action
1309
1312
 
1310
1313
  ActionList.member = Shapes::ShapeRef.new(shape: Action)
@@ -3688,6 +3691,18 @@ module Aws::IoT
3688
3691
  ListViolationEventsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
3689
3692
  ListViolationEventsResponse.struct_class = Types::ListViolationEventsResponse
3690
3693
 
3694
+ LocationAction.add_member(:role_arn, Shapes::ShapeRef.new(shape: AwsArn, required: true, location_name: "roleArn"))
3695
+ LocationAction.add_member(:tracker_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "trackerName"))
3696
+ LocationAction.add_member(:device_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "deviceId"))
3697
+ LocationAction.add_member(:timestamp, Shapes::ShapeRef.new(shape: LocationTimestamp, location_name: "timestamp"))
3698
+ LocationAction.add_member(:latitude, Shapes::ShapeRef.new(shape: String, required: true, location_name: "latitude"))
3699
+ LocationAction.add_member(:longitude, Shapes::ShapeRef.new(shape: String, required: true, location_name: "longitude"))
3700
+ LocationAction.struct_class = Types::LocationAction
3701
+
3702
+ LocationTimestamp.add_member(:value, Shapes::ShapeRef.new(shape: String, required: true, location_name: "value"))
3703
+ LocationTimestamp.add_member(:unit, Shapes::ShapeRef.new(shape: String, location_name: "unit"))
3704
+ LocationTimestamp.struct_class = Types::LocationTimestamp
3705
+
3691
3706
  LogTarget.add_member(:target_type, Shapes::ShapeRef.new(shape: LogTargetType, required: true, location_name: "targetType"))
3692
3707
  LogTarget.add_member(:target_name, Shapes::ShapeRef.new(shape: LogTargetName, location_name: "targetName"))
3693
3708
  LogTarget.struct_class = Types::LogTarget
@@ -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::IoT
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,111 @@
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::IoT
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
+ dCI6eyJ1cmwiOiJodHRwczovL2lvdC1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9pb3QtZmlwcy57UmVn
89
+ aW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
90
+ Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJj
91
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRo
92
+ aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJl
93
+ cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
94
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBl
95
+ IjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
96
+ YW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3Yi
97
+ Olt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFj
98
+ ayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
99
+ W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vaW90LntSZWdpb259LntQ
100
+ YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
101
+ ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
102
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBi
103
+ dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2si
104
+ LCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50
105
+ Ijp7InVybCI6Imh0dHBzOi8vaW90LntSZWdpb259LntQYXJ0aXRpb25SZXN1
106
+ bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0s
107
+ InR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
108
+
109
+ JSON
110
+ end
111
+ end