aws-sdk-cloudtrail 1.51.0 → 1.53.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: 0d913bff17768e79888c389935ccc3082f330e732957750fbc50e886567982c6
4
- data.tar.gz: 691cb628f9e15c1f9b31663796bef4c358ea9590f36cff7e4dcb082c4c6b3c29
3
+ metadata.gz: dcc317a919c81e8b866f2758f10b89e15326810b869dcc7356de1d3570da32b8
4
+ data.tar.gz: 0a45e1cec8f918696364fa0b670b1d44935b7c3c814b56f173d712294fac0d42
5
5
  SHA512:
6
- metadata.gz: f8bceeac781dab3962b59a9b193385094d3bab825a9f9ae2ce7ef015417ac3d4ea3774d9792b730c5b2726193d6c504d9b9c34182c955c77bdb6562f5e2d886b
7
- data.tar.gz: 16c2d8a4a3a07c860911b7ac83ff706bd42f696ae9641a2328ef7e215dc721a8eaf98d15a718731924a8f97f45f311140675da8c6ac562c094e494e8c44aa3d5
6
+ metadata.gz: 824b8ff8e53e01922f28c7bc0651fcf65b1733199bd499cf3bfe3394e39902f9d1f724c02e233b74c1542b9a296df6d89b7fe837d208d1dd16381f48efae88be
7
+ data.tar.gz: 047107d8079b4f8f6d6d623c6e71fa58a7331d26327f0055001018ef62ef1f3aed35be78180798f65b02a9555481066b2ee4e4470369ad51815c638b7778aa89
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.53.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.52.0 (2022-10-19)
10
+ ------------------
11
+
12
+ * Feature - This release includes support for exporting CloudTrail Lake query results to an Amazon S3 bucket.
13
+
4
14
  1.51.0 (2022-09-19)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.51.0
1
+ 1.53.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/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:cloudtrail)
@@ -79,8 +79,9 @@ module Aws::CloudTrail
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::JsonRpc)
84
+ add_plugin(Aws::CloudTrail::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::CloudTrail
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::CloudTrail
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::CloudTrail::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::CloudTrail::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -644,7 +661,7 @@ module Aws::CloudTrail
644
661
  #
645
662
  # @option params [String] :kms_key_id
646
663
  # Specifies the KMS key ID to use to encrypt the logs delivered by
647
- # CloudTrail. The value can be an alias name prefixed by "alias/", a
664
+ # CloudTrail. The value can be an alias name prefixed by `alias/`, a
648
665
  # fully specified ARN to an alias, a fully specified ARN to a key, or a
649
666
  # globally unique identifier.
650
667
  #
@@ -654,13 +671,13 @@ module Aws::CloudTrail
654
671
  #
655
672
  # Examples:
656
673
  #
657
- # * alias/MyAliasName
674
+ # * `alias/MyAliasName`
658
675
  #
659
- # * arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
676
+ # * `arn:aws:kms:us-east-2:123456789012:alias/MyAliasName`
660
677
  #
661
- # * arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012
678
+ # * `arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012`
662
679
  #
663
- # * 12345678-1234-1234-1234-123456789012
680
+ # * `12345678-1234-1234-1234-123456789012`
664
681
  #
665
682
  #
666
683
  #
@@ -820,6 +837,8 @@ module Aws::CloudTrail
820
837
  # * {Types::DescribeQueryResponse#query_status #query_status} => String
821
838
  # * {Types::DescribeQueryResponse#query_statistics #query_statistics} => Types::QueryStatisticsForDescribeQuery
822
839
  # * {Types::DescribeQueryResponse#error_message #error_message} => String
840
+ # * {Types::DescribeQueryResponse#delivery_s3_uri #delivery_s3_uri} => String
841
+ # * {Types::DescribeQueryResponse#delivery_status #delivery_status} => String
823
842
  #
824
843
  # @example Request syntax with placeholder values
825
844
  #
@@ -839,6 +858,8 @@ module Aws::CloudTrail
839
858
  # resp.query_statistics.execution_time_in_millis #=> Integer
840
859
  # resp.query_statistics.creation_time #=> Time
841
860
  # resp.error_message #=> String
861
+ # resp.delivery_s3_uri #=> String
862
+ # resp.delivery_status #=> String, one of "SUCCESS", "FAILED", "FAILED_SIGNING_FILE", "PENDING", "RESOURCE_NOT_FOUND", "ACCESS_DENIED", "ACCESS_DENIED_SIGNING_FILE", "CANCELLED", "UNKNOWN"
842
863
  #
843
864
  # @see http://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DescribeQuery AWS API Documentation
844
865
  #
@@ -923,13 +944,18 @@ module Aws::CloudTrail
923
944
  req.send_request(options)
924
945
  end
925
946
 
926
- # Returns the specified CloudTrail service-linked channel. Amazon Web
927
- # Services services create service-linked channels to view CloudTrail
928
- # events.
947
+ # Returns information about a specific channel. Amazon Web Services
948
+ # services create service-linked channels to get information about
949
+ # CloudTrail events on your behalf. For more information about
950
+ # service-linked channels, see [Viewing service-linked channels for
951
+ # CloudTrail by using the CLI.][1].
952
+ #
953
+ #
954
+ #
955
+ # [1]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html
929
956
  #
930
957
  # @option params [required, String] :channel
931
- # The Amazon Resource Name (ARN) of the CloudTrail service-linked
932
- # channel.
958
+ # The ARN or `UUID` of a channel.
933
959
  #
934
960
  # @return [Types::GetChannelResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
935
961
  #
@@ -1138,7 +1164,7 @@ module Aws::CloudTrail
1138
1164
  req.send_request(options)
1139
1165
  end
1140
1166
 
1141
- # Returns information for the specified import.
1167
+ # Returns information about a specific import.
1142
1168
  #
1143
1169
  # @option params [required, String] :import_id
1144
1170
  # The ID for the import.
@@ -1421,13 +1447,25 @@ module Aws::CloudTrail
1421
1447
  req.send_request(options)
1422
1448
  end
1423
1449
 
1424
- # Returns all CloudTrail channels.
1450
+ # Lists the channels in the current account, and their source names.
1451
+ # Amazon Web Services services create service-linked channels get
1452
+ # information about CloudTrail events on your behalf. For more
1453
+ # information about service-linked channels, see [Viewing service-linked
1454
+ # channels for CloudTrail by using the CLI][1].
1455
+ #
1456
+ #
1457
+ #
1458
+ # [1]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.html
1425
1459
  #
1426
1460
  # @option params [Integer] :max_results
1427
1461
  # The maximum number of CloudTrail channels to display on a single page.
1428
1462
  #
1429
1463
  # @option params [String] :next_token
1430
- # A token you can use to get the next page of results.
1464
+ # The token to use to get the next page of results after a previous API
1465
+ # call. This token must be passed in with the same parameters that were
1466
+ # specified in the original call. For example, if the original call
1467
+ # specified an AttributeKey of 'Username' with a value of 'root',
1468
+ # the call with NextToken should include those same parameters.
1431
1469
  #
1432
1470
  # @return [Types::ListChannelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1433
1471
  #
@@ -1573,7 +1611,7 @@ module Aws::CloudTrail
1573
1611
  # The maximum number of imports to display on a single page.
1574
1612
  #
1575
1613
  # @option params [String] :destination
1576
- # The destination event data store.
1614
+ # The ARN of the destination event data store.
1577
1615
  #
1578
1616
  # @option params [String] :import_status
1579
1617
  # The status of the import.
@@ -2264,22 +2302,30 @@ module Aws::CloudTrail
2264
2302
  end
2265
2303
 
2266
2304
  # Starts an import of logged trail events from a source S3 bucket to a
2267
- # destination event data store.
2305
+ # destination event data store. By default, CloudTrail only imports
2306
+ # events contained in the S3 bucket's `CloudTrail` prefix and the
2307
+ # prefixes inside the `CloudTrail` prefix, and does not check prefixes
2308
+ # for other Amazon Web Services services. If you want to import
2309
+ # CloudTrail events contained in another prefix, you must include the
2310
+ # prefix in the `S3LocationUri`. For more considerations about importing
2311
+ # trail events, see [Considerations][1].
2268
2312
  #
2269
2313
  # When you start a new import, the `Destinations` and `ImportSource`
2270
2314
  # parameters are required. Before starting a new import, disable any
2271
2315
  # access control lists (ACLs) attached to the source S3 bucket. For more
2272
2316
  # information about disabling ACLs, see [Controlling ownership of
2273
- # objects and disabling ACLs for your bucket][1].
2317
+ # objects and disabling ACLs for your bucket][2].
2274
2318
  #
2275
2319
  # When you retry an import, the `ImportID` parameter is required.
2276
2320
  #
2277
2321
  #
2278
2322
  #
2279
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
2323
+ # [1]: https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-copy-trail-to-lake.html#cloudtrail-trail-copy-considerations
2324
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
2280
2325
  #
2281
2326
  # @option params [Array<String>] :destinations
2282
- # The destination event data store. Use this parameter for a new import.
2327
+ # The ARN of the destination event data store. Use this parameter for a
2328
+ # new import.
2283
2329
  #
2284
2330
  # @option params [Types::ImportSource] :import_source
2285
2331
  # The source S3 bucket for the import. Use this parameter for a new
@@ -2288,12 +2334,18 @@ module Aws::CloudTrail
2288
2334
  # @option params [Time,DateTime,Date,Integer,String] :start_event_time
2289
2335
  # Use with `EndEventTime` to bound a `StartImport` request, and limit
2290
2336
  # imported trail events to only those events logged within a specified
2291
- # time period.
2337
+ # time period. When you specify a time range, CloudTrail checks the
2338
+ # prefix and log file names to verify the names contain a date between
2339
+ # the specified `StartEventTime` and `EndEventTime` before attempting to
2340
+ # import events.
2292
2341
  #
2293
2342
  # @option params [Time,DateTime,Date,Integer,String] :end_event_time
2294
2343
  # Use with `StartEventTime` to bound a `StartImport` request, and limit
2295
2344
  # imported trail events to only those events logged within a specified
2296
- # time period.
2345
+ # time period. When you specify a time range, CloudTrail checks the
2346
+ # prefix and log file names to verify the names contain a date between
2347
+ # the specified `StartEventTime` and `EndEventTime` before attempting to
2348
+ # import events.
2297
2349
  #
2298
2350
  # @option params [String] :import_id
2299
2351
  # The ID of the import. Use this parameter when you are retrying an
@@ -2382,10 +2434,15 @@ module Aws::CloudTrail
2382
2434
 
2383
2435
  # Starts a CloudTrail Lake query. The required `QueryStatement`
2384
2436
  # parameter provides your SQL query, enclosed in single quotation marks.
2437
+ # Use the optional `DeliveryS3Uri` parameter to deliver the query
2438
+ # results to an S3 bucket.
2385
2439
  #
2386
2440
  # @option params [required, String] :query_statement
2387
2441
  # The SQL code of your query.
2388
2442
  #
2443
+ # @option params [String] :delivery_s3_uri
2444
+ # The URI for the S3 bucket where CloudTrail delivers the query results.
2445
+ #
2389
2446
  # @return [Types::StartQueryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2390
2447
  #
2391
2448
  # * {Types::StartQueryResponse#query_id #query_id} => String
@@ -2394,6 +2451,7 @@ module Aws::CloudTrail
2394
2451
  #
2395
2452
  # resp = client.start_query({
2396
2453
  # query_statement: "QueryStatement", # required
2454
+ # delivery_s3_uri: "DeliveryS3Uri",
2397
2455
  # })
2398
2456
  #
2399
2457
  # @example Response structure
@@ -2804,7 +2862,7 @@ module Aws::CloudTrail
2804
2862
  params: params,
2805
2863
  config: config)
2806
2864
  context[:gem_name] = 'aws-sdk-cloudtrail'
2807
- context[:gem_version] = '1.51.0'
2865
+ context[:gem_version] = '1.53.0'
2808
2866
  Seahorse::Client::Request.new(handlers, context)
2809
2867
  end
2810
2868
 
@@ -47,6 +47,8 @@ module Aws::CloudTrail
47
47
  DeleteEventDataStoreResponse = Shapes::StructureShape.new(name: 'DeleteEventDataStoreResponse')
48
48
  DeleteTrailRequest = Shapes::StructureShape.new(name: 'DeleteTrailRequest')
49
49
  DeleteTrailResponse = Shapes::StructureShape.new(name: 'DeleteTrailResponse')
50
+ DeliveryS3Uri = Shapes::StringShape.new(name: 'DeliveryS3Uri')
51
+ DeliveryStatus = Shapes::StringShape.new(name: 'DeliveryStatus')
50
52
  DescribeQueryRequest = Shapes::StructureShape.new(name: 'DescribeQueryRequest')
51
53
  DescribeQueryResponse = Shapes::StructureShape.new(name: 'DescribeQueryResponse')
52
54
  DescribeTrailsRequest = Shapes::StructureShape.new(name: 'DescribeTrailsRequest')
@@ -377,6 +379,8 @@ module Aws::CloudTrail
377
379
  DescribeQueryResponse.add_member(:query_status, Shapes::ShapeRef.new(shape: QueryStatus, location_name: "QueryStatus"))
378
380
  DescribeQueryResponse.add_member(:query_statistics, Shapes::ShapeRef.new(shape: QueryStatisticsForDescribeQuery, location_name: "QueryStatistics"))
379
381
  DescribeQueryResponse.add_member(:error_message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "ErrorMessage"))
382
+ DescribeQueryResponse.add_member(:delivery_s3_uri, Shapes::ShapeRef.new(shape: DeliveryS3Uri, location_name: "DeliveryS3Uri"))
383
+ DescribeQueryResponse.add_member(:delivery_status, Shapes::ShapeRef.new(shape: DeliveryStatus, location_name: "DeliveryStatus"))
380
384
  DescribeQueryResponse.struct_class = Types::DescribeQueryResponse
381
385
 
382
386
  DescribeTrailsRequest.add_member(:trail_name_list, Shapes::ShapeRef.new(shape: TrailNameList, location_name: "trailNameList"))
@@ -873,6 +877,7 @@ module Aws::CloudTrail
873
877
  StartLoggingResponse.struct_class = Types::StartLoggingResponse
874
878
 
875
879
  StartQueryRequest.add_member(:query_statement, Shapes::ShapeRef.new(shape: QueryStatement, required: true, location_name: "QueryStatement"))
880
+ StartQueryRequest.add_member(:delivery_s3_uri, Shapes::ShapeRef.new(shape: DeliveryS3Uri, location_name: "DeliveryS3Uri"))
876
881
  StartQueryRequest.struct_class = Types::StartQueryRequest
877
882
 
878
883
  StartQueryResponse.add_member(:query_id, Shapes::ShapeRef.new(shape: UUID, location_name: "QueryId"))
@@ -1562,6 +1567,10 @@ module Aws::CloudTrail
1562
1567
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1563
1568
  o.errors << Shapes::ShapeRef.new(shape: InvalidQueryStatementException)
1564
1569
  o.errors << Shapes::ShapeRef.new(shape: MaxConcurrentQueriesException)
1570
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3PrefixException)
1571
+ o.errors << Shapes::ShapeRef.new(shape: InvalidS3BucketNameException)
1572
+ o.errors << Shapes::ShapeRef.new(shape: InsufficientS3BucketPolicyException)
1573
+ o.errors << Shapes::ShapeRef.new(shape: S3BucketDoesNotExistException)
1565
1574
  o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
1566
1575
  o.errors << Shapes::ShapeRef.new(shape: UnsupportedOperationException)
1567
1576
  end)
@@ -0,0 +1,69 @@
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::CloudTrail
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
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
56
+ self[:use_dual_stack] = options[:use_dual_stack]
57
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
58
+ if self[:use_dual_stack].nil?
59
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
60
+ end
61
+ self[:use_fips] = options[:use_fips]
62
+ self[:use_fips] = false if self[:use_fips].nil?
63
+ if self[:use_fips].nil?
64
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
65
+ end
66
+ self[:endpoint] = options[:endpoint]
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,120 @@
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::CloudTrail
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
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOnRydWUsImRvY3VtZW50
33
+ YXRpb24iOiJUaGUgQVdTIHJlZ2lvbiB1c2VkIHRvIGRpc3BhdGNoIHRoZSBy
34
+ ZXF1ZXN0LiIsInR5cGUiOiJTdHJpbmcifSwiVXNlRHVhbFN0YWNrIjp7ImJ1
35
+ aWx0SW4iOiJBV1M6OlVzZUR1YWxTdGFjayIsInJlcXVpcmVkIjp0cnVlLCJk
36
+ ZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRhdGlvbiI6IldoZW4gdHJ1ZSwgdXNl
37
+ IHRoZSBkdWFsLXN0YWNrIGVuZHBvaW50LiBJZiB0aGUgY29uZmlndXJlZCBl
38
+ bmRwb2ludCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2ssIGRpc3BhdGNo
39
+ aW5nIHRoZSByZXF1ZXN0IE1BWSByZXR1cm4gYW4gZXJyb3IuIiwidHlwZSI6
40
+ IkJvb2xlYW4ifSwiVXNlRklQUyI6eyJidWlsdEluIjoiQVdTOjpVc2VGSVBT
41
+ IiwicmVxdWlyZWQiOnRydWUsImRlZmF1bHQiOmZhbHNlLCJkb2N1bWVudGF0
42
+ aW9uIjoiV2hlbiB0cnVlLCBzZW5kIHRoaXMgcmVxdWVzdCB0byB0aGUgRklQ
43
+ Uy1jb21wbGlhbnQgcmVnaW9uYWwgZW5kcG9pbnQuIElmIHRoZSBjb25maWd1
44
+ cmVkIGVuZHBvaW50IGRvZXMgbm90IGhhdmUgYSBGSVBTIGNvbXBsaWFudCBl
45
+ bmRwb2ludCwgZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3Qgd2lsbCByZXR1cm4g
46
+ YW4gZXJyb3IuIiwidHlwZSI6IkJvb2xlYW4ifSwiRW5kcG9pbnQiOnsiYnVp
47
+ bHRJbiI6IlNESzo6RW5kcG9pbnQiLCJyZXF1aXJlZCI6ZmFsc2UsImRvY3Vt
48
+ ZW50YXRpb24iOiJPdmVycmlkZSB0aGUgZW5kcG9pbnQgdXNlZCB0byBzZW5k
49
+ IHRoaXMgcmVxdWVzdCIsInR5cGUiOiJTdHJpbmcifX0sInJ1bGVzIjpbeyJj
50
+ b25kaXRpb25zIjpbeyJmbiI6ImF3cy5wYXJ0aXRpb24iLCJhcmd2IjpbeyJy
51
+ ZWYiOiJSZWdpb24ifV0sImFzc2lnbiI6IlBhcnRpdGlvblJlc3VsdCJ9XSwi
52
+ dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJp
53
+ c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfSx7ImZuIjoicGFy
54
+ c2VVUkwiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XSwiYXNzaWduIjoi
55
+ dXJsIn1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
56
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBT
57
+ In0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZpZ3VyYXRpb246IEZJ
58
+ UFMgYW5kIGN1c3RvbSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5
59
+ cGUiOiJlcnJvciJ9LHsiY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwi
60
+ cnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIs
61
+ ImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxTdGFjayJ9LHRydWVdfV0sImVycm9y
62
+ IjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBEdWFsc3RhY2sgYW5kIGN1c3Rv
63
+ bSBlbmRwb2ludCBhcmUgbm90IHN1cHBvcnRlZCIsInR5cGUiOiJlcnJvciJ9
64
+ LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6eyJyZWYiOiJF
65
+ bmRwb2ludCJ9LCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
66
+ IjoiZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
67
+ YW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19LHsi
68
+ Zm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVhbFN0
69
+ YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
70
+ aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUseyJm
71
+ biI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1bHQi
72
+ fSwic3VwcG9ydHNGSVBTIl19XX0seyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJh
73
+ cmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBh
74
+ cnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlw
75
+ ZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50
76
+ Ijp7InVybCI6Imh0dHBzOi8vY2xvdWR0cmFpbC1maXBzLntSZWdpb259LntQ
77
+ YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
78
+ ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
79
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJl
80
+ IGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0
81
+ IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMi
82
+ Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJ
83
+ UFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
84
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
85
+ IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
86
+ LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
87
+ ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
88
+ aXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6
89
+ IlJlZ2lvbiJ9LCJ1cy1nb3Ytd2VzdC0xIl19XSwiZW5kcG9pbnQiOnsidXJs
90
+ IjoiaHR0cHM6Ly9jbG91ZHRyYWlsLnVzLWdvdi13ZXN0LTEuYW1hem9uYXdz
91
+ LmNvbSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJl
92
+ bmRwb2ludCJ9LHsiY29uZGl0aW9ucyI6W3siZm4iOiJzdHJpbmdFcXVhbHMi
93
+ LCJhcmd2IjpbeyJyZWYiOiJSZWdpb24ifSwidXMtZ292LWVhc3QtMSJdfV0s
94
+ ImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vY2xvdWR0cmFpbC51cy1nb3Yt
95
+ ZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVy
96
+ cyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifSx7ImNvbmRpdGlvbnMiOltdLCJl
97
+ bmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2Nsb3VkdHJhaWwtZmlwcy57UmVn
98
+ aW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVz
99
+ Ijp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJj
100
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRo
101
+ aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJl
102
+ cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
103
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBl
104
+ IjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xl
105
+ YW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3Yi
106
+ Olt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFj
107
+ ayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
108
+ W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vY2xvdWR0cmFpbC57UmVn
109
+ aW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJw
110
+ cm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQi
111
+ fV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoiRHVhbFN0YWNrIGlzIGVu
112
+ YWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVh
113
+ bFN0YWNrIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOltdLCJl
114
+ bmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2Nsb3VkdHJhaWwue1JlZ2lvbn0u
115
+ e1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30s
116
+ ImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
117
+
118
+ JSON
119
+ end
120
+ end