aws-sdk-rds 1.156.0 → 1.157.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: 5dba65aa86909d37219eea5e309a32867787fa1e3a09a38808b6832784d71074
4
- data.tar.gz: ecaf303c9a600d12fbd3dc17c62cb4b0d6b121e653b4b0b53b0a968d2f4e25dc
3
+ metadata.gz: b1e8d3862902bf29c15e9a4b6f1fff6686e740870b9ea437681adb52d95df817
4
+ data.tar.gz: 803c7833bf32b7372f518f276d9bd1afb6fb209bfbba01bfb3e382eb22191d54
5
5
  SHA512:
6
- metadata.gz: 3af0d6edbfe17f9415fe039294544d0b0dbe59825f4ccabb074fa016defef85f5ab5ef5ddf8ff61796f37fb17c17919c0626dac22f5c05b807d253093ff9b2bb
7
- data.tar.gz: e5622ab5ff112e847588008e9976b370bbbd672a16809d4a1dad6f18cc037c762d0c58c8c90a2a734d7c29936fbd02d68949d36dbfd7f04826b349826315ccb1
6
+ metadata.gz: 1e594e98a5e9cf0bc7e0dddecb7924a0d8de44842c0ad896bde42994b92c997bc1e53bd64c2d5cfd180f411f138c6573dc810c7a23e238eefe16ee94b77915c3
7
+ data.tar.gz: a9b361ad976f3e005de2c705b8c9ad74d39951f9857e86589f018e8b055cc715ba4d950a8d8df4cbd2e1744f352dd3d17aa4e8933e6c8d6e6cbd03ae0e3ee6b3
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.157.0 (2022-10-25)
5
+ ------------------
6
+
7
+ * Feature - Relational Database Service - This release adds support for exporting DB cluster data to Amazon S3.
8
+
4
9
  1.156.0 (2022-09-19)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.156.0
1
+ 1.157.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/query.rb'
35
35
  require 'aws-sdk-rds/plugins/cross_region_copying.rb'
36
36
 
@@ -80,9 +80,10 @@ module Aws::RDS
80
80
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
81
  add_plugin(Aws::Plugins::DefaultsMode)
82
82
  add_plugin(Aws::Plugins::RecursionDetection)
83
- add_plugin(Aws::Plugins::SignatureV4)
83
+ add_plugin(Aws::Plugins::Sign)
84
84
  add_plugin(Aws::Plugins::Protocols::Query)
85
85
  add_plugin(Aws::RDS::Plugins::CrossRegionCopying)
86
+ add_plugin(Aws::RDS::Plugins::Endpoints)
86
87
 
87
88
  # @overload initialize(options)
88
89
  # @param [Hash] options
@@ -289,6 +290,19 @@ module Aws::RDS
289
290
  # ** Please note ** When response stubbing is enabled, no HTTP
290
291
  # requests are made, and retries are disabled.
291
292
  #
293
+ # @option options [Aws::TokenProvider] :token_provider
294
+ # A Bearer Token Provider. This can be an instance of any one of the
295
+ # following classes:
296
+ #
297
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
298
+ # tokens.
299
+ #
300
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
301
+ # access token generated from `aws login`.
302
+ #
303
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
304
+ # will be used to search for tokens configured for your profile in shared configuration files.
305
+ #
292
306
  # @option options [Boolean] :use_dualstack_endpoint
293
307
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
294
308
  # will be used if available.
@@ -302,6 +316,9 @@ module Aws::RDS
302
316
  # When `true`, request parameters are validated before
303
317
  # sending the request.
304
318
  #
319
+ # @option options [Aws::RDS::EndpointProvider] :endpoint_provider
320
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::RDS::EndpointParameters`
321
+ #
305
322
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
306
323
  # requests through. Formatted like 'http://proxy.com:123'.
307
324
  #
@@ -892,6 +909,7 @@ module Aws::RDS
892
909
  # * {Types::ExportTask#total_extracted_data_in_gb #total_extracted_data_in_gb} => Integer
893
910
  # * {Types::ExportTask#failure_cause #failure_cause} => String
894
911
  # * {Types::ExportTask#warning_message #warning_message} => String
912
+ # * {Types::ExportTask#source_type #source_type} => String
895
913
  #
896
914
  # @example Request syntax with placeholder values
897
915
  #
@@ -917,6 +935,7 @@ module Aws::RDS
917
935
  # resp.total_extracted_data_in_gb #=> Integer
918
936
  # resp.failure_cause #=> String
919
937
  # resp.warning_message #=> String
938
+ # resp.source_type #=> String, one of "SNAPSHOT", "CLUSTER"
920
939
  #
921
940
  # @see http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CancelExportTask AWS API Documentation
922
941
  #
@@ -10820,6 +10839,10 @@ module Aws::RDS
10820
10839
  #
10821
10840
  # * `aurora-postgresql13`
10822
10841
  #
10842
+ # * `aurora-postgresql14`
10843
+ #
10844
+ # * `custom-oracle-ee-19`
10845
+ #
10823
10846
  # * `mariadb10.2`
10824
10847
  #
10825
10848
  # * `mariadb10.3`
@@ -10834,6 +10857,18 @@ module Aws::RDS
10834
10857
  #
10835
10858
  # * `mysql8.0`
10836
10859
  #
10860
+ # * `oracle-ee-19`
10861
+ #
10862
+ # * `oracle-ee-cdb-19`
10863
+ #
10864
+ # * `oracle-ee-cdb-21`
10865
+ #
10866
+ # * `oracle-se2-19`
10867
+ #
10868
+ # * `oracle-se2-cdb-19`
10869
+ #
10870
+ # * `oracle-se2-cdb-21`
10871
+ #
10837
10872
  # * `postgres10`
10838
10873
  #
10839
10874
  # * `postgres11`
@@ -11349,6 +11384,9 @@ module Aws::RDS
11349
11384
  #
11350
11385
  # Constraints: Minimum 20, maximum 100.
11351
11386
  #
11387
+ # @option params [String] :source_type
11388
+ # The type of source for the export.
11389
+ #
11352
11390
  # @return [Types::ExportTasksMessage] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
11353
11391
  #
11354
11392
  # * {Types::ExportTasksMessage#marker #marker} => String
@@ -11369,6 +11407,7 @@ module Aws::RDS
11369
11407
  # ],
11370
11408
  # marker: "String",
11371
11409
  # max_records: 1,
11410
+ # source_type: "SNAPSHOT", # accepts SNAPSHOT, CLUSTER
11372
11411
  # })
11373
11412
  #
11374
11413
  # @example Response structure
@@ -11391,6 +11430,7 @@ module Aws::RDS
11391
11430
  # resp.export_tasks[0].total_extracted_data_in_gb #=> Integer
11392
11431
  # resp.export_tasks[0].failure_cause #=> String
11393
11432
  # resp.export_tasks[0].warning_message #=> String
11433
+ # resp.export_tasks[0].source_type #=> String, one of "SNAPSHOT", "CLUSTER"
11394
11434
  #
11395
11435
  # @see http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeExportTasks AWS API Documentation
11396
11436
  #
@@ -22346,6 +22386,7 @@ module Aws::RDS
22346
22386
  # * {Types::ExportTask#total_extracted_data_in_gb #total_extracted_data_in_gb} => Integer
22347
22387
  # * {Types::ExportTask#failure_cause #failure_cause} => String
22348
22388
  # * {Types::ExportTask#warning_message #warning_message} => String
22389
+ # * {Types::ExportTask#source_type #source_type} => String
22349
22390
  #
22350
22391
  # @example Request syntax with placeholder values
22351
22392
  #
@@ -22377,6 +22418,7 @@ module Aws::RDS
22377
22418
  # resp.total_extracted_data_in_gb #=> Integer
22378
22419
  # resp.failure_cause #=> String
22379
22420
  # resp.warning_message #=> String
22421
+ # resp.source_type #=> String, one of "SNAPSHOT", "CLUSTER"
22380
22422
  #
22381
22423
  # @see http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/StartExportTask AWS API Documentation
22382
22424
  #
@@ -23027,7 +23069,7 @@ module Aws::RDS
23027
23069
  params: params,
23028
23070
  config: config)
23029
23071
  context[:gem_name] = 'aws-sdk-rds'
23030
- context[:gem_version] = '1.156.0'
23072
+ context[:gem_version] = '1.157.0'
23031
23073
  Seahorse::Client::Request.new(handlers, context)
23032
23074
  end
23033
23075
 
@@ -332,6 +332,7 @@ module Aws::RDS
332
332
  EventSubscriptionsList = Shapes::ListShape.new(name: 'EventSubscriptionsList')
333
333
  EventSubscriptionsMessage = Shapes::StructureShape.new(name: 'EventSubscriptionsMessage')
334
334
  EventsMessage = Shapes::StructureShape.new(name: 'EventsMessage')
335
+ ExportSourceType = Shapes::StringShape.new(name: 'ExportSourceType')
335
336
  ExportTask = Shapes::StructureShape.new(name: 'ExportTask')
336
337
  ExportTaskAlreadyExistsFault = Shapes::StructureShape.new(name: 'ExportTaskAlreadyExistsFault')
337
338
  ExportTaskNotFoundFault = Shapes::StructureShape.new(name: 'ExportTaskNotFoundFault')
@@ -2029,6 +2030,7 @@ module Aws::RDS
2029
2030
  DescribeExportTasksMessage.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filters"))
2030
2031
  DescribeExportTasksMessage.add_member(:marker, Shapes::ShapeRef.new(shape: String, location_name: "Marker"))
2031
2032
  DescribeExportTasksMessage.add_member(:max_records, Shapes::ShapeRef.new(shape: MaxRecords, location_name: "MaxRecords"))
2033
+ DescribeExportTasksMessage.add_member(:source_type, Shapes::ShapeRef.new(shape: ExportSourceType, location_name: "SourceType"))
2032
2034
  DescribeExportTasksMessage.struct_class = Types::DescribeExportTasksMessage
2033
2035
 
2034
2036
  DescribeGlobalClustersMessage.add_member(:global_cluster_identifier, Shapes::ShapeRef.new(shape: String, location_name: "GlobalClusterIdentifier"))
@@ -2212,6 +2214,7 @@ module Aws::RDS
2212
2214
  ExportTask.add_member(:total_extracted_data_in_gb, Shapes::ShapeRef.new(shape: Integer, location_name: "TotalExtractedDataInGB"))
2213
2215
  ExportTask.add_member(:failure_cause, Shapes::ShapeRef.new(shape: String, location_name: "FailureCause"))
2214
2216
  ExportTask.add_member(:warning_message, Shapes::ShapeRef.new(shape: String, location_name: "WarningMessage"))
2217
+ ExportTask.add_member(:source_type, Shapes::ShapeRef.new(shape: ExportSourceType, location_name: "SourceType"))
2215
2218
  ExportTask.struct_class = Types::ExportTask
2216
2219
 
2217
2220
  ExportTaskAlreadyExistsFault.struct_class = Types::ExportTaskAlreadyExistsFault
@@ -5254,6 +5257,7 @@ module Aws::RDS
5254
5257
  o.output = Shapes::ShapeRef.new(shape: ExportTask)
5255
5258
  o.errors << Shapes::ShapeRef.new(shape: DBSnapshotNotFoundFault)
5256
5259
  o.errors << Shapes::ShapeRef.new(shape: DBClusterSnapshotNotFoundFault)
5260
+ o.errors << Shapes::ShapeRef.new(shape: DBClusterNotFoundFault)
5257
5261
  o.errors << Shapes::ShapeRef.new(shape: ExportTaskAlreadyExistsFault)
5258
5262
  o.errors << Shapes::ShapeRef.new(shape: InvalidS3BucketFault)
5259
5263
  o.errors << Shapes::ShapeRef.new(shape: IamRoleNotFoundFault)
@@ -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::RDS
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,137 @@
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::RDS
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
+ dCI6eyJ1cmwiOiJodHRwczovL3Jkcy1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6IlJlZ2lv
89
+ biJ9LCJyZHMuY2EtY2VudHJhbC0xIl19XSwiZW5kcG9pbnQiOnsidXJsIjoi
90
+ aHR0cHM6Ly9yZHMtZmlwcy5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIs
91
+ InByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2lu
92
+ dCJ9LHsiY29uZGl0aW9ucyI6W3siZm4iOiJzdHJpbmdFcXVhbHMiLCJhcmd2
93
+ IjpbeyJyZWYiOiJSZWdpb24ifSwicmRzLnVzLWVhc3QtMSJdfV0sImVuZHBv
94
+ aW50Ijp7InVybCI6Imh0dHBzOi8vcmRzLWZpcHMudXMtZWFzdC0xLmFtYXpv
95
+ bmF3cy5jb20iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
96
+ IjoiZW5kcG9pbnQifSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoic3RyaW5nRXF1
97
+ YWxzIiwiYXJndiI6W3sicmVmIjoiUmVnaW9uIn0sInJkcy51cy1lYXN0LTIi
98
+ XX1dLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL3Jkcy1maXBzLnVzLWVh
99
+ c3QtMi5hbWF6b25hd3MuY29tIiwicHJvcGVydGllcyI6e30sImhlYWRlcnMi
100
+ Ont9fSwidHlwZSI6ImVuZHBvaW50In0seyJjb25kaXRpb25zIjpbeyJmbiI6
101
+ InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6IlJlZ2lvbiJ9LCJyZHMu
102
+ dXMtd2VzdC0xIl19XSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9yZHMt
103
+ Zmlwcy51cy13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInByb3BlcnRpZXMiOnt9
104
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9LHsiY29uZGl0aW9u
105
+ cyI6W3siZm4iOiJzdHJpbmdFcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJSZWdp
106
+ b24ifSwicmRzLnVzLXdlc3QtMiJdfV0sImVuZHBvaW50Ijp7InVybCI6Imh0
107
+ dHBzOi8vcmRzLWZpcHMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJwcm9w
108
+ ZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifSx7
109
+ ImNvbmRpdGlvbnMiOlt7ImZuIjoic3RyaW5nRXF1YWxzIiwiYXJndiI6WyJh
110
+ d3MtdXMtZ292Iix7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBh
111
+ cnRpdGlvblJlc3VsdCJ9LCJuYW1lIl19XX1dLCJlbmRwb2ludCI6eyJ1cmwi
112
+ OiJodHRwczovL3Jkcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1
113
+ ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoi
114
+ ZW5kcG9pbnQifSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwi
115
+ OiJodHRwczovL3Jkcy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
116
+ ZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5
117
+ cGUiOiJlbmRwb2ludCJ9XX1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6
118
+ IkZJUFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qg
119
+ c3VwcG9ydCBGSVBTIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMi
120
+ Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1
121
+ YWxTdGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNv
122
+ bmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVl
123
+ LHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVz
124
+ dWx0In0sInN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIs
125
+ InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoi
126
+ aHR0cHM6Ly9yZHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3Rh
127
+ Y2tEbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwi
128
+ dHlwZSI6ImVuZHBvaW50In1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6
129
+ IkR1YWxTdGFjayBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2Vz
130
+ IG5vdCBzdXBwb3J0IER1YWxTdGFjayIsInR5cGUiOiJlcnJvciJ9XX0seyJj
131
+ b25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9yZHMu
132
+ e1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVy
133
+ dGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
134
+
135
+ JSON
136
+ end
137
+ end