aws-sdk-iot 1.94.0 → 1.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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