aws-sdk-ec2 1.341.0 → 1.343.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: 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