aws-sdk-globalaccelerator 1.40.0 → 1.42.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: 0fc851ea3192808b15ecde042d8f37ec0ba71fd71cb0afc0c3b7e872228858cc
4
- data.tar.gz: fe793782c6f80db5258035c9e5c4f447a63e78370db2e71888e2e63faf33ac6f
3
+ metadata.gz: eab95de133dc13a40243709842f694407ab48cd97fb018d0f5bdf4efe40a4678
4
+ data.tar.gz: 321eb698aebc7eb0c9b545f15439815939ea0191013c4b26c16d2541b81e7eb0
5
5
  SHA512:
6
- metadata.gz: 69cebe1c8edca2c312bb39fee855e76c866ae664b1172326716434bc01e9c221ece703aea6ace6d7c0d4879b39a77e2c6964fbf6356ceefdb5a6e1d7905e0dc0
7
- data.tar.gz: 282f554443d873a91138f5b947a72a251a006987d9aa5672e83468ba9273f44c2943fbdab688a45fa708962b783998b28e8116b82caea7760943a755f000c649
6
+ metadata.gz: 157433e8eae9dd5392b53c83d7ae6b934ec5c9f8819c19680add06bbff98c2825ffe73b0e01e8d59a11760f3acb007781e122befd1a701fd4b94f4b2f3f7e828
7
+ data.tar.gz: 8df8128678e864af421cbf7bbc9d9d944259906091c6579ed188ba7066e8647634deb9a08e17e926b9ca6749fd53c42c3845c5a0e3c0999a241871ee2f934d71
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.42.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.41.0 (2022-10-20)
10
+ ------------------
11
+
12
+ * Feature - Global Accelerator now supports AddEndpoints and RemoveEndpoints operations for standard endpoint groups.
13
+
4
14
  1.40.0 (2022-07-27)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.40.0
1
+ 1.42.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(:globalaccelerator)
@@ -79,8 +79,9 @@ module Aws::GlobalAccelerator
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::GlobalAccelerator::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::GlobalAccelerator
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::GlobalAccelerator
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::GlobalAccelerator::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::GlobalAccelerator::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
  #
@@ -421,6 +438,69 @@ module Aws::GlobalAccelerator
421
438
  req.send_request(options)
422
439
  end
423
440
 
441
+ # Add endpoints to an endpoint group. The `AddEndpoints` API operation
442
+ # is the recommended option for adding endpoints. The alternative
443
+ # options are to add endpoints when you create an endpoint group (with
444
+ # the [CreateEndpointGroup][1] API) or when you update an endpoint group
445
+ # (with the [UpdateEndpointGroup][2] API).
446
+ #
447
+ # There are two advantages to using `AddEndpoints` to add endpoints:
448
+ #
449
+ # * It's faster, because Global Accelerator only has to resolve the new
450
+ # endpoints that you're adding.
451
+ #
452
+ # * It's more convenient, because you don't need to specify all of the
453
+ # current endpoints that are already in the endpoint group in addition
454
+ # to the new endpoints that you want to add.
455
+ #
456
+ #
457
+ #
458
+ # [1]: https://docs.aws.amazon.com/global-accelerator/latest/api/API_CreateEndpointGroup.html
459
+ # [2]: https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html
460
+ #
461
+ # @option params [required, Array<Types::EndpointConfiguration>] :endpoint_configurations
462
+ # The list of endpoint objects.
463
+ #
464
+ # @option params [required, String] :endpoint_group_arn
465
+ # The Amazon Resource Name (ARN) of the endpoint group.
466
+ #
467
+ # @return [Types::AddEndpointsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
468
+ #
469
+ # * {Types::AddEndpointsResponse#endpoint_descriptions #endpoint_descriptions} => Array&lt;Types::EndpointDescription&gt;
470
+ # * {Types::AddEndpointsResponse#endpoint_group_arn #endpoint_group_arn} => String
471
+ #
472
+ # @example Request syntax with placeholder values
473
+ #
474
+ # resp = client.add_endpoints({
475
+ # endpoint_configurations: [ # required
476
+ # {
477
+ # endpoint_id: "GenericString",
478
+ # weight: 1,
479
+ # client_ip_preservation_enabled: false,
480
+ # },
481
+ # ],
482
+ # endpoint_group_arn: "GenericString", # required
483
+ # })
484
+ #
485
+ # @example Response structure
486
+ #
487
+ # resp.endpoint_descriptions #=> Array
488
+ # resp.endpoint_descriptions[0].endpoint_id #=> String
489
+ # resp.endpoint_descriptions[0].weight #=> Integer
490
+ # resp.endpoint_descriptions[0].health_state #=> String, one of "INITIAL", "HEALTHY", "UNHEALTHY"
491
+ # resp.endpoint_descriptions[0].health_reason #=> String
492
+ # resp.endpoint_descriptions[0].client_ip_preservation_enabled #=> Boolean
493
+ # resp.endpoint_group_arn #=> String
494
+ #
495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/AddEndpoints AWS API Documentation
496
+ #
497
+ # @overload add_endpoints(params = {})
498
+ # @param [Hash] params ({})
499
+ def add_endpoints(params = {}, options = {})
500
+ req = build_request(:add_endpoints, params)
501
+ req.send_request(options)
502
+ end
503
+
424
504
  # Advertises an IPv4 address range that is provisioned for use with your
425
505
  # Amazon Web Services resources through bring your own IP addresses
426
506
  # (BYOIP). It can take a few minutes before traffic to the specified
@@ -2325,6 +2405,57 @@ module Aws::GlobalAccelerator
2325
2405
  req.send_request(options)
2326
2406
  end
2327
2407
 
2408
+ # Remove endpoints from an endpoint group.
2409
+ #
2410
+ # The `RemoveEndpoints` API operation is the recommended option for
2411
+ # removing endpoints. The alternative is to remove endpoints by updating
2412
+ # an endpoint group by using the [UpdateEndpointGroup][1] API operation.
2413
+ # There are two advantages to using `AddEndpoints` to remove endpoints
2414
+ # instead:
2415
+ #
2416
+ # * It's more convenient, because you only need to specify the
2417
+ # endpoints that you want to remove. With the `UpdateEndpointGroup`
2418
+ # API operation, you must specify all of the endpoints in the endpoint
2419
+ # group except the ones that you want to remove from the group.
2420
+ #
2421
+ # * It's faster, because Global Accelerator doesn't need to resolve
2422
+ # any endpoints. With the `UpdateEndpointGroup` API operation, Global
2423
+ # Accelerator must resolve all of the endpoints that remain in the
2424
+ # group.
2425
+ #
2426
+ #
2427
+ #
2428
+ # [1]: https://docs.aws.amazon.com/global-accelerator/latest/api/API_UpdateEndpointGroup.html
2429
+ #
2430
+ # @option params [required, Array<Types::EndpointIdentifier>] :endpoint_identifiers
2431
+ # The identifiers of the endpoints that you want to remove.
2432
+ #
2433
+ # @option params [required, String] :endpoint_group_arn
2434
+ # The Amazon Resource Name (ARN) of the endpoint group.
2435
+ #
2436
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2437
+ #
2438
+ # @example Request syntax with placeholder values
2439
+ #
2440
+ # resp = client.remove_endpoints({
2441
+ # endpoint_identifiers: [ # required
2442
+ # {
2443
+ # endpoint_id: "GenericString", # required
2444
+ # client_ip_preservation_enabled: false,
2445
+ # },
2446
+ # ],
2447
+ # endpoint_group_arn: "GenericString", # required
2448
+ # })
2449
+ #
2450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/globalaccelerator-2018-08-08/RemoveEndpoints AWS API Documentation
2451
+ #
2452
+ # @overload remove_endpoints(params = {})
2453
+ # @param [Hash] params ({})
2454
+ def remove_endpoints(params = {}, options = {})
2455
+ req = build_request(:remove_endpoints, params)
2456
+ req.send_request(options)
2457
+ end
2458
+
2328
2459
  # Add tags to an accelerator resource.
2329
2460
  #
2330
2461
  # For more information, see [Tagging in Global Accelerator][1] in the
@@ -2953,7 +3084,7 @@ module Aws::GlobalAccelerator
2953
3084
  params: params,
2954
3085
  config: config)
2955
3086
  context[:gem_name] = 'aws-sdk-globalaccelerator'
2956
- context[:gem_version] = '1.40.0'
3087
+ context[:gem_version] = '1.42.0'
2957
3088
  Seahorse::Client::Request.new(handlers, context)
2958
3089
  end
2959
3090
 
@@ -24,6 +24,8 @@ module Aws::GlobalAccelerator
24
24
  AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
25
25
  AddCustomRoutingEndpointsRequest = Shapes::StructureShape.new(name: 'AddCustomRoutingEndpointsRequest')
26
26
  AddCustomRoutingEndpointsResponse = Shapes::StructureShape.new(name: 'AddCustomRoutingEndpointsResponse')
27
+ AddEndpointsRequest = Shapes::StructureShape.new(name: 'AddEndpointsRequest')
28
+ AddEndpointsResponse = Shapes::StructureShape.new(name: 'AddEndpointsResponse')
27
29
  AdvertiseByoipCidrRequest = Shapes::StructureShape.new(name: 'AdvertiseByoipCidrRequest')
28
30
  AdvertiseByoipCidrResponse = Shapes::StructureShape.new(name: 'AdvertiseByoipCidrResponse')
29
31
  AllowCustomRoutingTrafficRequest = Shapes::StructureShape.new(name: 'AllowCustomRoutingTrafficRequest')
@@ -107,6 +109,8 @@ module Aws::GlobalAccelerator
107
109
  EndpointGroupAlreadyExistsException = Shapes::StructureShape.new(name: 'EndpointGroupAlreadyExistsException')
108
110
  EndpointGroupNotFoundException = Shapes::StructureShape.new(name: 'EndpointGroupNotFoundException')
109
111
  EndpointGroups = Shapes::ListShape.new(name: 'EndpointGroups')
112
+ EndpointIdentifier = Shapes::StructureShape.new(name: 'EndpointIdentifier')
113
+ EndpointIdentifiers = Shapes::ListShape.new(name: 'EndpointIdentifiers')
110
114
  EndpointIds = Shapes::ListShape.new(name: 'EndpointIds')
111
115
  EndpointNotFoundException = Shapes::StructureShape.new(name: 'EndpointNotFoundException')
112
116
  EndpointWeight = Shapes::IntegerShape.new(name: 'EndpointWeight')
@@ -168,6 +172,7 @@ module Aws::GlobalAccelerator
168
172
  ProvisionByoipCidrRequest = Shapes::StructureShape.new(name: 'ProvisionByoipCidrRequest')
169
173
  ProvisionByoipCidrResponse = Shapes::StructureShape.new(name: 'ProvisionByoipCidrResponse')
170
174
  RemoveCustomRoutingEndpointsRequest = Shapes::StructureShape.new(name: 'RemoveCustomRoutingEndpointsRequest')
175
+ RemoveEndpointsRequest = Shapes::StructureShape.new(name: 'RemoveEndpointsRequest')
171
176
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
172
177
  SocketAddress = Shapes::StructureShape.new(name: 'SocketAddress')
173
178
  SocketAddresses = Shapes::ListShape.new(name: 'SocketAddresses')
@@ -181,6 +186,7 @@ module Aws::GlobalAccelerator
181
186
  ThresholdCount = Shapes::IntegerShape.new(name: 'ThresholdCount')
182
187
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
183
188
  TrafficDialPercentage = Shapes::FloatShape.new(name: 'TrafficDialPercentage')
189
+ TransactionInProgressException = Shapes::StructureShape.new(name: 'TransactionInProgressException')
184
190
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
185
191
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
186
192
  UpdateAcceleratorAttributesRequest = Shapes::StructureShape.new(name: 'UpdateAcceleratorAttributesRequest')
@@ -243,6 +249,14 @@ module Aws::GlobalAccelerator
243
249
  AddCustomRoutingEndpointsResponse.add_member(:endpoint_group_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "EndpointGroupArn"))
244
250
  AddCustomRoutingEndpointsResponse.struct_class = Types::AddCustomRoutingEndpointsResponse
245
251
 
252
+ AddEndpointsRequest.add_member(:endpoint_configurations, Shapes::ShapeRef.new(shape: EndpointConfigurations, required: true, location_name: "EndpointConfigurations"))
253
+ AddEndpointsRequest.add_member(:endpoint_group_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "EndpointGroupArn"))
254
+ AddEndpointsRequest.struct_class = Types::AddEndpointsRequest
255
+
256
+ AddEndpointsResponse.add_member(:endpoint_descriptions, Shapes::ShapeRef.new(shape: EndpointDescriptions, location_name: "EndpointDescriptions"))
257
+ AddEndpointsResponse.add_member(:endpoint_group_arn, Shapes::ShapeRef.new(shape: GenericString, location_name: "EndpointGroupArn"))
258
+ AddEndpointsResponse.struct_class = Types::AddEndpointsResponse
259
+
246
260
  AdvertiseByoipCidrRequest.add_member(:cidr, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "Cidr"))
247
261
  AdvertiseByoipCidrRequest.struct_class = Types::AdvertiseByoipCidrRequest
248
262
 
@@ -542,6 +556,12 @@ module Aws::GlobalAccelerator
542
556
 
543
557
  EndpointGroups.member = Shapes::ShapeRef.new(shape: EndpointGroup)
544
558
 
559
+ EndpointIdentifier.add_member(:endpoint_id, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "EndpointId"))
560
+ EndpointIdentifier.add_member(:client_ip_preservation_enabled, Shapes::ShapeRef.new(shape: GenericBoolean, location_name: "ClientIPPreservationEnabled"))
561
+ EndpointIdentifier.struct_class = Types::EndpointIdentifier
562
+
563
+ EndpointIdentifiers.member = Shapes::ShapeRef.new(shape: EndpointIdentifier)
564
+
545
565
  EndpointIds.member = Shapes::ShapeRef.new(shape: GenericString)
546
566
 
547
567
  EndpointNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
@@ -706,6 +726,10 @@ module Aws::GlobalAccelerator
706
726
  RemoveCustomRoutingEndpointsRequest.add_member(:endpoint_group_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "EndpointGroupArn"))
707
727
  RemoveCustomRoutingEndpointsRequest.struct_class = Types::RemoveCustomRoutingEndpointsRequest
708
728
 
729
+ RemoveEndpointsRequest.add_member(:endpoint_identifiers, Shapes::ShapeRef.new(shape: EndpointIdentifiers, required: true, location_name: "EndpointIdentifiers"))
730
+ RemoveEndpointsRequest.add_member(:endpoint_group_arn, Shapes::ShapeRef.new(shape: GenericString, required: true, location_name: "EndpointGroupArn"))
731
+ RemoveEndpointsRequest.struct_class = Types::RemoveEndpointsRequest
732
+
709
733
  SocketAddress.add_member(:ip_address, Shapes::ShapeRef.new(shape: GenericString, location_name: "IpAddress"))
710
734
  SocketAddress.add_member(:port, Shapes::ShapeRef.new(shape: PortNumber, location_name: "Port"))
711
735
  SocketAddress.struct_class = Types::SocketAddress
@@ -726,6 +750,9 @@ module Aws::GlobalAccelerator
726
750
 
727
751
  Tags.member = Shapes::ShapeRef.new(shape: Tag)
728
752
 
753
+ TransactionInProgressException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
754
+ TransactionInProgressException.struct_class = Types::TransactionInProgressException
755
+
729
756
  UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
730
757
  UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeys, required: true, location_name: "TagKeys"))
731
758
  UntagResourceRequest.struct_class = Types::UntagResourceRequest
@@ -838,6 +865,20 @@ module Aws::GlobalAccelerator
838
865
  o.errors << Shapes::ShapeRef.new(shape: ConflictException)
839
866
  end)
840
867
 
868
+ api.add_operation(:add_endpoints, Seahorse::Model::Operation.new.tap do |o|
869
+ o.name = "AddEndpoints"
870
+ o.http_method = "POST"
871
+ o.http_request_uri = "/"
872
+ o.input = Shapes::ShapeRef.new(shape: AddEndpointsRequest)
873
+ o.output = Shapes::ShapeRef.new(shape: AddEndpointsResponse)
874
+ o.errors << Shapes::ShapeRef.new(shape: TransactionInProgressException)
875
+ o.errors << Shapes::ShapeRef.new(shape: EndpointGroupNotFoundException)
876
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceErrorException)
877
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
878
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
879
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
880
+ end)
881
+
841
882
  api.add_operation(:advertise_byoip_cidr, Seahorse::Model::Operation.new.tap do |o|
842
883
  o.name = "AdvertiseByoipCidr"
843
884
  o.http_method = "POST"
@@ -1325,6 +1366,19 @@ module Aws::GlobalAccelerator
1325
1366
  o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1326
1367
  end)
1327
1368
 
1369
+ api.add_operation(:remove_endpoints, Seahorse::Model::Operation.new.tap do |o|
1370
+ o.name = "RemoveEndpoints"
1371
+ o.http_method = "POST"
1372
+ o.http_request_uri = "/"
1373
+ o.input = Shapes::ShapeRef.new(shape: RemoveEndpointsRequest)
1374
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1375
+ o.errors << Shapes::ShapeRef.new(shape: EndpointGroupNotFoundException)
1376
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceErrorException)
1377
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
1378
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1379
+ o.errors << Shapes::ShapeRef.new(shape: TransactionInProgressException)
1380
+ end)
1381
+
1328
1382
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
1329
1383
  o.name = "TagResource"
1330
1384
  o.http_method = "POST"
@@ -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::GlobalAccelerator
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,111 @@
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::GlobalAccelerator
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
+ dCI6eyJ1cmwiOiJodHRwczovL2dsb2JhbGFjY2VsZXJhdG9yLWZpcHMue1Jl
77
+ Z2lvbn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9Iiwi
78
+ cHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50
79
+ In1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxT
80
+ dGFjayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90
81
+ IHN1cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29u
82
+ ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVm
83
+ IjoiVXNlRklQUyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
84
+ ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0
85
+ cnVlLHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9u
86
+ UmVzdWx0In0sInN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJy
87
+ dWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0
88
+ dHBzOi8vZ2xvYmFsYWNjZWxlcmF0b3ItZmlwcy57UmVnaW9ufS57UGFydGl0
89
+ aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVy
90
+ cyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0aW9ucyI6W10s
91
+ ImVycm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBk
92
+ b2VzIG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29u
93
+ ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVm
94
+ IjoiVXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxl
95
+ cyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJn
96
+ diI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0
97
+ aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUi
98
+ OiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6
99
+ eyJ1cmwiOiJodHRwczovL2dsb2JhbGFjY2VsZXJhdG9yLntSZWdpb259LntQ
100
+ YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
101
+ ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
102
+ b25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBi
103
+ dXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2si
104
+ LCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50
105
+ Ijp7InVybCI6Imh0dHBzOi8vZ2xvYmFsYWNjZWxlcmF0b3Iue1JlZ2lvbn0u
106
+ e1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30s
107
+ ImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19
108
+
109
+ JSON
110
+ end
111
+ end