aws-sdk-ec2 1.341.0 → 1.343.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: d5ada8a68cd6af96c2d1d8ea7217be5f033612a31086ab51ff6daba16791f144
4
- data.tar.gz: b807f2830467388553e4edfb388de5ca403511ca9ae4940996ee2dc9dd93815b
3
+ metadata.gz: 0dbab6093923da9c9f66c8e6caa56b25e2abe05076fd47adfebb7abb709d490f
4
+ data.tar.gz: 916aeea7bea6bf97a945b2e1e92fa483d40cefc4a48e392c53caf5a65163c391
5
5
  SHA512:
6
- metadata.gz: ac50c79961f8fbdb6c77ffa6f6a42c9593d956aef2267d2941f31afbc5f7614e5a1058424dbe967e23bd2f04ea8e1acaf9cf652a23fd73e5f114493c1eea82e3
7
- data.tar.gz: 57db2cff28208b1630b491570113137985e34c629b2f9e0182e1d441cf66397dcd8112b95bc76e36ca44cf71c106b23c723a3bfd8e778731b4ef6ed8a8699b78
6
+ metadata.gz: 68a188ce1260c632cbdc2f7222f9ed4b0e7e01eb80c641776b770639e7e1d02f3ed6513b62f5eb58e150a84928b56424a048757c97eaeb040a4b9525240f1b3a
7
+ data.tar.gz: 3c2d8ead1b12ff6bbdb4094aedd982f763b82159153a5912ba1bf1dae57e5665fb9e93e78444427d3caffd48cb514a9decade44b44977264f435ca35e8d1435c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.343.0 (2022-10-27)
5
+ ------------------
6
+
7
+ * Feature - Feature supports the replacement of instance root volume using an updated AMI without requiring customers to stop their instance.
8
+
9
+ 1.342.0 (2022-10-25)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.341.0 (2022-10-04)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.341.0
1
+ 1.343.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/ec2.rb'
35
35
  require 'aws-sdk-ec2/plugins/copy_encrypted_snapshot.rb'
36
36
  require 'aws-sdk-ec2/plugins/region_validation.rb'
@@ -81,10 +81,11 @@ module Aws::EC2
81
81
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
82
  add_plugin(Aws::Plugins::DefaultsMode)
83
83
  add_plugin(Aws::Plugins::RecursionDetection)
84
- add_plugin(Aws::Plugins::SignatureV4)
84
+ add_plugin(Aws::Plugins::Sign)
85
85
  add_plugin(Aws::Plugins::Protocols::EC2)
86
86
  add_plugin(Aws::EC2::Plugins::CopyEncryptedSnapshot)
87
87
  add_plugin(Aws::EC2::Plugins::RegionValidation)
88
+ add_plugin(Aws::EC2::Plugins::Endpoints)
88
89
 
89
90
  # @overload initialize(options)
90
91
  # @param [Hash] options
@@ -291,6 +292,19 @@ module Aws::EC2
291
292
  # ** Please note ** When response stubbing is enabled, no HTTP
292
293
  # requests are made, and retries are disabled.
293
294
  #
295
+ # @option options [Aws::TokenProvider] :token_provider
296
+ # A Bearer Token Provider. This can be an instance of any one of the
297
+ # following classes:
298
+ #
299
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
300
+ # tokens.
301
+ #
302
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
303
+ # access token generated from `aws login`.
304
+ #
305
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
306
+ # will be used to search for tokens configured for your profile in shared configuration files.
307
+ #
294
308
  # @option options [Boolean] :use_dualstack_endpoint
295
309
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
296
310
  # will be used if available.
@@ -304,6 +318,9 @@ module Aws::EC2
304
318
  # When `true`, request parameters are validated before
305
319
  # sending the request.
306
320
  #
321
+ # @option options [Aws::EC2::EndpointProvider] :endpoint_provider
322
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::EC2::EndpointParameters`
323
+ #
307
324
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
308
325
  # requests through. Formatted like 'http://proxy.com:123'.
309
326
  #
@@ -9760,9 +9777,11 @@ module Aws::EC2
9760
9777
  req.send_request(options)
9761
9778
  end
9762
9779
 
9763
- # Creates a root volume replacement task for an Amazon EC2 instance. The
9764
- # root volume can either be restored to its initial launch state, or it
9765
- # can be restored using a specific snapshot.
9780
+ # Replaces the EBS-backed root volume for a `running` instance with a
9781
+ # new volume that is restored to the original root volume's launch
9782
+ # state, that is restored to a specific snapshot taken from the original
9783
+ # root volume, or that is restored from an AMI that has the same key
9784
+ # characteristics as that of the instance.
9766
9785
  #
9767
9786
  # For more information, see [Replace a root volume][1] in the *Amazon
9768
9787
  # Elastic Compute Cloud User Guide*.
@@ -9776,8 +9795,12 @@ module Aws::EC2
9776
9795
  #
9777
9796
  # @option params [String] :snapshot_id
9778
9797
  # The ID of the snapshot from which to restore the replacement root
9779
- # volume. If you want to restore the volume to the initial launch state,
9780
- # omit this parameter.
9798
+ # volume. The specified snapshot must be a snapshot that you previously
9799
+ # created from the original root volume.
9800
+ #
9801
+ # If you want to restore the replacement root volume to the initial
9802
+ # launch state, or if you want to restore the replacement root volume
9803
+ # from an AMI, omit this parameter.
9781
9804
  #
9782
9805
  # @option params [String] :client_token
9783
9806
  # Unique, case-sensitive identifier you provide to ensure the
@@ -9801,6 +9824,22 @@ module Aws::EC2
9801
9824
  # @option params [Array<Types::TagSpecification>] :tag_specifications
9802
9825
  # The tags to apply to the root volume replacement task.
9803
9826
  #
9827
+ # @option params [String] :image_id
9828
+ # The ID of the AMI to use to restore the root volume. The specified AMI
9829
+ # must have the same product code, billing information, architecture
9830
+ # type, and virtualization type as that of the instance.
9831
+ #
9832
+ # If you want to restore the replacement volume from a specific
9833
+ # snapshot, or if you want to restore it to its launch state, omit this
9834
+ # parameter.
9835
+ #
9836
+ # @option params [Boolean] :delete_replaced_root_volume
9837
+ # Indicates whether to automatically delete the original root volume
9838
+ # after the root volume replacement task completes. To delete the
9839
+ # original root volume, specify `true`. If you choose to keep the
9840
+ # original root volume after the replacement task completes, you must
9841
+ # manually delete it when you no longer need it.
9842
+ #
9804
9843
  # @return [Types::CreateReplaceRootVolumeTaskResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9805
9844
  #
9806
9845
  # * {Types::CreateReplaceRootVolumeTaskResult#replace_root_volume_task #replace_root_volume_task} => Types::ReplaceRootVolumeTask
@@ -9823,6 +9862,8 @@ module Aws::EC2
9823
9862
  # ],
9824
9863
  # },
9825
9864
  # ],
9865
+ # image_id: "ImageId",
9866
+ # delete_replaced_root_volume: false,
9826
9867
  # })
9827
9868
  #
9828
9869
  # @example Response structure
@@ -9835,6 +9876,9 @@ module Aws::EC2
9835
9876
  # resp.replace_root_volume_task.tags #=> Array
9836
9877
  # resp.replace_root_volume_task.tags[0].key #=> String
9837
9878
  # resp.replace_root_volume_task.tags[0].value #=> String
9879
+ # resp.replace_root_volume_task.image_id #=> String
9880
+ # resp.replace_root_volume_task.snapshot_id #=> String
9881
+ # resp.replace_root_volume_task.delete_replaced_root_volume #=> Boolean
9838
9882
  #
9839
9883
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReplaceRootVolumeTask AWS API Documentation
9840
9884
  #
@@ -27161,6 +27205,9 @@ module Aws::EC2
27161
27205
  # resp.replace_root_volume_tasks[0].tags #=> Array
27162
27206
  # resp.replace_root_volume_tasks[0].tags[0].key #=> String
27163
27207
  # resp.replace_root_volume_tasks[0].tags[0].value #=> String
27208
+ # resp.replace_root_volume_tasks[0].image_id #=> String
27209
+ # resp.replace_root_volume_tasks[0].snapshot_id #=> String
27210
+ # resp.replace_root_volume_tasks[0].delete_replaced_root_volume #=> Boolean
27164
27211
  # resp.next_token #=> String
27165
27212
  #
27166
27213
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReplaceRootVolumeTasks AWS API Documentation
@@ -52164,7 +52211,7 @@ module Aws::EC2
52164
52211
  params: params,
52165
52212
  config: config)
52166
52213
  context[:gem_name] = 'aws-sdk-ec2'
52167
- context[:gem_version] = '1.341.0'
52214
+ context[:gem_version] = '1.343.0'
52168
52215
  Seahorse::Client::Request.new(handlers, context)
52169
52216
  end
52170
52217
 
@@ -4410,6 +4410,8 @@ module Aws::EC2
4410
4410
  CreateReplaceRootVolumeTaskRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
4411
4411
  CreateReplaceRootVolumeTaskRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
4412
4412
  CreateReplaceRootVolumeTaskRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
4413
+ CreateReplaceRootVolumeTaskRequest.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "ImageId"))
4414
+ CreateReplaceRootVolumeTaskRequest.add_member(:delete_replaced_root_volume, Shapes::ShapeRef.new(shape: Boolean, location_name: "DeleteReplacedRootVolume"))
4413
4415
  CreateReplaceRootVolumeTaskRequest.struct_class = Types::CreateReplaceRootVolumeTaskRequest
4414
4416
 
4415
4417
  CreateReplaceRootVolumeTaskResult.add_member(:replace_root_volume_task, Shapes::ShapeRef.new(shape: ReplaceRootVolumeTask, location_name: "replaceRootVolumeTask"))
@@ -11313,6 +11315,9 @@ module Aws::EC2
11313
11315
  ReplaceRootVolumeTask.add_member(:start_time, Shapes::ShapeRef.new(shape: String, location_name: "startTime"))
11314
11316
  ReplaceRootVolumeTask.add_member(:complete_time, Shapes::ShapeRef.new(shape: String, location_name: "completeTime"))
11315
11317
  ReplaceRootVolumeTask.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "tagSet"))
11318
+ ReplaceRootVolumeTask.add_member(:image_id, Shapes::ShapeRef.new(shape: ImageId, location_name: "imageId"))
11319
+ ReplaceRootVolumeTask.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "snapshotId"))
11320
+ ReplaceRootVolumeTask.add_member(:delete_replaced_root_volume, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteReplacedRootVolume"))
11316
11321
  ReplaceRootVolumeTask.struct_class = Types::ReplaceRootVolumeTask
11317
11322
 
11318
11323
  ReplaceRootVolumeTaskIds.member = Shapes::ShapeRef.new(shape: ReplaceRootVolumeTaskId, location_name: "ReplaceRootVolumeTaskId")
@@ -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::EC2
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,116 @@
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::EC2
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
+ dCI6eyJ1cmwiOiJodHRwczovL2VjMi1maXBzLntSZWdpb259LntQYXJ0aXRp
77
+ b25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9
78
+ LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRp
79
+ b25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJlIGVuYWJs
80
+ ZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IG9uZSBv
81
+ ciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7ImZu
82
+ IjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0
83
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
84
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
85
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
86
+ b3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
87
+ dGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25z
88
+ IjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlsiYXdzLXVzLWdvdiIs
89
+ eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
90
+ bHQifSwibmFtZSJdfV19XSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9l
91
+ YzIue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJv
92
+ cGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In0s
93
+ eyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9l
94
+ YzItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0i
95
+ LCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9p
96
+ bnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVu
97
+ YWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQ
98
+ UyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJv
99
+ b2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0
100
+ cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpb
101
+ eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0
102
+ QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBw
103
+ b3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3si
104
+ Y29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZWMy
105
+ LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4
106
+ fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRw
107
+ b2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sg
108
+ aXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9y
109
+ dCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
110
+ W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZWMyLntSZWdpb259LntQ
111
+ YXJ0aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJo
112
+ ZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
113
+
114
+ JSON
115
+ end
116
+ end