aws-sdk-iotwireless 1.25.0 → 1.27.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: 445b0deebc8f94f3017b7798d1a9e423aef276a5e9574e4e1f87116255a0940f
4
- data.tar.gz: 6e46180d05501f84b64b31a28edbddb499e32d7e9860cebbf3a6f480ed6852df
3
+ metadata.gz: 3dc8b3a78c0de2b14a63d02e02aab6cab03c30aa4e0d7dda45e0d0c4ead2d0df
4
+ data.tar.gz: 183a43a2faac23cf032b61a7bee943672f6a8ebf43406bc32c708e0dbd8ed4bf
5
5
  SHA512:
6
- metadata.gz: 45161cbc0c72fc1087bae2e1c27abd0a28c564f2642989b19d53917f849402c67247f5cfd27794e54a82f730131c8ffc30cede06338cba27b7c93cff34bc8f2b
7
- data.tar.gz: ff7d7dc9b15b5db407a23518407a63aecefa003ca38f10488fdd67fbb6346b5ab41a0f40d1418b27fc1287904bd436a6a4ed5b7e29fd51b6cbf50d5efbbc3da1
6
+ metadata.gz: 6601cd867991c24cc0f221ef6b2d2b51a470cd666f78d9c63d341b65e2855c31c5df2b9d3315b0a79c5a4b5429ad0846e32a3994b4b6580ccd682e1c92f6fb26
7
+ data.tar.gz: e632ebbf3e1045dc2b86cbe9614532c57addf561cb3160ae580396a401b082de5780b1d470b3fa3da53f92766c6dba8da0c28d97f56f143d1d1005eafe99f914
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.27.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.26.0 (2022-08-25)
10
+ ------------------
11
+
12
+ * Feature - This release includes a new feature for the customers to enable the LoRa gateways to send out beacons for Class B devices and an option to select one or more gateways for Class C devices when sending the LoRaWAN downlink messages.
13
+
4
14
  1.25.0 (2022-08-08)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.25.0
1
+ 1.27.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(:iotwireless)
@@ -79,8 +79,9 @@ module Aws::IoTWireless
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::IoTWireless::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::IoTWireless
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::IoTWireless
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::IoTWireless::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::IoTWireless::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
  #
@@ -1113,6 +1130,10 @@ module Aws::IoTWireless
1113
1130
  # ],
1114
1131
  # net_id_filters: ["NetId"],
1115
1132
  # sub_bands: [1],
1133
+ # beaconing: {
1134
+ # data_rate: 1,
1135
+ # frequencies: [1],
1136
+ # },
1116
1137
  # },
1117
1138
  # tags: [
1118
1139
  # {
@@ -2371,6 +2392,9 @@ module Aws::IoTWireless
2371
2392
  # resp.lo_ra_wan.net_id_filters[0] #=> String
2372
2393
  # resp.lo_ra_wan.sub_bands #=> Array
2373
2394
  # resp.lo_ra_wan.sub_bands[0] #=> Integer
2395
+ # resp.lo_ra_wan.beaconing.data_rate #=> Integer
2396
+ # resp.lo_ra_wan.beaconing.frequencies #=> Array
2397
+ # resp.lo_ra_wan.beaconing.frequencies[0] #=> Integer
2374
2398
  # resp.arn #=> String
2375
2399
  # resp.thing_name #=> String
2376
2400
  # resp.thing_arn #=> String
@@ -2961,6 +2985,11 @@ module Aws::IoTWireless
2961
2985
  # resp.downlink_queue_messages_list[0].transmit_mode #=> Integer
2962
2986
  # resp.downlink_queue_messages_list[0].received_at #=> String
2963
2987
  # resp.downlink_queue_messages_list[0].lo_ra_wan.f_port #=> Integer
2988
+ # resp.downlink_queue_messages_list[0].lo_ra_wan.participating_gateways.downlink_mode #=> String, one of "SEQUENTIAL", "CONCURRENT", "USING_UPLINK_GATEWAY"
2989
+ # resp.downlink_queue_messages_list[0].lo_ra_wan.participating_gateways.gateway_list #=> Array
2990
+ # resp.downlink_queue_messages_list[0].lo_ra_wan.participating_gateways.gateway_list[0].gateway_id #=> String
2991
+ # resp.downlink_queue_messages_list[0].lo_ra_wan.participating_gateways.gateway_list[0].downlink_frequency #=> Integer
2992
+ # resp.downlink_queue_messages_list[0].lo_ra_wan.participating_gateways.transmission_interval #=> Integer
2964
2993
  #
2965
2994
  # @overload list_queued_messages(params = {})
2966
2995
  # @param [Hash] params ({})
@@ -3204,6 +3233,9 @@ module Aws::IoTWireless
3204
3233
  # resp.wireless_gateway_list[0].lo_ra_wan.net_id_filters[0] #=> String
3205
3234
  # resp.wireless_gateway_list[0].lo_ra_wan.sub_bands #=> Array
3206
3235
  # resp.wireless_gateway_list[0].lo_ra_wan.sub_bands[0] #=> Integer
3236
+ # resp.wireless_gateway_list[0].lo_ra_wan.beaconing.data_rate #=> Integer
3237
+ # resp.wireless_gateway_list[0].lo_ra_wan.beaconing.frequencies #=> Array
3238
+ # resp.wireless_gateway_list[0].lo_ra_wan.beaconing.frequencies[0] #=> Integer
3207
3239
  # resp.wireless_gateway_list[0].last_uplink_received_at #=> String
3208
3240
  #
3209
3241
  # @overload list_wireless_gateways(params = {})
@@ -3396,6 +3428,16 @@ module Aws::IoTWireless
3396
3428
  # wireless_metadata: {
3397
3429
  # lo_ra_wan: {
3398
3430
  # f_port: 1,
3431
+ # participating_gateways: {
3432
+ # downlink_mode: "SEQUENTIAL", # required, accepts SEQUENTIAL, CONCURRENT, USING_UPLINK_GATEWAY
3433
+ # gateway_list: [ # required
3434
+ # {
3435
+ # gateway_id: "WirelessGatewayId", # required
3436
+ # downlink_frequency: 1, # required
3437
+ # },
3438
+ # ],
3439
+ # transmission_interval: 1, # required
3440
+ # },
3399
3441
  # },
3400
3442
  # sidewalk: {
3401
3443
  # seq: 1,
@@ -4146,7 +4188,7 @@ module Aws::IoTWireless
4146
4188
  params: params,
4147
4189
  config: config)
4148
4190
  context[:gem_name] = 'aws-sdk-iotwireless'
4149
- context[:gem_version] = '1.25.0'
4191
+ context[:gem_version] = '1.27.0'
4150
4192
  Seahorse::Client::Request.new(handlers, context)
4151
4193
  end
4152
4194
 
@@ -42,6 +42,10 @@ module Aws::IoTWireless
42
42
  AssociateWirelessGatewayWithThingResponse = Shapes::StructureShape.new(name: 'AssociateWirelessGatewayWithThingResponse')
43
43
  AutoCreateTasks = Shapes::BooleanShape.new(name: 'AutoCreateTasks')
44
44
  BatteryLevel = Shapes::StringShape.new(name: 'BatteryLevel')
45
+ Beaconing = Shapes::StructureShape.new(name: 'Beaconing')
46
+ BeaconingDataRate = Shapes::IntegerShape.new(name: 'BeaconingDataRate')
47
+ BeaconingFrequencies = Shapes::ListShape.new(name: 'BeaconingFrequencies')
48
+ BeaconingFrequency = Shapes::IntegerShape.new(name: 'BeaconingFrequency')
45
49
  CancelMulticastGroupSessionRequest = Shapes::StructureShape.new(name: 'CancelMulticastGroupSessionRequest')
46
50
  CancelMulticastGroupSessionResponse = Shapes::StructureShape.new(name: 'CancelMulticastGroupSessionResponse')
47
51
  CertificateList = Shapes::StructureShape.new(name: 'CertificateList')
@@ -137,6 +141,8 @@ module Aws::IoTWireless
137
141
  DlRate = Shapes::IntegerShape.new(name: 'DlRate')
138
142
  DlRatePolicy = Shapes::StringShape.new(name: 'DlRatePolicy')
139
143
  Double = Shapes::FloatShape.new(name: 'Double')
144
+ DownlinkFrequency = Shapes::IntegerShape.new(name: 'DownlinkFrequency')
145
+ DownlinkMode = Shapes::StringShape.new(name: 'DownlinkMode')
140
146
  DownlinkQueueMessage = Shapes::StructureShape.new(name: 'DownlinkQueueMessage')
141
147
  DownlinkQueueMessagesList = Shapes::ListShape.new(name: 'DownlinkQueueMessagesList')
142
148
  DrMax = Shapes::IntegerShape.new(name: 'DrMax')
@@ -169,6 +175,8 @@ module Aws::IoTWireless
169
175
  FuotaTaskName = Shapes::StringShape.new(name: 'FuotaTaskName')
170
176
  FuotaTaskStatus = Shapes::StringShape.new(name: 'FuotaTaskStatus')
171
177
  GatewayEui = Shapes::StringShape.new(name: 'GatewayEui')
178
+ GatewayList = Shapes::ListShape.new(name: 'GatewayList')
179
+ GatewayListItem = Shapes::StructureShape.new(name: 'GatewayListItem')
172
180
  GenAppKey = Shapes::StringShape.new(name: 'GenAppKey')
173
181
  GetDestinationRequest = Shapes::StructureShape.new(name: 'GetDestinationRequest')
174
182
  GetDestinationResponse = Shapes::StructureShape.new(name: 'GetDestinationResponse')
@@ -325,6 +333,7 @@ module Aws::IoTWireless
325
333
  OtaaV1_0_x = Shapes::StructureShape.new(name: 'OtaaV1_0_x')
326
334
  OtaaV1_1 = Shapes::StructureShape.new(name: 'OtaaV1_1')
327
335
  PackageVersion = Shapes::StringShape.new(name: 'PackageVersion')
336
+ ParticipatingGateways = Shapes::StructureShape.new(name: 'ParticipatingGateways')
328
337
  PartnerAccountArn = Shapes::StringShape.new(name: 'PartnerAccountArn')
329
338
  PartnerAccountId = Shapes::StringShape.new(name: 'PartnerAccountId')
330
339
  PartnerType = Shapes::StringShape.new(name: 'PartnerType')
@@ -436,6 +445,7 @@ module Aws::IoTWireless
436
445
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
437
446
  TooManyTagsException = Shapes::StructureShape.new(name: 'TooManyTagsException')
438
447
  TraceContent = Shapes::StructureShape.new(name: 'TraceContent')
448
+ TransmissionInterval = Shapes::IntegerShape.new(name: 'TransmissionInterval')
439
449
  TransmitMode = Shapes::IntegerShape.new(name: 'TransmitMode')
440
450
  UlBucketSize = Shapes::IntegerShape.new(name: 'UlBucketSize')
441
451
  UlRate = Shapes::IntegerShape.new(name: 'UlRate')
@@ -572,6 +582,12 @@ module Aws::IoTWireless
572
582
 
573
583
  AssociateWirelessGatewayWithThingResponse.struct_class = Types::AssociateWirelessGatewayWithThingResponse
574
584
 
585
+ Beaconing.add_member(:data_rate, Shapes::ShapeRef.new(shape: BeaconingDataRate, location_name: "DataRate"))
586
+ Beaconing.add_member(:frequencies, Shapes::ShapeRef.new(shape: BeaconingFrequencies, location_name: "Frequencies"))
587
+ Beaconing.struct_class = Types::Beaconing
588
+
589
+ BeaconingFrequencies.member = Shapes::ShapeRef.new(shape: BeaconingFrequency)
590
+
575
591
  CancelMulticastGroupSessionRequest.add_member(:id, Shapes::ShapeRef.new(shape: MulticastGroupId, required: true, location: "uri", location_name: "Id"))
576
592
  CancelMulticastGroupSessionRequest.struct_class = Types::CancelMulticastGroupSessionRequest
577
593
 
@@ -866,6 +882,12 @@ module Aws::IoTWireless
866
882
 
867
883
  FuotaTaskList.member = Shapes::ShapeRef.new(shape: FuotaTask)
868
884
 
885
+ GatewayList.member = Shapes::ShapeRef.new(shape: GatewayListItem)
886
+
887
+ GatewayListItem.add_member(:gateway_id, Shapes::ShapeRef.new(shape: WirelessGatewayId, required: true, location_name: "GatewayId"))
888
+ GatewayListItem.add_member(:downlink_frequency, Shapes::ShapeRef.new(shape: DownlinkFrequency, required: true, location_name: "DownlinkFrequency"))
889
+ GatewayListItem.struct_class = Types::GatewayListItem
890
+
869
891
  GetDestinationRequest.add_member(:name, Shapes::ShapeRef.new(shape: DestinationName, required: true, location: "uri", location_name: "Name"))
870
892
  GetDestinationRequest.struct_class = Types::GetDestinationRequest
871
893
 
@@ -1288,6 +1310,7 @@ module Aws::IoTWireless
1288
1310
  LoRaWANGateway.add_member(:join_eui_filters, Shapes::ShapeRef.new(shape: JoinEuiFilters, location_name: "JoinEuiFilters"))
1289
1311
  LoRaWANGateway.add_member(:net_id_filters, Shapes::ShapeRef.new(shape: NetIdFilters, location_name: "NetIdFilters"))
1290
1312
  LoRaWANGateway.add_member(:sub_bands, Shapes::ShapeRef.new(shape: SubBands, location_name: "SubBands"))
1313
+ LoRaWANGateway.add_member(:beaconing, Shapes::ShapeRef.new(shape: Beaconing, location_name: "Beaconing"))
1291
1314
  LoRaWANGateway.struct_class = Types::LoRaWANGateway
1292
1315
 
1293
1316
  LoRaWANGatewayCurrentVersion.add_member(:current_version, Shapes::ShapeRef.new(shape: LoRaWANGatewayVersion, location_name: "CurrentVersion"))
@@ -1355,6 +1378,7 @@ module Aws::IoTWireless
1355
1378
  LoRaWANMulticastSession.struct_class = Types::LoRaWANMulticastSession
1356
1379
 
1357
1380
  LoRaWANSendDataToDevice.add_member(:f_port, Shapes::ShapeRef.new(shape: FPort, location_name: "FPort"))
1381
+ LoRaWANSendDataToDevice.add_member(:participating_gateways, Shapes::ShapeRef.new(shape: ParticipatingGateways, location_name: "ParticipatingGateways"))
1358
1382
  LoRaWANSendDataToDevice.struct_class = Types::LoRaWANSendDataToDevice
1359
1383
 
1360
1384
  LoRaWANServiceProfile.add_member(:add_gw_metadata, Shapes::ShapeRef.new(shape: AddGwMetadata, location_name: "AddGwMetadata"))
@@ -1422,6 +1446,11 @@ module Aws::IoTWireless
1422
1446
  OtaaV1_1.add_member(:join_eui, Shapes::ShapeRef.new(shape: JoinEui, location_name: "JoinEui"))
1423
1447
  OtaaV1_1.struct_class = Types::OtaaV1_1
1424
1448
 
1449
+ ParticipatingGateways.add_member(:downlink_mode, Shapes::ShapeRef.new(shape: DownlinkMode, required: true, location_name: "DownlinkMode"))
1450
+ ParticipatingGateways.add_member(:gateway_list, Shapes::ShapeRef.new(shape: GatewayList, required: true, location_name: "GatewayList"))
1451
+ ParticipatingGateways.add_member(:transmission_interval, Shapes::ShapeRef.new(shape: TransmissionInterval, required: true, location_name: "TransmissionInterval"))
1452
+ ParticipatingGateways.struct_class = Types::ParticipatingGateways
1453
+
1425
1454
  PositionConfigurationItem.add_member(:resource_identifier, Shapes::ShapeRef.new(shape: PositionResourceIdentifier, location_name: "ResourceIdentifier"))
1426
1455
  PositionConfigurationItem.add_member(:resource_type, Shapes::ShapeRef.new(shape: PositionResourceType, location_name: "ResourceType"))
1427
1456
  PositionConfigurationItem.add_member(:solvers, Shapes::ShapeRef.new(shape: PositionSolverDetails, location_name: "Solvers"))
@@ -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::IoTWireless
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::IoTWireless
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
+ dCI6eyJ1cmwiOiJodHRwczovL2FwaS5pb3R3aXJlbGVzcy1maXBzLntSZWdp
77
+ b259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInBy
78
+ b3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9
79
+ XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3Rh
80
+ Y2sgYXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBz
81
+ dXBwb3J0IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRp
82
+ dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6
83
+ IlVzZUZJUFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
84
+ b25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1
85
+ ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJl
86
+ c3VsdCJ9LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVs
87
+ ZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpb
88
+ eyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9h
89
+ cGkuaW90d2lyZWxlc3MtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0
90
+ I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0
91
+ eXBlIjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3Ii
92
+ OiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90
93
+ IHN1cHBvcnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25z
94
+ IjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VE
95
+ dWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
96
+ b25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1
97
+ ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJl
98
+ c3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUi
99
+ LCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6
100
+ Imh0dHBzOi8vYXBpLmlvdHdpcmVsZXNzLntSZWdpb259LntQYXJ0aXRpb25S
101
+ ZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJo
102
+ ZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25z
103
+ IjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBw
104
+ YXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoi
105
+ ZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6
106
+ Imh0dHBzOi8vYXBpLmlvdHdpcmVsZXNzLntSZWdpb259LntQYXJ0aXRpb25S
107
+ ZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7
108
+ fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
109
+
110
+ JSON
111
+ end
112
+ end