aws-sdk-panorama 1.8.0 → 1.10.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: '08cdcf6d230b188ab968905f215628a2e694d107fad0e4145dc329e38dd242fb'
4
- data.tar.gz: 3c5a7b99d66a22dc3216dc536185cd56aa9679ec13debabd5ea94ee195b11bce
3
+ metadata.gz: c4ee82866fc57c6ad0188c97e936e61a9c0b04bff585a81d430389217bf787b6
4
+ data.tar.gz: 3f3272b098cd4ae041c761f9220b7278979baea694d001a1febdb11e57882776
5
5
  SHA512:
6
- metadata.gz: a9aca649c54ffdfea8e960bf7632c8445057e6d348143ceaff7a221a10228429949dd42e0e22ebd35a9a6f6d9739948ae78a5e7e3be82949961fcfae7c4fe3ad
7
- data.tar.gz: 5cb34ec87722d801bdf8f98f60645922ba9e4f5103859b1a322da49f233e0104e8c0189e22fb1aa98742b2381c377039887dd4cfe1351ddf6e97b8a81ca34b70
6
+ metadata.gz: d5bcfe5e160124061a417d8c000aaf3a3760d6cf49328d5046c29b9a4e02985317693bc6f90a9dddd29babefdd019901e3e8013447beb99134e443fc5ad94d3d
7
+ data.tar.gz: 27b505a125d3b7046d6d221ba4b57f0bf75403607a28b3512524c5342b33ac11276d7be98566412ead56283a8d015361d8f22a994de29ba98bfc99af3d34f67a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.10.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.9.0 (2022-10-13)
10
+ ------------------
11
+
12
+ * Feature - Pause and resume camera stream processing with SignalApplicationInstanceNodeInstances. Reboot an appliance with CreateJobForDevices. More application state information in DescribeApplicationInstance response.
13
+
4
14
  1.8.0 (2022-08-25)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.0
1
+ 1.10.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(:panorama)
@@ -79,8 +79,9 @@ module Aws::Panorama
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::Panorama::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::Panorama
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::Panorama
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::Panorama::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::Panorama::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
  #
@@ -413,13 +430,14 @@ module Aws::Panorama
413
430
  req.send_request(options)
414
431
  end
415
432
 
416
- # Creates a job to run on one or more devices.
433
+ # Creates a job to run on one or more devices. A job can update a
434
+ # device's software or reboot it.
417
435
  #
418
436
  # @option params [required, Array<String>] :device_ids
419
437
  # IDs of target devices.
420
438
  #
421
- # @option params [required, Types::DeviceJobConfig] :device_job_config
422
- # Configuration settings for the job.
439
+ # @option params [Types::DeviceJobConfig] :device_job_config
440
+ # Configuration settings for a software update job.
423
441
  #
424
442
  # @option params [required, String] :job_type
425
443
  # The type of job to run.
@@ -432,12 +450,12 @@ module Aws::Panorama
432
450
  #
433
451
  # resp = client.create_job_for_devices({
434
452
  # device_ids: ["DeviceId"], # required
435
- # device_job_config: { # required
453
+ # device_job_config: {
436
454
  # ota_job_config: {
437
455
  # image_version: "ImageVersion", # required
438
456
  # },
439
457
  # },
440
- # job_type: "OTA", # required, accepts OTA
458
+ # job_type: "OTA", # required, accepts OTA, REBOOT
441
459
  # })
442
460
  #
443
461
  # @example Response structure
@@ -738,6 +756,7 @@ module Aws::Panorama
738
756
  # * {Types::DescribeApplicationInstanceResponse#health_status #health_status} => String
739
757
  # * {Types::DescribeApplicationInstanceResponse#last_updated_time #last_updated_time} => Time
740
758
  # * {Types::DescribeApplicationInstanceResponse#name #name} => String
759
+ # * {Types::DescribeApplicationInstanceResponse#runtime_context_states #runtime_context_states} => Array&lt;Types::ReportedRuntimeContextState&gt;
741
760
  # * {Types::DescribeApplicationInstanceResponse#runtime_role_arn #runtime_role_arn} => String
742
761
  # * {Types::DescribeApplicationInstanceResponse#status #status} => String
743
762
  # * {Types::DescribeApplicationInstanceResponse#status_description #status_description} => String
@@ -761,6 +780,11 @@ module Aws::Panorama
761
780
  # resp.health_status #=> String, one of "RUNNING", "ERROR", "NOT_AVAILABLE"
762
781
  # resp.last_updated_time #=> Time
763
782
  # resp.name #=> String
783
+ # resp.runtime_context_states #=> Array
784
+ # resp.runtime_context_states[0].desired_state #=> String, one of "RUNNING", "STOPPED", "REMOVED"
785
+ # resp.runtime_context_states[0].device_reported_status #=> String, one of "STOPPING", "STOPPED", "STOP_ERROR", "REMOVAL_FAILED", "REMOVAL_IN_PROGRESS", "STARTING", "RUNNING", "INSTALL_ERROR", "LAUNCHED", "LAUNCH_ERROR", "INSTALL_IN_PROGRESS"
786
+ # resp.runtime_context_states[0].device_reported_time #=> Time
787
+ # resp.runtime_context_states[0].runtime_context_name #=> String
764
788
  # resp.runtime_role_arn #=> String
765
789
  # resp.status #=> String, one of "DEPLOYMENT_PENDING", "DEPLOYMENT_REQUESTED", "DEPLOYMENT_IN_PROGRESS", "DEPLOYMENT_ERROR", "DEPLOYMENT_SUCCEEDED", "REMOVAL_PENDING", "REMOVAL_REQUESTED", "REMOVAL_IN_PROGRESS", "REMOVAL_FAILED", "REMOVAL_SUCCEEDED", "DEPLOYMENT_FAILED"
766
790
  # resp.status_description #=> String
@@ -872,11 +896,12 @@ module Aws::Panorama
872
896
  # resp.current_networking_status.ntp_status.ntp_server_name #=> String
873
897
  # resp.current_software #=> String
874
898
  # resp.description #=> String
875
- # resp.device_aggregated_status #=> String, one of "ERROR", "AWAITING_PROVISIONING", "PENDING", "FAILED", "DELETING", "ONLINE", "OFFLINE", "LEASE_EXPIRED", "UPDATE_NEEDED"
899
+ # resp.device_aggregated_status #=> String, one of "ERROR", "AWAITING_PROVISIONING", "PENDING", "FAILED", "DELETING", "ONLINE", "OFFLINE", "LEASE_EXPIRED", "UPDATE_NEEDED", "REBOOTING"
876
900
  # resp.device_connection_status #=> String, one of "ONLINE", "OFFLINE", "AWAITING_CREDENTIALS", "NOT_AVAILABLE", "ERROR"
877
901
  # resp.device_id #=> String
878
902
  # resp.latest_alternate_software #=> String
879
903
  # resp.latest_device_job.image_version #=> String
904
+ # resp.latest_device_job.job_type #=> String, one of "OTA", "REBOOT"
880
905
  # resp.latest_device_job.status #=> String, one of "PENDING", "IN_PROGRESS", "VERIFYING", "REBOOTING", "DOWNLOADING", "COMPLETED", "FAILED"
881
906
  # resp.latest_software #=> String
882
907
  # resp.lease_expiration_time #=> Time
@@ -924,6 +949,7 @@ module Aws::Panorama
924
949
  # * {Types::DescribeDeviceJobResponse#device_type #device_type} => String
925
950
  # * {Types::DescribeDeviceJobResponse#image_version #image_version} => String
926
951
  # * {Types::DescribeDeviceJobResponse#job_id #job_id} => String
952
+ # * {Types::DescribeDeviceJobResponse#job_type #job_type} => String
927
953
  # * {Types::DescribeDeviceJobResponse#status #status} => String
928
954
  #
929
955
  # @example Request syntax with placeholder values
@@ -941,6 +967,7 @@ module Aws::Panorama
941
967
  # resp.device_type #=> String, one of "PANORAMA_APPLIANCE_DEVELOPER_KIT", "PANORAMA_APPLIANCE"
942
968
  # resp.image_version #=> String
943
969
  # resp.job_id #=> String
970
+ # resp.job_type #=> String, one of "OTA", "REBOOT"
944
971
  # resp.status #=> String, one of "PENDING", "IN_PROGRESS", "VERIFYING", "REBOOTING", "DOWNLOADING", "COMPLETED", "FAILED"
945
972
  #
946
973
  # @see http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDeviceJob AWS API Documentation
@@ -1315,7 +1342,7 @@ module Aws::Panorama
1315
1342
  #
1316
1343
  # resp.next_token #=> String
1317
1344
  # resp.node_instances #=> Array
1318
- # resp.node_instances[0].current_status #=> String, one of "RUNNING", "ERROR", "NOT_AVAILABLE"
1345
+ # resp.node_instances[0].current_status #=> String, one of "RUNNING", "ERROR", "NOT_AVAILABLE", "PAUSED"
1319
1346
  # resp.node_instances[0].node_id #=> String
1320
1347
  # resp.node_instances[0].node_instance_id #=> String
1321
1348
  # resp.node_instances[0].node_name #=> String
@@ -1375,6 +1402,11 @@ module Aws::Panorama
1375
1402
  # resp.application_instances[0].description #=> String
1376
1403
  # resp.application_instances[0].health_status #=> String, one of "RUNNING", "ERROR", "NOT_AVAILABLE"
1377
1404
  # resp.application_instances[0].name #=> String
1405
+ # resp.application_instances[0].runtime_context_states #=> Array
1406
+ # resp.application_instances[0].runtime_context_states[0].desired_state #=> String, one of "RUNNING", "STOPPED", "REMOVED"
1407
+ # resp.application_instances[0].runtime_context_states[0].device_reported_status #=> String, one of "STOPPING", "STOPPED", "STOP_ERROR", "REMOVAL_FAILED", "REMOVAL_IN_PROGRESS", "STARTING", "RUNNING", "INSTALL_ERROR", "LAUNCHED", "LAUNCH_ERROR", "INSTALL_IN_PROGRESS"
1408
+ # resp.application_instances[0].runtime_context_states[0].device_reported_time #=> Time
1409
+ # resp.application_instances[0].runtime_context_states[0].runtime_context_name #=> String
1378
1410
  # resp.application_instances[0].status #=> String, one of "DEPLOYMENT_PENDING", "DEPLOYMENT_REQUESTED", "DEPLOYMENT_IN_PROGRESS", "DEPLOYMENT_ERROR", "DEPLOYMENT_SUCCEEDED", "REMOVAL_PENDING", "REMOVAL_REQUESTED", "REMOVAL_IN_PROGRESS", "REMOVAL_FAILED", "REMOVAL_SUCCEEDED", "DEPLOYMENT_FAILED"
1379
1411
  # resp.application_instances[0].status_description #=> String
1380
1412
  # resp.application_instances[0].tags #=> Hash
@@ -1423,7 +1455,7 @@ module Aws::Panorama
1423
1455
  # @example Request syntax with placeholder values
1424
1456
  #
1425
1457
  # resp = client.list_devices({
1426
- # device_aggregated_status_filter: "ERROR", # accepts ERROR, AWAITING_PROVISIONING, PENDING, FAILED, DELETING, ONLINE, OFFLINE, LEASE_EXPIRED, UPDATE_NEEDED
1458
+ # device_aggregated_status_filter: "ERROR", # accepts ERROR, AWAITING_PROVISIONING, PENDING, FAILED, DELETING, ONLINE, OFFLINE, LEASE_EXPIRED, UPDATE_NEEDED, REBOOTING
1427
1459
  # max_results: 1,
1428
1460
  # name_filter: "NameFilter",
1429
1461
  # next_token: "NextToken",
@@ -1438,10 +1470,11 @@ module Aws::Panorama
1438
1470
  # resp.devices[0].created_time #=> Time
1439
1471
  # resp.devices[0].current_software #=> String
1440
1472
  # resp.devices[0].description #=> String
1441
- # resp.devices[0].device_aggregated_status #=> String, one of "ERROR", "AWAITING_PROVISIONING", "PENDING", "FAILED", "DELETING", "ONLINE", "OFFLINE", "LEASE_EXPIRED", "UPDATE_NEEDED"
1473
+ # resp.devices[0].device_aggregated_status #=> String, one of "ERROR", "AWAITING_PROVISIONING", "PENDING", "FAILED", "DELETING", "ONLINE", "OFFLINE", "LEASE_EXPIRED", "UPDATE_NEEDED", "REBOOTING"
1442
1474
  # resp.devices[0].device_id #=> String
1443
1475
  # resp.devices[0].last_updated_time #=> Time
1444
1476
  # resp.devices[0].latest_device_job.image_version #=> String
1477
+ # resp.devices[0].latest_device_job.job_type #=> String, one of "OTA", "REBOOT"
1445
1478
  # resp.devices[0].latest_device_job.status #=> String, one of "PENDING", "IN_PROGRESS", "VERIFYING", "REBOOTING", "DOWNLOADING", "COMPLETED", "FAILED"
1446
1479
  # resp.devices[0].lease_expiration_time #=> Time
1447
1480
  # resp.devices[0].name #=> String
@@ -1494,6 +1527,7 @@ module Aws::Panorama
1494
1527
  # resp.device_jobs[0].device_id #=> String
1495
1528
  # resp.device_jobs[0].device_name #=> String
1496
1529
  # resp.device_jobs[0].job_id #=> String
1530
+ # resp.device_jobs[0].job_type #=> String, one of "OTA", "REBOOT"
1497
1531
  # resp.next_token #=> String
1498
1532
  #
1499
1533
  # @see http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevicesJobs AWS API Documentation
@@ -1870,6 +1904,43 @@ module Aws::Panorama
1870
1904
  req.send_request(options)
1871
1905
  end
1872
1906
 
1907
+ # Signal camera nodes to stop or resume.
1908
+ #
1909
+ # @option params [required, String] :application_instance_id
1910
+ # An application instance ID.
1911
+ #
1912
+ # @option params [required, Array<Types::NodeSignal>] :node_signals
1913
+ # A list of signals.
1914
+ #
1915
+ # @return [Types::SignalApplicationInstanceNodeInstancesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1916
+ #
1917
+ # * {Types::SignalApplicationInstanceNodeInstancesResponse#application_instance_id #application_instance_id} => String
1918
+ #
1919
+ # @example Request syntax with placeholder values
1920
+ #
1921
+ # resp = client.signal_application_instance_node_instances({
1922
+ # application_instance_id: "ApplicationInstanceId", # required
1923
+ # node_signals: [ # required
1924
+ # {
1925
+ # node_instance_id: "NodeInstanceId", # required
1926
+ # signal: "PAUSE", # required, accepts PAUSE, RESUME
1927
+ # },
1928
+ # ],
1929
+ # })
1930
+ #
1931
+ # @example Response structure
1932
+ #
1933
+ # resp.application_instance_id #=> String
1934
+ #
1935
+ # @see http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/SignalApplicationInstanceNodeInstances AWS API Documentation
1936
+ #
1937
+ # @overload signal_application_instance_node_instances(params = {})
1938
+ # @param [Hash] params ({})
1939
+ def signal_application_instance_node_instances(params = {}, options = {})
1940
+ req = build_request(:signal_application_instance_node_instances, params)
1941
+ req.send_request(options)
1942
+ end
1943
+
1873
1944
  # Tags a resource.
1874
1945
  #
1875
1946
  # @option params [required, String] :resource_arn
@@ -1969,7 +2040,7 @@ module Aws::Panorama
1969
2040
  params: params,
1970
2041
  config: config)
1971
2042
  context[:gem_name] = 'aws-sdk-panorama'
1972
- context[:gem_version] = '1.8.0'
2043
+ context[:gem_version] = '1.10.0'
1973
2044
  Seahorse::Client::Request.new(handlers, context)
1974
2045
  end
1975
2046
 
@@ -72,6 +72,7 @@ module Aws::Panorama
72
72
  DescribePackageVersionRequest = Shapes::StructureShape.new(name: 'DescribePackageVersionRequest')
73
73
  DescribePackageVersionResponse = Shapes::StructureShape.new(name: 'DescribePackageVersionResponse')
74
74
  Description = Shapes::StringShape.new(name: 'Description')
75
+ DesiredState = Shapes::StringShape.new(name: 'DesiredState')
75
76
  Device = Shapes::StructureShape.new(name: 'Device')
76
77
  DeviceAggregatedStatus = Shapes::StringShape.new(name: 'DeviceAggregatedStatus')
77
78
  DeviceArn = Shapes::StringShape.new(name: 'DeviceArn')
@@ -84,6 +85,7 @@ module Aws::Panorama
84
85
  DeviceJobList = Shapes::ListShape.new(name: 'DeviceJobList')
85
86
  DeviceList = Shapes::ListShape.new(name: 'DeviceList')
86
87
  DeviceName = Shapes::StringShape.new(name: 'DeviceName')
88
+ DeviceReportedStatus = Shapes::StringShape.new(name: 'DeviceReportedStatus')
87
89
  DeviceSerialNumber = Shapes::StringShape.new(name: 'DeviceSerialNumber')
88
90
  DeviceStatus = Shapes::StringShape.new(name: 'DeviceStatus')
89
91
  DeviceType = Shapes::StringShape.new(name: 'DeviceType')
@@ -165,6 +167,9 @@ module Aws::Panorama
165
167
  NodePackageName = Shapes::StringShape.new(name: 'NodePackageName')
166
168
  NodePackagePatchVersion = Shapes::StringShape.new(name: 'NodePackagePatchVersion')
167
169
  NodePackageVersion = Shapes::StringShape.new(name: 'NodePackageVersion')
170
+ NodeSignal = Shapes::StructureShape.new(name: 'NodeSignal')
171
+ NodeSignalList = Shapes::ListShape.new(name: 'NodeSignalList')
172
+ NodeSignalValue = Shapes::StringShape.new(name: 'NodeSignalValue')
168
173
  NodesList = Shapes::ListShape.new(name: 'NodesList')
169
174
  NtpPayload = Shapes::StructureShape.new(name: 'NtpPayload')
170
175
  NtpServerList = Shapes::ListShape.new(name: 'NtpServerList')
@@ -204,12 +209,17 @@ module Aws::Panorama
204
209
  RegisterPackageVersionResponse = Shapes::StructureShape.new(name: 'RegisterPackageVersionResponse')
205
210
  RemoveApplicationInstanceRequest = Shapes::StructureShape.new(name: 'RemoveApplicationInstanceRequest')
206
211
  RemoveApplicationInstanceResponse = Shapes::StructureShape.new(name: 'RemoveApplicationInstanceResponse')
212
+ ReportedRuntimeContextState = Shapes::StructureShape.new(name: 'ReportedRuntimeContextState')
213
+ ReportedRuntimeContextStates = Shapes::ListShape.new(name: 'ReportedRuntimeContextStates')
207
214
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
208
215
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
209
216
  RetryAfterSeconds = Shapes::IntegerShape.new(name: 'RetryAfterSeconds')
217
+ RuntimeContextName = Shapes::StringShape.new(name: 'RuntimeContextName')
210
218
  RuntimeRoleArn = Shapes::StringShape.new(name: 'RuntimeRoleArn')
211
219
  S3Location = Shapes::StructureShape.new(name: 'S3Location')
212
220
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
221
+ SignalApplicationInstanceNodeInstancesRequest = Shapes::StructureShape.new(name: 'SignalApplicationInstanceNodeInstancesRequest')
222
+ SignalApplicationInstanceNodeInstancesResponse = Shapes::StructureShape.new(name: 'SignalApplicationInstanceNodeInstancesResponse')
213
223
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
214
224
  StaticIpConnectionInfo = Shapes::StructureShape.new(name: 'StaticIpConnectionInfo')
215
225
  StatusFilter = Shapes::StringShape.new(name: 'StatusFilter')
@@ -257,6 +267,7 @@ module Aws::Panorama
257
267
  ApplicationInstance.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
258
268
  ApplicationInstance.add_member(:health_status, Shapes::ShapeRef.new(shape: ApplicationInstanceHealthStatus, location_name: "HealthStatus"))
259
269
  ApplicationInstance.add_member(:name, Shapes::ShapeRef.new(shape: ApplicationInstanceName, location_name: "Name"))
270
+ ApplicationInstance.add_member(:runtime_context_states, Shapes::ShapeRef.new(shape: ReportedRuntimeContextStates, location_name: "RuntimeContextStates"))
260
271
  ApplicationInstance.add_member(:status, Shapes::ShapeRef.new(shape: ApplicationInstanceStatus, location_name: "Status"))
261
272
  ApplicationInstance.add_member(:status_description, Shapes::ShapeRef.new(shape: ApplicationInstanceStatusDescription, location_name: "StatusDescription"))
262
273
  ApplicationInstance.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
@@ -291,7 +302,7 @@ module Aws::Panorama
291
302
  CreateApplicationInstanceResponse.struct_class = Types::CreateApplicationInstanceResponse
292
303
 
293
304
  CreateJobForDevicesRequest.add_member(:device_ids, Shapes::ShapeRef.new(shape: DeviceIdList, required: true, location_name: "DeviceIds"))
294
- CreateJobForDevicesRequest.add_member(:device_job_config, Shapes::ShapeRef.new(shape: DeviceJobConfig, required: true, location_name: "DeviceJobConfig"))
305
+ CreateJobForDevicesRequest.add_member(:device_job_config, Shapes::ShapeRef.new(shape: DeviceJobConfig, location_name: "DeviceJobConfig"))
295
306
  CreateJobForDevicesRequest.add_member(:job_type, Shapes::ShapeRef.new(shape: JobType, required: true, location_name: "JobType"))
296
307
  CreateJobForDevicesRequest.struct_class = Types::CreateJobForDevicesRequest
297
308
 
@@ -376,6 +387,7 @@ module Aws::Panorama
376
387
  DescribeApplicationInstanceResponse.add_member(:health_status, Shapes::ShapeRef.new(shape: ApplicationInstanceHealthStatus, location_name: "HealthStatus"))
377
388
  DescribeApplicationInstanceResponse.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "LastUpdatedTime"))
378
389
  DescribeApplicationInstanceResponse.add_member(:name, Shapes::ShapeRef.new(shape: ApplicationInstanceName, location_name: "Name"))
390
+ DescribeApplicationInstanceResponse.add_member(:runtime_context_states, Shapes::ShapeRef.new(shape: ReportedRuntimeContextStates, location_name: "RuntimeContextStates"))
379
391
  DescribeApplicationInstanceResponse.add_member(:runtime_role_arn, Shapes::ShapeRef.new(shape: RuntimeRoleArn, location_name: "RuntimeRoleArn"))
380
392
  DescribeApplicationInstanceResponse.add_member(:status, Shapes::ShapeRef.new(shape: ApplicationInstanceStatus, location_name: "Status"))
381
393
  DescribeApplicationInstanceResponse.add_member(:status_description, Shapes::ShapeRef.new(shape: ApplicationInstanceStatusDescription, location_name: "StatusDescription"))
@@ -392,6 +404,7 @@ module Aws::Panorama
392
404
  DescribeDeviceJobResponse.add_member(:device_type, Shapes::ShapeRef.new(shape: DeviceType, location_name: "DeviceType"))
393
405
  DescribeDeviceJobResponse.add_member(:image_version, Shapes::ShapeRef.new(shape: ImageVersion, location_name: "ImageVersion"))
394
406
  DescribeDeviceJobResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "JobId"))
407
+ DescribeDeviceJobResponse.add_member(:job_type, Shapes::ShapeRef.new(shape: JobType, location_name: "JobType"))
395
408
  DescribeDeviceJobResponse.add_member(:status, Shapes::ShapeRef.new(shape: UpdateProgress, location_name: "Status"))
396
409
  DescribeDeviceJobResponse.struct_class = Types::DescribeDeviceJobResponse
397
410
 
@@ -525,6 +538,7 @@ module Aws::Panorama
525
538
  DeviceJob.add_member(:device_id, Shapes::ShapeRef.new(shape: DeviceId, location_name: "DeviceId"))
526
539
  DeviceJob.add_member(:device_name, Shapes::ShapeRef.new(shape: DeviceName, location_name: "DeviceName"))
527
540
  DeviceJob.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "JobId"))
541
+ DeviceJob.add_member(:job_type, Shapes::ShapeRef.new(shape: JobType, location_name: "JobType"))
528
542
  DeviceJob.struct_class = Types::DeviceJob
529
543
 
530
544
  DeviceJobConfig.add_member(:ota_job_config, Shapes::ShapeRef.new(shape: OTAJobConfig, location_name: "OTAJobConfig"))
@@ -564,6 +578,7 @@ module Aws::Panorama
564
578
  JobTagsList.member = Shapes::ShapeRef.new(shape: JobResourceTags)
565
579
 
566
580
  LatestDeviceJob.add_member(:image_version, Shapes::ShapeRef.new(shape: ImageVersion, location_name: "ImageVersion"))
581
+ LatestDeviceJob.add_member(:job_type, Shapes::ShapeRef.new(shape: JobType, location_name: "JobType"))
567
582
  LatestDeviceJob.add_member(:status, Shapes::ShapeRef.new(shape: UpdateProgress, location_name: "Status"))
568
583
  LatestDeviceJob.struct_class = Types::LatestDeviceJob
569
584
 
@@ -732,6 +747,12 @@ module Aws::Panorama
732
747
  NodeOutputPort.add_member(:type, Shapes::ShapeRef.new(shape: PortType, location_name: "Type"))
733
748
  NodeOutputPort.struct_class = Types::NodeOutputPort
734
749
 
750
+ NodeSignal.add_member(:node_instance_id, Shapes::ShapeRef.new(shape: NodeInstanceId, required: true, location_name: "NodeInstanceId"))
751
+ NodeSignal.add_member(:signal, Shapes::ShapeRef.new(shape: NodeSignalValue, required: true, location_name: "Signal"))
752
+ NodeSignal.struct_class = Types::NodeSignal
753
+
754
+ NodeSignalList.member = Shapes::ShapeRef.new(shape: NodeSignal)
755
+
735
756
  NodesList.member = Shapes::ShapeRef.new(shape: Node)
736
757
 
737
758
  NtpPayload.add_member(:ntp_servers, Shapes::ShapeRef.new(shape: NtpServerList, required: true, location_name: "NtpServers"))
@@ -828,6 +849,14 @@ module Aws::Panorama
828
849
 
829
850
  RemoveApplicationInstanceResponse.struct_class = Types::RemoveApplicationInstanceResponse
830
851
 
852
+ ReportedRuntimeContextState.add_member(:desired_state, Shapes::ShapeRef.new(shape: DesiredState, required: true, location_name: "DesiredState"))
853
+ ReportedRuntimeContextState.add_member(:device_reported_status, Shapes::ShapeRef.new(shape: DeviceReportedStatus, required: true, location_name: "DeviceReportedStatus"))
854
+ ReportedRuntimeContextState.add_member(:device_reported_time, Shapes::ShapeRef.new(shape: TimeStamp, required: true, location_name: "DeviceReportedTime"))
855
+ ReportedRuntimeContextState.add_member(:runtime_context_name, Shapes::ShapeRef.new(shape: RuntimeContextName, required: true, location_name: "RuntimeContextName"))
856
+ ReportedRuntimeContextState.struct_class = Types::ReportedRuntimeContextState
857
+
858
+ ReportedRuntimeContextStates.member = Shapes::ShapeRef.new(shape: ReportedRuntimeContextState)
859
+
831
860
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
832
861
  ResourceNotFoundException.add_member(:resource_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceId"))
833
862
  ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ResourceType"))
@@ -845,6 +874,13 @@ module Aws::Panorama
845
874
  ServiceQuotaExceededException.add_member(:service_code, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ServiceCode"))
846
875
  ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
847
876
 
877
+ SignalApplicationInstanceNodeInstancesRequest.add_member(:application_instance_id, Shapes::ShapeRef.new(shape: ApplicationInstanceId, required: true, location: "uri", location_name: "ApplicationInstanceId"))
878
+ SignalApplicationInstanceNodeInstancesRequest.add_member(:node_signals, Shapes::ShapeRef.new(shape: NodeSignalList, required: true, location_name: "NodeSignals"))
879
+ SignalApplicationInstanceNodeInstancesRequest.struct_class = Types::SignalApplicationInstanceNodeInstancesRequest
880
+
881
+ SignalApplicationInstanceNodeInstancesResponse.add_member(:application_instance_id, Shapes::ShapeRef.new(shape: ApplicationInstanceId, required: true, location_name: "ApplicationInstanceId"))
882
+ SignalApplicationInstanceNodeInstancesResponse.struct_class = Types::SignalApplicationInstanceNodeInstancesResponse
883
+
848
884
  StaticIpConnectionInfo.add_member(:default_gateway, Shapes::ShapeRef.new(shape: DefaultGateway, required: true, location_name: "DefaultGateway"))
849
885
  StaticIpConnectionInfo.add_member(:dns, Shapes::ShapeRef.new(shape: DnsList, required: true, location_name: "Dns"))
850
886
  StaticIpConnectionInfo.add_member(:ip_address, Shapes::ShapeRef.new(shape: IpAddress, required: true, location_name: "IpAddress"))
@@ -1343,6 +1379,18 @@ module Aws::Panorama
1343
1379
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1344
1380
  end)
1345
1381
 
1382
+ api.add_operation(:signal_application_instance_node_instances, Seahorse::Model::Operation.new.tap do |o|
1383
+ o.name = "SignalApplicationInstanceNodeInstances"
1384
+ o.http_method = "PUT"
1385
+ o.http_request_uri = "/application-instances/{ApplicationInstanceId}/node-signals"
1386
+ o.input = Shapes::ShapeRef.new(shape: SignalApplicationInstanceNodeInstancesRequest)
1387
+ o.output = Shapes::ShapeRef.new(shape: SignalApplicationInstanceNodeInstancesResponse)
1388
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1389
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1390
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1391
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1392
+ end)
1393
+
1346
1394
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1347
1395
  o.name = "TagResource"
1348
1396
  o.http_method = "POST"
@@ -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::Panorama
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,110 @@
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::Panorama
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
+ dCI6eyJ1cmwiOiJodHRwczovL3Bhbm9yYW1hLWZpcHMue1JlZ2lvbn0ue1Bh
77
+ cnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJvcGVydGll
78
+ cyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfSx7ImNv
79
+ bmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFjayBhcmUg
80
+ ZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQg
81
+ b25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
82
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
83
+ UyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlv
84
+ bnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4i
85
+ OiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0s
86
+ InN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3si
87
+ Y29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vcGFu
88
+ b3JhbWEtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZp
89
+ eH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5k
90
+ cG9pbnQifV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBpcyBl
91
+ bmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJ
92
+ UFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJi
93
+ b29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0YWNrIn0s
94
+ dHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
95
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJmbiI6Imdl
96
+ dEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3Vw
97
+ cG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
98
+ ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL3Bh
99
+ bm9yYW1hLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5z
100
+ U3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
101
+ OiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFs
102
+ U3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qg
103
+ c3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
104
+ aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vcGFub3JhbWEu
105
+ e1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVy
106
+ dGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
107
+
108
+ JSON
109
+ end
110
+ end