aws-sdk-guardduty 1.59.0 → 1.61.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: 14858a583fa7b814db83884128fdc343437d8e63aeb571f460bee977d8a874e2
4
- data.tar.gz: 5249beafe46d31cd9251c589248137958f5fbf2851fe433900570e7542bbbc88
3
+ metadata.gz: 2df1ae31bc9a1f13d2d647b6b8c3a10e16c8da4ea0ea16e607ca7877a7d17777
4
+ data.tar.gz: 8c7c4ad387785604b3d61dac52f813a10b1e4fa4fa5ffe25c05f86405736d664
5
5
  SHA512:
6
- metadata.gz: 3aa05b0122bfc802c1428b911004a0bbb9600e997488389153ac0e163b55e885decba26acad14ed104d86d8ddfd9cd3b30577d9269121e0def97ed146874d75c
7
- data.tar.gz: ebbae9e1e0e553ad0dcfddd379805a2bf89a76777574af33ffef4f6f66f9d1a4d1af84e8505d16865d8838c4b7655da3215cb0004c6bb51c9725a57fe1e3bf82
6
+ metadata.gz: 876ef5c5f13a6f50f4bdd043b67c10c6e36351fa12e5b0bcaf239f7118f669531b7623f29f7e3e7df35d9bc769a78e813924c943468260d9f7634969a9b9fdc2
7
+ data.tar.gz: a65754b5516a39116dc94cf24e27a573490d50a9ace9176f568adaf378418cdd486c310abcadbfaf081fdd67da3fe5d64ebed9c0c8ba2ba409bb3794edcdb395
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.61.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.60.0 (2022-10-13)
10
+ ------------------
11
+
12
+ * Feature - Add UnprocessedDataSources to CreateDetectorResponse which specifies the data sources that couldn't be enabled during the CreateDetector request. In addition, update documentations.
13
+
4
14
  1.59.0 (2022-07-26)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.59.0
1
+ 1.61.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(:guardduty)
@@ -79,8 +79,9 @@ module Aws::GuardDuty
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::GuardDuty::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -287,6 +288,19 @@ module Aws::GuardDuty
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::GuardDuty
300
314
  # When `true`, request parameters are validated before
301
315
  # sending the request.
302
316
  #
317
+ # @option options [Aws::GuardDuty::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::GuardDuty::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
  #
@@ -477,6 +494,7 @@ module Aws::GuardDuty
477
494
  # @return [Types::CreateDetectorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
478
495
  #
479
496
  # * {Types::CreateDetectorResponse#detector_id #detector_id} => String
497
+ # * {Types::CreateDetectorResponse#unprocessed_data_sources #unprocessed_data_sources} => Types::UnprocessedDataSourcesResult
480
498
  #
481
499
  # @example Request syntax with placeholder values
482
500
  #
@@ -507,6 +525,9 @@ module Aws::GuardDuty
507
525
  # @example Response structure
508
526
  #
509
527
  # resp.detector_id #=> String
528
+ # resp.unprocessed_data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.status #=> String, one of "ENABLED", "DISABLED"
529
+ # resp.unprocessed_data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.reason #=> String
530
+ # resp.unprocessed_data_sources.malware_protection.service_role #=> String
510
531
  #
511
532
  # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateDetector AWS API Documentation
512
533
  #
@@ -1227,7 +1248,9 @@ module Aws::GuardDuty
1227
1248
  req.send_request(options)
1228
1249
  end
1229
1250
 
1230
- # Returns a list of malware scans.
1251
+ # Returns a list of malware scans. Each member account can view the
1252
+ # malware scans for their own accounts. An administrator can view the
1253
+ # malware scans for all the member accounts.
1231
1254
  #
1232
1255
  # @option params [required, String] :detector_id
1233
1256
  # The unique ID of the detector that the request is associated with.
@@ -1467,8 +1490,8 @@ module Aws::GuardDuty
1467
1490
  req.send_request(options)
1468
1491
  end
1469
1492
 
1470
- # Disassociates GuardDuty member accounts (to the current GuardDuty
1471
- # administrator account) specified by the account IDs.
1493
+ # Disassociates GuardDuty member accounts (to the current administrator
1494
+ # account) specified by the account IDs.
1472
1495
  #
1473
1496
  # @option params [required, String] :detector_id
1474
1497
  # The unique ID of the detector of the GuardDuty account whose members
@@ -1594,6 +1617,7 @@ module Aws::GuardDuty
1594
1617
  # resp.data_sources.s3_logs.status #=> String, one of "ENABLED", "DISABLED"
1595
1618
  # resp.data_sources.kubernetes.audit_logs.status #=> String, one of "ENABLED", "DISABLED"
1596
1619
  # resp.data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.status #=> String, one of "ENABLED", "DISABLED"
1620
+ # resp.data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.reason #=> String
1597
1621
  # resp.data_sources.malware_protection.service_role #=> String
1598
1622
  # resp.tags #=> Hash
1599
1623
  # resp.tags["TagKey"] #=> String
@@ -2201,6 +2225,7 @@ module Aws::GuardDuty
2201
2225
  # resp.member_data_source_configurations[0].data_sources.s3_logs.status #=> String, one of "ENABLED", "DISABLED"
2202
2226
  # resp.member_data_source_configurations[0].data_sources.kubernetes.audit_logs.status #=> String, one of "ENABLED", "DISABLED"
2203
2227
  # resp.member_data_source_configurations[0].data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.status #=> String, one of "ENABLED", "DISABLED"
2228
+ # resp.member_data_source_configurations[0].data_sources.malware_protection.scan_ec2_instance_with_findings.ebs_volumes.reason #=> String
2204
2229
  # resp.member_data_source_configurations[0].data_sources.malware_protection.service_role #=> String
2205
2230
  # resp.unprocessed_accounts #=> Array
2206
2231
  # resp.unprocessed_accounts[0].account_id #=> String
@@ -2874,7 +2899,13 @@ module Aws::GuardDuty
2874
2899
  # @option params [String] :only_associated
2875
2900
  # Specifies whether to only return associated members or to return all
2876
2901
  # members (including members who haven't been invited yet or have been
2877
- # disassociated).
2902
+ # disassociated). Member accounts must have been previously associated
2903
+ # with the GuardDuty administrator account using [ `Create Members`
2904
+ # ][1].
2905
+ #
2906
+ #
2907
+ #
2908
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateMembers.html
2878
2909
  #
2879
2910
  # @return [Types::ListMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2880
2911
  #
@@ -3448,7 +3479,7 @@ module Aws::GuardDuty
3448
3479
  # resources to scan.
3449
3480
  #
3450
3481
  # @option params [String] :ebs_snapshot_preservation
3451
- # An enum value representing possible snapshot preservations.
3482
+ # An enum value representing possible snapshot preservation settings.
3452
3483
  #
3453
3484
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3454
3485
  #
@@ -3680,7 +3711,7 @@ module Aws::GuardDuty
3680
3711
  params: params,
3681
3712
  config: config)
3682
3713
  context[:gem_name] = 'aws-sdk-guardduty'
3683
- context[:gem_version] = '1.59.0'
3714
+ context[:gem_version] = '1.61.0'
3684
3715
  Seahorse::Client::Request.new(handlers, context)
3685
3716
  end
3686
3717
 
@@ -338,6 +338,7 @@ module Aws::GuardDuty
338
338
  UnarchiveFindingsResponse = Shapes::StructureShape.new(name: 'UnarchiveFindingsResponse')
339
339
  UnprocessedAccount = Shapes::StructureShape.new(name: 'UnprocessedAccount')
340
340
  UnprocessedAccounts = Shapes::ListShape.new(name: 'UnprocessedAccounts')
341
+ UnprocessedDataSourcesResult = Shapes::StructureShape.new(name: 'UnprocessedDataSourcesResult')
341
342
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
342
343
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
343
344
  UpdateDetectorRequest = Shapes::StructureShape.new(name: 'UpdateDetectorRequest')
@@ -520,6 +521,7 @@ module Aws::GuardDuty
520
521
  CreateDetectorRequest.struct_class = Types::CreateDetectorRequest
521
522
 
522
523
  CreateDetectorResponse.add_member(:detector_id, Shapes::ShapeRef.new(shape: DetectorId, location_name: "detectorId"))
524
+ CreateDetectorResponse.add_member(:unprocessed_data_sources, Shapes::ShapeRef.new(shape: UnprocessedDataSourcesResult, location_name: "unprocessedDataSources"))
523
525
  CreateDetectorResponse.struct_class = Types::CreateDetectorResponse
524
526
 
525
527
  CreateFilterRequest.add_member(:detector_id, Shapes::ShapeRef.new(shape: DetectorId, required: true, location: "uri", location_name: "detectorId"))
@@ -751,6 +753,7 @@ module Aws::GuardDuty
751
753
  EbsVolumeScanDetails.struct_class = Types::EbsVolumeScanDetails
752
754
 
753
755
  EbsVolumesResult.add_member(:status, Shapes::ShapeRef.new(shape: DataSourceStatus, location_name: "status"))
756
+ EbsVolumesResult.add_member(:reason, Shapes::ShapeRef.new(shape: String, location_name: "reason"))
754
757
  EbsVolumesResult.struct_class = Types::EbsVolumesResult
755
758
 
756
759
  EcsClusterDetails.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
@@ -1533,6 +1536,9 @@ module Aws::GuardDuty
1533
1536
 
1534
1537
  UnprocessedAccounts.member = Shapes::ShapeRef.new(shape: UnprocessedAccount)
1535
1538
 
1539
+ UnprocessedDataSourcesResult.add_member(:malware_protection, Shapes::ShapeRef.new(shape: MalwareProtectionConfigurationResult, location_name: "malwareProtection"))
1540
+ UnprocessedDataSourcesResult.struct_class = Types::UnprocessedDataSourcesResult
1541
+
1536
1542
  UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: GuardDutyArn, required: true, location: "uri", location_name: "resourceArn"))
1537
1543
  UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location: "querystring", location_name: "tagKeys"))
1538
1544
  UntagResourceRequest.struct_class = Types::UntagResourceRequest
@@ -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::GuardDuty
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,117 @@
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::GuardDuty
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
+ dCI6eyJ1cmwiOiJodHRwczovL2d1YXJkZHV0eS1maXBzLntSZWdpb259LntQ
77
+ YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
78
+ ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
79
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJl
80
+ IGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0
81
+ IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMi
82
+ Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJ
83
+ UFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
84
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
85
+ IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
86
+ LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
87
+ ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
88
+ aXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlsiYXdzLXVz
89
+ LWdvdiIseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRp
90
+ b25SZXN1bHQifSwibmFtZSJdfV19XSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
91
+ cHM6Ly9ndWFyZGR1dHkue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNT
92
+ dWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6
93
+ ImVuZHBvaW50In0seyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJs
94
+ IjoiaHR0cHM6Ly9ndWFyZGR1dHktZmlwcy57UmVnaW9ufS57UGFydGl0aW9u
95
+ UmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6
96
+ e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwi
97
+ ZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRv
98
+ ZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25k
99
+ aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYi
100
+ OiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
101
+ IjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2
102
+ IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRp
103
+ dGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6
104
+ InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7
105
+ InVybCI6Imh0dHBzOi8vZ3VhcmRkdXR5LntSZWdpb259LntQYXJ0aXRpb25S
106
+ ZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJo
107
+ ZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25z
108
+ IjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBw
109
+ YXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoi
110
+ ZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6
111
+ Imh0dHBzOi8vZ3VhcmRkdXR5LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
112
+ ZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5
113
+ cGUiOiJlbmRwb2ludCJ9XX1dfQ==
114
+
115
+ JSON
116
+ end
117
+ end