aws-sdk-elasticloadbalancingv2 1.21.0 → 1.75.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -23,12 +25,27 @@ require 'aws-sdk-core/plugins/idempotency_token.rb'
23
25
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
26
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
26
31
  require 'aws-sdk-core/plugins/signature_v4.rb'
27
32
  require 'aws-sdk-core/plugins/protocols/query.rb'
28
33
 
29
34
  Aws::Plugins::GlobalConfiguration.add_identifier(:elasticloadbalancingv2)
30
35
 
31
36
  module Aws::ElasticLoadBalancingV2
37
+ # An API client for ElasticLoadBalancingV2. To construct a client, you need to configure a `:region` and `:credentials`.
38
+ #
39
+ # client = Aws::ElasticLoadBalancingV2::Client.new(
40
+ # region: region_name,
41
+ # credentials: credentials,
42
+ # # ...
43
+ # )
44
+ #
45
+ # For details on configuring region and credentials see
46
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
47
+ #
48
+ # See {#initialize} for a full list of supported configuration options.
32
49
  class Client < Seahorse::Client::Base
33
50
 
34
51
  include Aws::ClientStubs
@@ -55,6 +72,9 @@ module Aws::ElasticLoadBalancingV2
55
72
  add_plugin(Aws::Plugins::JsonvalueConverter)
56
73
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
57
74
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
75
+ add_plugin(Aws::Plugins::TransferEncoding)
76
+ add_plugin(Aws::Plugins::HttpChecksum)
77
+ add_plugin(Aws::Plugins::DefaultsMode)
58
78
  add_plugin(Aws::Plugins::SignatureV4)
59
79
  add_plugin(Aws::Plugins::Protocols::Query)
60
80
 
@@ -67,13 +87,28 @@ module Aws::ElasticLoadBalancingV2
67
87
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
68
88
  # credentials.
69
89
  #
90
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
91
+ # shared file, such as `~/.aws/config`.
92
+ #
93
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
94
+ #
95
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
96
+ # assume a role after providing credentials via the web.
97
+ #
98
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
99
+ # access token generated from `aws login`.
100
+ #
101
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
102
+ # process that outputs to stdout.
103
+ #
70
104
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
71
105
  # from an EC2 IMDS on an EC2 instance.
72
106
  #
73
- # * `Aws::SharedCredentials` - Used for loading credentials from a
74
- # shared file, such as `~/.aws/config`.
107
+ # * `Aws::ECSCredentials` - Used for loading credentials from
108
+ # instances running in ECS.
75
109
  #
76
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
110
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
111
+ # from the Cognito Identity service.
77
112
  #
78
113
  # When `:credentials` are not configured directly, the following
79
114
  # locations will be searched for credentials:
@@ -83,15 +118,17 @@ module Aws::ElasticLoadBalancingV2
83
118
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
84
119
  # * `~/.aws/credentials`
85
120
  # * `~/.aws/config`
86
- # * EC2 IMDS instance profile - When used by default, the timeouts are
87
- # very aggressive. Construct and pass an instance of
88
- # `Aws::InstanceProfileCredentails` to enable retries and extended
89
- # timeouts.
121
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
122
+ # are very aggressive. Construct and pass an instance of
123
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
124
+ # enable retries and extended timeouts. Instance profile credential
125
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
126
+ # to true.
90
127
  #
91
128
  # @option options [required, String] :region
92
129
  # The AWS region to connect to. The configured `:region` is
93
130
  # used to determine the service `:endpoint`. When not passed,
94
- # a default `:region` is search for in the following locations:
131
+ # a default `:region` is searched for in the following locations:
95
132
  #
96
133
  # * `Aws.config[:region]`
97
134
  # * `ENV['AWS_REGION']`
@@ -106,6 +143,12 @@ module Aws::ElasticLoadBalancingV2
106
143
  # When set to `true`, a thread polling for endpoints will be running in
107
144
  # the background every 60 secs (default). Defaults to `false`.
108
145
  #
146
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
147
+ # Used only in `adaptive` retry mode. When true, the request will sleep
148
+ # until there is sufficent client side capacity to retry the request.
149
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
150
+ # not retry instead of sleeping.
151
+ #
109
152
  # @option options [Boolean] :client_side_monitoring (false)
110
153
  # When `true`, client-side metrics will be collected for all API requests from
111
154
  # this client.
@@ -114,6 +157,10 @@ module Aws::ElasticLoadBalancingV2
114
157
  # Allows you to provide an identifier for this client which will be attached to
115
158
  # all generated client side metrics. Defaults to an empty string.
116
159
  #
160
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
161
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
162
+ # side monitoring agent is running on, where client metrics will be published via UDP.
163
+ #
117
164
  # @option options [Integer] :client_side_monitoring_port (31000)
118
165
  # Required for publishing client metrics. The port that the client side monitoring
119
166
  # agent is running on, where client metrics will be published via UDP.
@@ -126,6 +173,14 @@ module Aws::ElasticLoadBalancingV2
126
173
  # When `true`, an attempt is made to coerce request parameters into
127
174
  # the required types.
128
175
  #
176
+ # @option options [Boolean] :correct_clock_skew (true)
177
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
178
+ # a clock skew correction and retry requests with skewed client clocks.
179
+ #
180
+ # @option options [String] :defaults_mode ("legacy")
181
+ # See {Aws::DefaultsModeConfiguration} for a list of the
182
+ # accepted modes and the configuration defaults that are included.
183
+ #
129
184
  # @option options [Boolean] :disable_host_prefix_injection (false)
130
185
  # Set to true to disable SDK automatically adding host prefix
131
186
  # to default service endpoint when available.
@@ -133,7 +188,7 @@ module Aws::ElasticLoadBalancingV2
133
188
  # @option options [String] :endpoint
134
189
  # The client endpoint is normally constructed from the `:region`
135
190
  # option. You should only configure an `:endpoint` when connecting
136
- # to test endpoints. This should be avalid HTTP(S) URI.
191
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
137
192
  #
138
193
  # @option options [Integer] :endpoint_cache_max_entries (1000)
139
194
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -148,7 +203,7 @@ module Aws::ElasticLoadBalancingV2
148
203
  # requests fetching endpoints information. Defaults to 60 sec.
149
204
  #
150
205
  # @option options [Boolean] :endpoint_discovery (false)
151
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
206
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
152
207
  #
153
208
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
154
209
  # The log formatter.
@@ -160,15 +215,29 @@ module Aws::ElasticLoadBalancingV2
160
215
  # The Logger instance to send log messages to. If this option
161
216
  # is not set, logging will be disabled.
162
217
  #
218
+ # @option options [Integer] :max_attempts (3)
219
+ # An integer representing the maximum number attempts that will be made for
220
+ # a single request, including the initial attempt. For example,
221
+ # setting this value to 5 will result in a request being retried up to
222
+ # 4 times. Used in `standard` and `adaptive` retry modes.
223
+ #
163
224
  # @option options [String] :profile ("default")
164
225
  # Used when loading credentials from the shared credentials file
165
226
  # at HOME/.aws/credentials. When not specified, 'default' is used.
166
227
  #
228
+ # @option options [Proc] :retry_backoff
229
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
230
+ # This option is only used in the `legacy` retry mode.
231
+ #
167
232
  # @option options [Float] :retry_base_delay (0.3)
168
- # The base delay in seconds used by the default backoff function.
233
+ # The base delay in seconds used by the default backoff function. This option
234
+ # is only used in the `legacy` retry mode.
169
235
  #
170
236
  # @option options [Symbol] :retry_jitter (:none)
171
- # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
237
+ # A delay randomiser function used by the default backoff function.
238
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
239
+ # otherwise a Proc that takes and returns a number. This option is only used
240
+ # in the `legacy` retry mode.
172
241
  #
173
242
  # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
174
243
  #
@@ -176,11 +245,30 @@ module Aws::ElasticLoadBalancingV2
176
245
  # The maximum number of times to retry failed requests. Only
177
246
  # ~ 500 level server errors and certain ~ 400 level client errors
178
247
  # are retried. Generally, these are throttling errors, data
179
- # checksum errors, networking errors, timeout errors and auth
180
- # errors from expired credentials.
248
+ # checksum errors, networking errors, timeout errors, auth errors,
249
+ # endpoint discovery, and errors from expired credentials.
250
+ # This option is only used in the `legacy` retry mode.
181
251
  #
182
252
  # @option options [Integer] :retry_max_delay (0)
183
- # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
253
+ # The maximum number of seconds to delay between retries (0 for no limit)
254
+ # used by the default backoff function. This option is only used in the
255
+ # `legacy` retry mode.
256
+ #
257
+ # @option options [String] :retry_mode ("legacy")
258
+ # Specifies which retry algorithm to use. Values are:
259
+ #
260
+ # * `legacy` - The pre-existing retry behavior. This is default value if
261
+ # no retry mode is provided.
262
+ #
263
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
264
+ # This includes support for retry quotas, which limit the number of
265
+ # unsuccessful retries a client can make.
266
+ #
267
+ # * `adaptive` - An experimental retry mode that includes all the
268
+ # functionality of `standard` mode along with automatic client side
269
+ # throttling. This is a provisional mode that may change behavior
270
+ # in the future.
271
+ #
184
272
  #
185
273
  # @option options [String] :secret_access_key
186
274
  #
@@ -195,25 +283,84 @@ module Aws::ElasticLoadBalancingV2
195
283
  # ** Please note ** When response stubbing is enabled, no HTTP
196
284
  # requests are made, and retries are disabled.
197
285
  #
286
+ # @option options [Boolean] :use_dualstack_endpoint
287
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
288
+ # will be used if available.
289
+ #
290
+ # @option options [Boolean] :use_fips_endpoint
291
+ # When set to `true`, fips compatible endpoints will be used if available.
292
+ # When a `fips` region is used, the region is normalized and this config
293
+ # is set to `true`.
294
+ #
198
295
  # @option options [Boolean] :validate_params (true)
199
296
  # When `true`, request parameters are validated before
200
297
  # sending the request.
201
298
  #
299
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
300
+ # requests through. Formatted like 'http://proxy.com:123'.
301
+ #
302
+ # @option options [Float] :http_open_timeout (15) The number of
303
+ # seconds to wait when opening a HTTP session before raising a
304
+ # `Timeout::Error`.
305
+ #
306
+ # @option options [Float] :http_read_timeout (60) The default
307
+ # number of seconds to wait for response data. This value can
308
+ # safely be set per-request on the session.
309
+ #
310
+ # @option options [Float] :http_idle_timeout (5) The number of
311
+ # seconds a connection is allowed to sit idle before it is
312
+ # considered stale. Stale connections are closed and removed
313
+ # from the pool before making a request.
314
+ #
315
+ # @option options [Float] :http_continue_timeout (1) The number of
316
+ # seconds to wait for a 100-continue response before sending the
317
+ # request body. This option has no effect unless the request has
318
+ # "Expect" header set to "100-continue". Defaults to `nil` which
319
+ # disables this behaviour. This value can safely be set per
320
+ # request on the session.
321
+ #
322
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
323
+ # in seconds.
324
+ #
325
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
326
+ # HTTP debug output will be sent to the `:logger`.
327
+ #
328
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
329
+ # SSL peer certificates are verified when establishing a
330
+ # connection.
331
+ #
332
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
333
+ # certificate authority bundle file that should be used when
334
+ # verifying peer certificates. If you do not pass
335
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
336
+ # will be used if available.
337
+ #
338
+ # @option options [String] :ssl_ca_directory Full path of the
339
+ # directory that contains the unbundled SSL certificate
340
+ # authority files for verifying peer certificates. If you do
341
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
342
+ # system default will be used if available.
343
+ #
202
344
  def initialize(*args)
203
345
  super
204
346
  end
205
347
 
206
348
  # @!group API Operations
207
349
 
208
- # Adds the specified certificate to the specified HTTPS listener.
350
+ # Adds the specified SSL server certificate to the certificate list for
351
+ # the specified HTTPS or TLS listener.
352
+ #
353
+ # If the certificate in already in the certificate list, the call is
354
+ # successful but the certificate is not added again.
355
+ #
356
+ # For more information, see [HTTPS listeners][1] in the *Application
357
+ # Load Balancers Guide* or [TLS listeners][2] in the *Network Load
358
+ # Balancers Guide*.
209
359
  #
210
- # If the certificate was already added, the call is successful but the
211
- # certificate is not added again.
212
360
  #
213
- # To list the certificates for your listener, use
214
- # DescribeListenerCertificates. To remove certificates from your
215
- # listener, use RemoveListenerCertificates. To specify the default SSL
216
- # server certificate, use ModifyListener.
361
+ #
362
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html
363
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html
217
364
  #
218
365
  # @option params [required, String] :listener_arn
219
366
  # The Amazon Resource Name (ARN) of the listener.
@@ -255,19 +402,17 @@ module Aws::ElasticLoadBalancingV2
255
402
 
256
403
  # Adds the specified tags to the specified Elastic Load Balancing
257
404
  # resource. You can tag your Application Load Balancers, Network Load
258
- # Balancers, and your target groups.
405
+ # Balancers, Gateway Load Balancers, target groups, listeners, and
406
+ # rules.
259
407
  #
260
408
  # Each tag consists of a key and an optional value. If a resource
261
409
  # already has a tag with the same key, `AddTags` updates its value.
262
410
  #
263
- # To list the current tags for your resources, use DescribeTags. To
264
- # remove tags from your resources, use RemoveTags.
265
- #
266
411
  # @option params [required, Array<String>] :resource_arns
267
412
  # The Amazon Resource Name (ARN) of the resource.
268
413
  #
269
414
  # @option params [required, Array<Types::Tag>] :tags
270
- # The tags. Each resource can have a maximum of 10 tags.
415
+ # The tags.
271
416
  #
272
417
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
273
418
  #
@@ -313,73 +458,87 @@ module Aws::ElasticLoadBalancingV2
313
458
  req.send_request(options)
314
459
  end
315
460
 
316
- # Creates a listener for the specified Application Load Balancer or
317
- # Network Load Balancer.
461
+ # Creates a listener for the specified Application Load Balancer,
462
+ # Network Load Balancer, or Gateway Load Balancer.
463
+ #
464
+ # For more information, see the following:
465
+ #
466
+ # * [Listeners for your Application Load Balancers][1]
318
467
  #
319
- # To update a listener, use ModifyListener. When you are finished with a
320
- # listener, you can delete it using DeleteListener. If you are finished
321
- # with both the listener and the load balancer, you can delete them both
322
- # using DeleteLoadBalancer.
468
+ # * [Listeners for your Network Load Balancers][2]
469
+ #
470
+ # * [Listeners for your Gateway Load Balancers][3]
323
471
  #
324
472
  # This operation is idempotent, which means that it completes at most
325
473
  # one time. If you attempt to create multiple listeners with the same
326
474
  # settings, each call succeeds.
327
475
  #
328
- # For more information, see [Listeners for Your Application Load
329
- # Balancers][1] in the *Application Load Balancers Guide* and [Listeners
330
- # for Your Network Load Balancers][2] in the *Network Load Balancers
331
- # Guide*.
332
- #
333
476
  #
334
477
  #
335
478
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
336
479
  # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html
480
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-listeners.html
337
481
  #
338
482
  # @option params [required, String] :load_balancer_arn
339
483
  # The Amazon Resource Name (ARN) of the load balancer.
340
484
  #
341
- # @option params [required, String] :protocol
485
+ # @option params [String] :protocol
342
486
  # The protocol for connections from clients to the load balancer. For
343
487
  # Application Load Balancers, the supported protocols are HTTP and
344
- # HTTPS. For Network Load Balancers, the supported protocols are TCP and
345
- # TLS.
488
+ # HTTPS. For Network Load Balancers, the supported protocols are TCP,
489
+ # TLS, UDP, and TCP\_UDP. You can’t specify the UDP or TCP\_UDP protocol
490
+ # if dual-stack mode is enabled. You cannot specify a protocol for a
491
+ # Gateway Load Balancer.
346
492
  #
347
- # @option params [required, Integer] :port
348
- # The port on which the load balancer is listening.
493
+ # @option params [Integer] :port
494
+ # The port on which the load balancer is listening. You cannot specify a
495
+ # port for a Gateway Load Balancer.
349
496
  #
350
497
  # @option params [String] :ssl_policy
351
498
  # \[HTTPS and TLS listeners\] The security policy that defines which
352
- # ciphers and protocols are supported. The default is the current
353
- # predefined security policy.
499
+ # protocols and ciphers are supported.
500
+ #
501
+ # For more information, see [Security policies][1] in the *Application
502
+ # Load Balancers Guide* and [Security policies][2] in the *Network Load
503
+ # Balancers Guide*.
504
+ #
505
+ #
506
+ #
507
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
508
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
354
509
  #
355
510
  # @option params [Array<Types::Certificate>] :certificates
356
- # \[HTTPS and TLS listeners\] The default SSL server certificate. You
357
- # must provide exactly one certificate. Set `CertificateArn` to the
511
+ # \[HTTPS and TLS listeners\] The default certificate for the listener.
512
+ # You must provide exactly one certificate. Set `CertificateArn` to the
358
513
  # certificate ARN but do not set `IsDefault`.
359
514
  #
360
- # To create a certificate list, use AddListenerCertificates.
361
- #
362
515
  # @option params [required, Array<Types::Action>] :default_actions
363
- # The actions for the default rule. The rule must include one forward
364
- # action or one or more fixed-response actions.
516
+ # The actions for the default rule.
365
517
  #
366
- # If the action type is `forward`, you specify a target group. The
367
- # protocol of the target group must be HTTP or HTTPS for an Application
368
- # Load Balancer. The protocol of the target group must be TCP or TLS for
369
- # a Network Load Balancer.
518
+ # @option params [Array<String>] :alpn_policy
519
+ # \[TLS listeners\] The name of the Application-Layer Protocol
520
+ # Negotiation (ALPN) policy. You can specify one policy name. The
521
+ # following are the possible values:
370
522
  #
371
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
372
- # authenticate users through an identity provider that is OpenID Connect
373
- # (OIDC) compliant.
523
+ # * `HTTP1Only`
374
524
  #
375
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`, you
376
- # authenticate users through the user pools supported by Amazon Cognito.
525
+ # * `HTTP2Only`
377
526
  #
378
- # \[Application Load Balancer\] If the action type is `redirect`, you
379
- # redirect specified client requests from one URL to another.
527
+ # * `HTTP2Optional`
380
528
  #
381
- # \[Application Load Balancer\] If the action type is `fixed-response`,
382
- # you drop specified client requests and return a custom HTTP response.
529
+ # * `HTTP2Preferred`
530
+ #
531
+ # * `None`
532
+ #
533
+ # For more information, see [ALPN policies][1] in the *Network Load
534
+ # Balancers Guide*.
535
+ #
536
+ #
537
+ #
538
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
539
+ #
540
+ # @option params [Array<Types::Tag>] :tags
541
+ # The tags to assign to the listener.
383
542
  #
384
543
  # @return [Types::CreateListenerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
385
544
  #
@@ -474,8 +633,8 @@ module Aws::ElasticLoadBalancingV2
474
633
  #
475
634
  # resp = client.create_listener({
476
635
  # load_balancer_arn: "LoadBalancerArn", # required
477
- # protocol: "HTTP", # required, accepts HTTP, HTTPS, TCP, TLS
478
- # port: 1, # required
636
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
637
+ # port: 1,
479
638
  # ssl_policy: "SslPolicyName",
480
639
  # certificates: [
481
640
  # {
@@ -529,6 +688,25 @@ module Aws::ElasticLoadBalancingV2
529
688
  # status_code: "FixedResponseActionStatusCode", # required
530
689
  # content_type: "FixedResponseActionContentType",
531
690
  # },
691
+ # forward_config: {
692
+ # target_groups: [
693
+ # {
694
+ # target_group_arn: "TargetGroupArn",
695
+ # weight: 1,
696
+ # },
697
+ # ],
698
+ # target_group_stickiness_config: {
699
+ # enabled: false,
700
+ # duration_seconds: 1,
701
+ # },
702
+ # },
703
+ # },
704
+ # ],
705
+ # alpn_policy: ["AlpnPolicyValue"],
706
+ # tags: [
707
+ # {
708
+ # key: "TagKey", # required
709
+ # value: "TagValue",
532
710
  # },
533
711
  # ],
534
712
  # })
@@ -539,7 +717,7 @@ module Aws::ElasticLoadBalancingV2
539
717
  # resp.listeners[0].listener_arn #=> String
540
718
  # resp.listeners[0].load_balancer_arn #=> String
541
719
  # resp.listeners[0].port #=> Integer
542
- # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
720
+ # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
543
721
  # resp.listeners[0].certificates #=> Array
544
722
  # resp.listeners[0].certificates[0].certificate_arn #=> String
545
723
  # resp.listeners[0].certificates[0].is_default #=> Boolean
@@ -579,6 +757,13 @@ module Aws::ElasticLoadBalancingV2
579
757
  # resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String
580
758
  # resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String
581
759
  # resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String
760
+ # resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array
761
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String
762
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer
763
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
764
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
765
+ # resp.listeners[0].alpn_policy #=> Array
766
+ # resp.listeners[0].alpn_policy[0] #=> String
582
767
  #
583
768
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListener AWS API Documentation
584
769
  #
@@ -589,36 +774,26 @@ module Aws::ElasticLoadBalancingV2
589
774
  req.send_request(options)
590
775
  end
591
776
 
592
- # Creates an Application Load Balancer or a Network Load Balancer.
777
+ # Creates an Application Load Balancer, Network Load Balancer, or
778
+ # Gateway Load Balancer.
593
779
  #
594
- # When you create a load balancer, you can specify security groups,
595
- # public subnets, IP address type, and tags. Otherwise, you could do so
596
- # later using SetSecurityGroups, SetSubnets, SetIpAddressType, and
597
- # AddTags.
780
+ # For more information, see the following:
598
781
  #
599
- # To create listeners for your load balancer, use CreateListener. To
600
- # describe your current load balancers, see DescribeLoadBalancers. When
601
- # you are finished with a load balancer, you can delete it using
602
- # DeleteLoadBalancer.
782
+ # * [Application Load Balancers][1]
603
783
  #
604
- # For limit information, see [Limits for Your Application Load
605
- # Balancer][1] in the *Application Load Balancers Guide* and [Limits for
606
- # Your Network Load Balancer][2] in the *Network Load Balancers Guide*.
784
+ # * [Network Load Balancers][2]
785
+ #
786
+ # * [Gateway Load Balancers][3]
607
787
  #
608
788
  # This operation is idempotent, which means that it completes at most
609
789
  # one time. If you attempt to create multiple load balancers with the
610
790
  # same settings, each call succeeds.
611
791
  #
612
- # For more information, see [Application Load Balancers][3] in the
613
- # *Application Load Balancers Guide* and [Network Load Balancers][4] in
614
- # the *Network Load Balancers Guide*.
615
792
  #
616
793
  #
617
- #
618
- # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html
619
- # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html
620
- # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html
621
- # [4]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html
794
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html
795
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html
796
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html
622
797
  #
623
798
  # @option params [required, String] :name
624
799
  # The name of the load balancer.
@@ -635,9 +810,18 @@ module Aws::ElasticLoadBalancingV2
635
810
  # \[Application Load Balancers\] You must specify subnets from at least
636
811
  # two Availability Zones.
637
812
  #
813
+ # \[Application Load Balancers on Outposts\] You must specify one
814
+ # Outpost subnet.
815
+ #
816
+ # \[Application Load Balancers on Local Zones\] You can specify subnets
817
+ # from one or more Local Zones.
818
+ #
638
819
  # \[Network Load Balancers\] You can specify subnets from one or more
639
820
  # Availability Zones.
640
821
  #
822
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
823
+ # Availability Zones.
824
+ #
641
825
  # @option params [Array<Types::SubnetMapping>] :subnet_mappings
642
826
  # The IDs of the public subnets. You can specify only one subnet per
643
827
  # Availability Zone. You must specify either subnets or subnet mappings.
@@ -646,8 +830,23 @@ module Aws::ElasticLoadBalancingV2
646
830
  # two Availability Zones. You cannot specify Elastic IP addresses for
647
831
  # your subnets.
648
832
  #
833
+ # \[Application Load Balancers on Outposts\] You must specify one
834
+ # Outpost subnet.
835
+ #
836
+ # \[Application Load Balancers on Local Zones\] You can specify subnets
837
+ # from one or more Local Zones.
838
+ #
649
839
  # \[Network Load Balancers\] You can specify subnets from one or more
650
- # Availability Zones. You can specify one Elastic IP address per subnet.
840
+ # Availability Zones. You can specify one Elastic IP address per subnet
841
+ # if you need static IP addresses for your internet-facing load
842
+ # balancer. For internal load balancers, you can specify one private IP
843
+ # address per subnet from the IPv4 range of the subnet. For
844
+ # internet-facing load balancer, you can specify one IPv6 address per
845
+ # subnet.
846
+ #
847
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
848
+ # Availability Zones. You cannot specify Elastic IP addresses for your
849
+ # subnets.
651
850
  #
652
851
  # @option params [Array<String>] :security_groups
653
852
  # \[Application Load Balancers\] The IDs of the security groups for the
@@ -663,22 +862,27 @@ module Aws::ElasticLoadBalancingV2
663
862
  # The nodes of an internal load balancer have only private IP addresses.
664
863
  # The DNS name of an internal load balancer is publicly resolvable to
665
864
  # the private IP addresses of the nodes. Therefore, internal load
666
- # balancers can only route requests from clients with access to the VPC
865
+ # balancers can route requests only from clients with access to the VPC
667
866
  # for the load balancer.
668
867
  #
669
868
  # The default is an Internet-facing load balancer.
670
869
  #
870
+ # You cannot specify a scheme for a Gateway Load Balancer.
871
+ #
671
872
  # @option params [Array<Types::Tag>] :tags
672
- # One or more tags to assign to the load balancer.
873
+ # The tags to assign to the load balancer.
673
874
  #
674
875
  # @option params [String] :type
675
876
  # The type of load balancer. The default is `application`.
676
877
  #
677
878
  # @option params [String] :ip_address_type
678
- # \[Application Load Balancers\] The type of IP addresses used by the
679
- # subnets for your load balancer. The possible values are `ipv4` (for
680
- # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses).
681
- # Internal load balancers must use `ipv4`.
879
+ # The type of IP addresses used by the subnets for your load balancer.
880
+ # The possible values are `ipv4` (for IPv4 addresses) and `dualstack`
881
+ # (for IPv4 and IPv6 addresses).
882
+ #
883
+ # @option params [String] :customer_owned_ipv_4_pool
884
+ # \[Application Load Balancers on Outposts\] The ID of the
885
+ # customer-owned address pool (CoIP pool).
682
886
  #
683
887
  # @return [Types::CreateLoadBalancerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
684
888
  #
@@ -785,6 +989,8 @@ module Aws::ElasticLoadBalancingV2
785
989
  # {
786
990
  # subnet_id: "SubnetId",
787
991
  # allocation_id: "AllocationId",
992
+ # private_i_pv_4_address: "PrivateIPv4Address",
993
+ # i_pv_6_address: "IPv6Address",
788
994
  # },
789
995
  # ],
790
996
  # security_groups: ["SecurityGroupId"],
@@ -795,8 +1001,9 @@ module Aws::ElasticLoadBalancingV2
795
1001
  # value: "TagValue",
796
1002
  # },
797
1003
  # ],
798
- # type: "application", # accepts application, network
1004
+ # type: "application", # accepts application, network, gateway
799
1005
  # ip_address_type: "ipv4", # accepts ipv4, dualstack
1006
+ # customer_owned_ipv_4_pool: "CustomerOwnedIpv4Pool",
800
1007
  # })
801
1008
  #
802
1009
  # @example Response structure
@@ -811,16 +1018,20 @@ module Aws::ElasticLoadBalancingV2
811
1018
  # resp.load_balancers[0].vpc_id #=> String
812
1019
  # resp.load_balancers[0].state.code #=> String, one of "active", "provisioning", "active_impaired", "failed"
813
1020
  # resp.load_balancers[0].state.reason #=> String
814
- # resp.load_balancers[0].type #=> String, one of "application", "network"
1021
+ # resp.load_balancers[0].type #=> String, one of "application", "network", "gateway"
815
1022
  # resp.load_balancers[0].availability_zones #=> Array
816
1023
  # resp.load_balancers[0].availability_zones[0].zone_name #=> String
817
1024
  # resp.load_balancers[0].availability_zones[0].subnet_id #=> String
1025
+ # resp.load_balancers[0].availability_zones[0].outpost_id #=> String
818
1026
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses #=> Array
819
1027
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].ip_address #=> String
820
1028
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].allocation_id #=> String
1029
+ # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String
1030
+ # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String
821
1031
  # resp.load_balancers[0].security_groups #=> Array
822
1032
  # resp.load_balancers[0].security_groups[0] #=> String
823
1033
  # resp.load_balancers[0].ip_address_type #=> String, one of "ipv4", "dualstack"
1034
+ # resp.load_balancers[0].customer_owned_ipv_4_pool #=> String
824
1035
  #
825
1036
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancer AWS API Documentation
826
1037
  #
@@ -834,15 +1045,12 @@ module Aws::ElasticLoadBalancingV2
834
1045
  # Creates a rule for the specified listener. The listener must be
835
1046
  # associated with an Application Load Balancer.
836
1047
  #
837
- # Rules are evaluated in priority order, from the lowest value to the
838
- # highest value. When the conditions for a rule are met, its actions are
839
- # performed. If the conditions for no rules are met, the actions for the
840
- # default rule are performed. For more information, see [Listener
841
- # Rules][1] in the *Application Load Balancers Guide*.
842
- #
843
- # To view your current rules, use DescribeRules. To update a rule, use
844
- # ModifyRule. To set the priorities of your rules, use
845
- # SetRulePriorities. To delete a rule, use DeleteRule.
1048
+ # Each rule consists of a priority, one or more actions, and one or more
1049
+ # conditions. Rules are evaluated in priority order, from the lowest
1050
+ # value to the highest value. When the conditions for a rule are met,
1051
+ # its actions are performed. If the conditions for no rules are met, the
1052
+ # actions for the default rule are performed. For more information, see
1053
+ # [Listener rules][1] in the *Application Load Balancers Guide*.
846
1054
  #
847
1055
  #
848
1056
  #
@@ -852,62 +1060,17 @@ module Aws::ElasticLoadBalancingV2
852
1060
  # The Amazon Resource Name (ARN) of the listener.
853
1061
  #
854
1062
  # @option params [required, Array<Types::RuleCondition>] :conditions
855
- # The conditions. Each condition specifies a field name and a single
856
- # value.
857
- #
858
- # If the field name is `host-header`, you can specify a single host name
859
- # (for example, my.example.com). A host name is case insensitive, can be
860
- # up to 128 characters in length, and can contain any of the following
861
- # characters. You can include up to three wildcard characters.
862
- #
863
- # * A-Z, a-z, 0-9
864
- #
865
- # * \- .
866
- #
867
- # * * (matches 0 or more characters)
868
- #
869
- # * ? (matches exactly 1 character)
870
- #
871
- # If the field name is `path-pattern`, you can specify a single path
872
- # pattern. A path pattern is case-sensitive, can be up to 128 characters
873
- # in length, and can contain any of the following characters. You can
874
- # include up to three wildcard characters.
875
- #
876
- # * A-Z, a-z, 0-9
877
- #
878
- # * \_ - . $ / ~ " ' @ : +
879
- #
880
- # * &amp; (using &amp;amp;)
881
- #
882
- # * * (matches 0 or more characters)
883
- #
884
- # * ? (matches exactly 1 character)
1063
+ # The conditions.
885
1064
  #
886
1065
  # @option params [required, Integer] :priority
887
1066
  # The rule priority. A listener can't have multiple rules with the same
888
1067
  # priority.
889
1068
  #
890
1069
  # @option params [required, Array<Types::Action>] :actions
891
- # The actions. Each rule must include exactly one of the following types
892
- # of actions: `forward`, `fixed-response`, or `redirect`.
893
- #
894
- # If the action type is `forward`, you specify a target group. The
895
- # protocol of the target group must be HTTP or HTTPS for an Application
896
- # Load Balancer. The protocol of the target group must be TCP or TLS for
897
- # a Network Load Balancer.
898
- #
899
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
900
- # authenticate users through an identity provider that is OpenID Connect
901
- # (OIDC) compliant.
902
- #
903
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`, you
904
- # authenticate users through the user pools supported by Amazon Cognito.
905
- #
906
- # \[Application Load Balancer\] If the action type is `redirect`, you
907
- # redirect specified client requests from one URL to another.
1070
+ # The actions.
908
1071
  #
909
- # \[Application Load Balancer\] If the action type is `fixed-response`,
910
- # you drop specified client requests and return a custom HTTP response.
1072
+ # @option params [Array<Types::Tag>] :tags
1073
+ # The tags to assign to the rule.
911
1074
  #
912
1075
  # @return [Types::CreateRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
913
1076
  #
@@ -971,6 +1134,30 @@ module Aws::ElasticLoadBalancingV2
971
1134
  # {
972
1135
  # field: "ConditionFieldName",
973
1136
  # values: ["StringValue"],
1137
+ # host_header_config: {
1138
+ # values: ["StringValue"],
1139
+ # },
1140
+ # path_pattern_config: {
1141
+ # values: ["StringValue"],
1142
+ # },
1143
+ # http_header_config: {
1144
+ # http_header_name: "HttpHeaderConditionName",
1145
+ # values: ["StringValue"],
1146
+ # },
1147
+ # query_string_config: {
1148
+ # values: [
1149
+ # {
1150
+ # key: "StringValue",
1151
+ # value: "StringValue",
1152
+ # },
1153
+ # ],
1154
+ # },
1155
+ # http_request_method_config: {
1156
+ # values: ["StringValue"],
1157
+ # },
1158
+ # source_ip_config: {
1159
+ # values: ["StringValue"],
1160
+ # },
974
1161
  # },
975
1162
  # ],
976
1163
  # priority: 1, # required
@@ -1020,6 +1207,24 @@ module Aws::ElasticLoadBalancingV2
1020
1207
  # status_code: "FixedResponseActionStatusCode", # required
1021
1208
  # content_type: "FixedResponseActionContentType",
1022
1209
  # },
1210
+ # forward_config: {
1211
+ # target_groups: [
1212
+ # {
1213
+ # target_group_arn: "TargetGroupArn",
1214
+ # weight: 1,
1215
+ # },
1216
+ # ],
1217
+ # target_group_stickiness_config: {
1218
+ # enabled: false,
1219
+ # duration_seconds: 1,
1220
+ # },
1221
+ # },
1222
+ # },
1223
+ # ],
1224
+ # tags: [
1225
+ # {
1226
+ # key: "TagKey", # required
1227
+ # value: "TagValue",
1023
1228
  # },
1024
1229
  # ],
1025
1230
  # })
@@ -1033,6 +1238,20 @@ module Aws::ElasticLoadBalancingV2
1033
1238
  # resp.rules[0].conditions[0].field #=> String
1034
1239
  # resp.rules[0].conditions[0].values #=> Array
1035
1240
  # resp.rules[0].conditions[0].values[0] #=> String
1241
+ # resp.rules[0].conditions[0].host_header_config.values #=> Array
1242
+ # resp.rules[0].conditions[0].host_header_config.values[0] #=> String
1243
+ # resp.rules[0].conditions[0].path_pattern_config.values #=> Array
1244
+ # resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String
1245
+ # resp.rules[0].conditions[0].http_header_config.http_header_name #=> String
1246
+ # resp.rules[0].conditions[0].http_header_config.values #=> Array
1247
+ # resp.rules[0].conditions[0].http_header_config.values[0] #=> String
1248
+ # resp.rules[0].conditions[0].query_string_config.values #=> Array
1249
+ # resp.rules[0].conditions[0].query_string_config.values[0].key #=> String
1250
+ # resp.rules[0].conditions[0].query_string_config.values[0].value #=> String
1251
+ # resp.rules[0].conditions[0].http_request_method_config.values #=> Array
1252
+ # resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String
1253
+ # resp.rules[0].conditions[0].source_ip_config.values #=> Array
1254
+ # resp.rules[0].conditions[0].source_ip_config.values[0] #=> String
1036
1255
  # resp.rules[0].actions #=> Array
1037
1256
  # resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response"
1038
1257
  # resp.rules[0].actions[0].target_group_arn #=> String
@@ -1068,6 +1287,11 @@ module Aws::ElasticLoadBalancingV2
1068
1287
  # resp.rules[0].actions[0].fixed_response_config.message_body #=> String
1069
1288
  # resp.rules[0].actions[0].fixed_response_config.status_code #=> String
1070
1289
  # resp.rules[0].actions[0].fixed_response_config.content_type #=> String
1290
+ # resp.rules[0].actions[0].forward_config.target_groups #=> Array
1291
+ # resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String
1292
+ # resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer
1293
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
1294
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
1071
1295
  # resp.rules[0].is_default #=> Boolean
1072
1296
  #
1073
1297
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRule AWS API Documentation
@@ -1081,29 +1305,23 @@ module Aws::ElasticLoadBalancingV2
1081
1305
 
1082
1306
  # Creates a target group.
1083
1307
  #
1084
- # To register targets with the target group, use RegisterTargets. To
1085
- # update the health check settings for the target group, use
1086
- # ModifyTargetGroup. To monitor the health of targets in the target
1087
- # group, use DescribeTargetHealth.
1308
+ # For more information, see the following:
1309
+ #
1310
+ # * [Target groups for your Application Load Balancers][1]
1088
1311
  #
1089
- # To route traffic to the targets in a target group, specify the target
1090
- # group in an action using CreateListener or CreateRule.
1312
+ # * [Target groups for your Network Load Balancers][2]
1091
1313
  #
1092
- # To delete a target group, use DeleteTargetGroup.
1314
+ # * [Target groups for your Gateway Load Balancers][3]
1093
1315
  #
1094
1316
  # This operation is idempotent, which means that it completes at most
1095
1317
  # one time. If you attempt to create multiple target groups with the
1096
1318
  # same settings, each call succeeds.
1097
1319
  #
1098
- # For more information, see [Target Groups for Your Application Load
1099
- # Balancers][1] in the *Application Load Balancers Guide* or [Target
1100
- # Groups for Your Network Load Balancers][2] in the *Network Load
1101
- # Balancers Guide*.
1102
- #
1103
1320
  #
1104
1321
  #
1105
1322
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html
1106
1323
  # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html
1324
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html
1107
1325
  #
1108
1326
  # @option params [required, String] :name
1109
1327
  # The name of the target group.
@@ -1115,87 +1333,120 @@ module Aws::ElasticLoadBalancingV2
1115
1333
  # @option params [String] :protocol
1116
1334
  # The protocol to use for routing traffic to the targets. For
1117
1335
  # Application Load Balancers, the supported protocols are HTTP and
1118
- # HTTPS. For Network Load Balancers, the supported protocols are TCP and
1119
- # TLS. If the target is a Lambda function, this parameter does not
1120
- # apply.
1336
+ # HTTPS. For Network Load Balancers, the supported protocols are TCP,
1337
+ # TLS, UDP, or TCP\_UDP. For Gateway Load Balancers, the supported
1338
+ # protocol is GENEVE. A TCP\_UDP listener must be associated with a
1339
+ # TCP\_UDP target group. If the target is a Lambda function, this
1340
+ # parameter does not apply.
1341
+ #
1342
+ # @option params [String] :protocol_version
1343
+ # \[HTTP/HTTPS protocol\] The protocol version. Specify `GRPC` to send
1344
+ # requests to targets using gRPC. Specify `HTTP2` to send requests to
1345
+ # targets using HTTP/2. The default is `HTTP1`, which sends requests to
1346
+ # targets using HTTP/1.1.
1121
1347
  #
1122
1348
  # @option params [Integer] :port
1123
1349
  # The port on which the targets receive traffic. This port is used
1124
1350
  # unless you specify a port override when registering the target. If the
1125
- # target is a Lambda function, this parameter does not apply.
1351
+ # target is a Lambda function, this parameter does not apply. If the
1352
+ # protocol is GENEVE, the supported port is 6081.
1126
1353
  #
1127
1354
  # @option params [String] :vpc_id
1128
1355
  # The identifier of the virtual private cloud (VPC). If the target is a
1129
- # Lambda function, this parameter does not apply.
1356
+ # Lambda function, this parameter does not apply. Otherwise, this
1357
+ # parameter is required.
1130
1358
  #
1131
1359
  # @option params [String] :health_check_protocol
1132
1360
  # The protocol the load balancer uses when performing health checks on
1133
1361
  # targets. For Application Load Balancers, the default is HTTP. For
1134
- # Network Load Balancers, the default is TCP. The TCP protocol is
1135
- # supported for health checks only if the protocol of the target group
1136
- # is TCP or TLS. The TLS protocol is not supported for health checks.
1362
+ # Network Load Balancers and Gateway Load Balancers, the default is TCP.
1363
+ # The TCP protocol is not supported for health checks if the protocol of
1364
+ # the target group is HTTP or HTTPS. The GENEVE, TLS, UDP, and TCP\_UDP
1365
+ # protocols are not supported for health checks.
1137
1366
  #
1138
1367
  # @option params [String] :health_check_port
1139
1368
  # The port the load balancer uses when performing health checks on
1140
- # targets. The default is `traffic-port`, which is the port on which
1141
- # each target receives traffic from the load balancer.
1369
+ # targets. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\_UDP,
1370
+ # the default is `traffic-port`, which is the port on which each target
1371
+ # receives traffic from the load balancer. If the protocol is GENEVE,
1372
+ # the default is port 80.
1142
1373
  #
1143
1374
  # @option params [Boolean] :health_check_enabled
1144
1375
  # Indicates whether health checks are enabled. If the target type is
1145
- # `instance` or `ip`, the default is `true`. If the target type is
1146
- # `lambda`, the default is `false`.
1376
+ # `lambda`, health checks are disabled by default but can be enabled. If
1377
+ # the target type is `instance`, `ip`, or `alb`, health checks are
1378
+ # always enabled and cannot be disabled.
1147
1379
  #
1148
1380
  # @option params [String] :health_check_path
1149
- # \[HTTP/HTTPS health checks\] The ping path that is the destination on
1150
- # the targets for health checks. The default is /.
1381
+ # \[HTTP/HTTPS health checks\] The destination for health checks on the
1382
+ # targets.
1383
+ #
1384
+ # \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /.
1385
+ #
1386
+ # \[GRPC protocol version\] The path of a custom health check method
1387
+ # with the format /package.service/method. The default is /Amazon Web
1388
+ # Services.ALB/healthcheck.
1151
1389
  #
1152
1390
  # @option params [Integer] :health_check_interval_seconds
1153
1391
  # The approximate amount of time, in seconds, between health checks of
1154
- # an individual target. For Application Load Balancers, the range is
1155
- # 5–300 seconds. For Network Load Balancers, the supported values are 10
1156
- # or 30 seconds. If the target type is `instance` or `ip`, the default
1157
- # is 30 seconds. If the target type is `lambda`, the default is 35
1158
- # seconds.
1392
+ # an individual target. If the target group protocol is TCP, TLS, UDP,
1393
+ # or TCP\_UDP, the supported values are 10 and 30 seconds. If the target
1394
+ # group protocol is HTTP or HTTPS, the default is 30 seconds. If the
1395
+ # target group protocol is GENEVE, the default is 10 seconds. If the
1396
+ # target type is `lambda`, the default is 35 seconds.
1159
1397
  #
1160
1398
  # @option params [Integer] :health_check_timeout_seconds
1161
1399
  # The amount of time, in seconds, during which no response from a target
1162
- # means a failed health check. For Application Load Balancers, the range
1163
- # is 2–120 seconds and the default is 5 seconds if the target type is
1164
- # `instance` or `ip` and 30 seconds if the target type is `lambda`. For
1165
- # Network Load Balancers, this is 10 seconds for TCP and HTTPS health
1166
- # checks and 6 seconds for HTTP health checks.
1400
+ # means a failed health check. For target groups with a protocol of
1401
+ # HTTP, HTTPS, or GENEVE, the default is 5 seconds. For target groups
1402
+ # with a protocol of TCP or TLS, this value must be 6 seconds for HTTP
1403
+ # health checks and 10 seconds for TCP and HTTPS health checks. If the
1404
+ # target type is `lambda`, the default is 30 seconds.
1167
1405
  #
1168
1406
  # @option params [Integer] :healthy_threshold_count
1169
1407
  # The number of consecutive health checks successes required before
1170
- # considering an unhealthy target healthy. For Application Load
1171
- # Balancers, the default is 5. For Network Load Balancers, the default
1172
- # is 3.
1408
+ # considering an unhealthy target healthy. For target groups with a
1409
+ # protocol of HTTP or HTTPS, the default is 5. For target groups with a
1410
+ # protocol of TCP, TLS, or GENEVE, the default is 3. If the target type
1411
+ # is `lambda`, the default is 5.
1173
1412
  #
1174
1413
  # @option params [Integer] :unhealthy_threshold_count
1175
1414
  # The number of consecutive health check failures required before
1176
- # considering a target unhealthy. For Application Load Balancers, the
1177
- # default is 2. For Network Load Balancers, this value must be the same
1178
- # as the healthy threshold count.
1415
+ # considering a target unhealthy. If the target group protocol is HTTP
1416
+ # or HTTPS, the default is 2. If the target group protocol is TCP or
1417
+ # TLS, this value must be the same as the healthy threshold count. If
1418
+ # the target group protocol is GENEVE, the default is 3. If the target
1419
+ # type is `lambda`, the default is 2.
1179
1420
  #
1180
1421
  # @option params [Types::Matcher] :matcher
1181
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for a
1182
- # successful response from a target.
1422
+ # \[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when
1423
+ # checking for a successful response from a target.
1183
1424
  #
1184
1425
  # @option params [String] :target_type
1185
1426
  # The type of target that you must specify when registering targets with
1186
1427
  # this target group. You can't specify targets for a target group using
1187
1428
  # more than one target type.
1188
1429
  #
1189
- # * `instance` - Targets are specified by instance ID. This is the
1190
- # default value.
1430
+ # * `instance` - Register targets by instance ID. This is the default
1431
+ # value.
1191
1432
  #
1192
- # * `ip` - Targets are specified by IP address. You can specify IP
1193
- # addresses from the subnets of the virtual private cloud (VPC) for
1194
- # the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and
1433
+ # * `ip` - Register targets by IP address. You can specify IP addresses
1434
+ # from the subnets of the virtual private cloud (VPC) for the target
1435
+ # group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and
1195
1436
  # 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't
1196
1437
  # specify publicly routable IP addresses.
1197
1438
  #
1198
- # * `lambda` - The target groups contains a single Lambda function.
1439
+ # * `lambda` - Register a single Lambda function as a target.
1440
+ #
1441
+ # * `alb` - Register a single Application Load Balancer as a target.
1442
+ #
1443
+ # @option params [Array<Types::Tag>] :tags
1444
+ # The tags to assign to the target group.
1445
+ #
1446
+ # @option params [String] :ip_address_type
1447
+ # The type of IP address used for this target group. The possible values
1448
+ # are `ipv4` and `ipv6`. This is an optional parameter. If not
1449
+ # specified, the IP address type defaults to `ipv4`.
1199
1450
  #
1200
1451
  # @return [Types::CreateTargetGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1201
1452
  #
@@ -1241,10 +1492,11 @@ module Aws::ElasticLoadBalancingV2
1241
1492
  #
1242
1493
  # resp = client.create_target_group({
1243
1494
  # name: "TargetGroupName", # required
1244
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS
1495
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
1496
+ # protocol_version: "ProtocolVersion",
1245
1497
  # port: 1,
1246
1498
  # vpc_id: "VpcId",
1247
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS
1499
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
1248
1500
  # health_check_port: "HealthCheckPort",
1249
1501
  # health_check_enabled: false,
1250
1502
  # health_check_path: "Path",
@@ -1253,9 +1505,17 @@ module Aws::ElasticLoadBalancingV2
1253
1505
  # healthy_threshold_count: 1,
1254
1506
  # unhealthy_threshold_count: 1,
1255
1507
  # matcher: {
1256
- # http_code: "HttpCode", # required
1508
+ # http_code: "HttpCode",
1509
+ # grpc_code: "GrpcCode",
1257
1510
  # },
1258
- # target_type: "instance", # accepts instance, ip, lambda
1511
+ # target_type: "instance", # accepts instance, ip, lambda, alb
1512
+ # tags: [
1513
+ # {
1514
+ # key: "TagKey", # required
1515
+ # value: "TagValue",
1516
+ # },
1517
+ # ],
1518
+ # ip_address_type: "ipv4", # accepts ipv4, ipv6
1259
1519
  # })
1260
1520
  #
1261
1521
  # @example Response structure
@@ -1263,10 +1523,10 @@ module Aws::ElasticLoadBalancingV2
1263
1523
  # resp.target_groups #=> Array
1264
1524
  # resp.target_groups[0].target_group_arn #=> String
1265
1525
  # resp.target_groups[0].target_group_name #=> String
1266
- # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
1526
+ # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
1267
1527
  # resp.target_groups[0].port #=> Integer
1268
1528
  # resp.target_groups[0].vpc_id #=> String
1269
- # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
1529
+ # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
1270
1530
  # resp.target_groups[0].health_check_port #=> String
1271
1531
  # resp.target_groups[0].health_check_enabled #=> Boolean
1272
1532
  # resp.target_groups[0].health_check_interval_seconds #=> Integer
@@ -1275,9 +1535,12 @@ module Aws::ElasticLoadBalancingV2
1275
1535
  # resp.target_groups[0].unhealthy_threshold_count #=> Integer
1276
1536
  # resp.target_groups[0].health_check_path #=> String
1277
1537
  # resp.target_groups[0].matcher.http_code #=> String
1538
+ # resp.target_groups[0].matcher.grpc_code #=> String
1278
1539
  # resp.target_groups[0].load_balancer_arns #=> Array
1279
1540
  # resp.target_groups[0].load_balancer_arns[0] #=> String
1280
- # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda"
1541
+ # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda", "alb"
1542
+ # resp.target_groups[0].protocol_version #=> String
1543
+ # resp.target_groups[0].ip_address_type #=> String, one of "ipv4", "ipv6"
1281
1544
  #
1282
1545
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroup AWS API Documentation
1283
1546
  #
@@ -1291,7 +1554,7 @@ module Aws::ElasticLoadBalancingV2
1291
1554
  # Deletes the specified listener.
1292
1555
  #
1293
1556
  # Alternatively, your listener is deleted when you delete the load
1294
- # balancer to which it is attached, using DeleteLoadBalancer.
1557
+ # balancer to which it is attached.
1295
1558
  #
1296
1559
  # @option params [required, String] :listener_arn
1297
1560
  # The Amazon Resource Name (ARN) of the listener.
@@ -1322,8 +1585,9 @@ module Aws::ElasticLoadBalancingV2
1322
1585
  req.send_request(options)
1323
1586
  end
1324
1587
 
1325
- # Deletes the specified Application Load Balancer or Network Load
1326
- # Balancer and its attached listeners.
1588
+ # Deletes the specified Application Load Balancer, Network Load
1589
+ # Balancer, or Gateway Load Balancer. Deleting a load balancer also
1590
+ # deletes its listeners.
1327
1591
  #
1328
1592
  # You can't delete a load balancer if deletion protection is enabled.
1329
1593
  # If the load balancer does not exist or has already been deleted, the
@@ -1365,6 +1629,8 @@ module Aws::ElasticLoadBalancingV2
1365
1629
 
1366
1630
  # Deletes the specified rule.
1367
1631
  #
1632
+ # You can't delete the default rule.
1633
+ #
1368
1634
  # @option params [required, String] :rule_arn
1369
1635
  # The Amazon Resource Name (ARN) of the rule.
1370
1636
  #
@@ -1398,6 +1664,9 @@ module Aws::ElasticLoadBalancingV2
1398
1664
  #
1399
1665
  # You can delete a target group if it is not referenced by any actions.
1400
1666
  # Deleting a target group also deletes any associated health checks.
1667
+ # Deleting a target group does not affect its registered targets. For
1668
+ # example, any EC2 instances continue to run until you stop or terminate
1669
+ # them.
1401
1670
  #
1402
1671
  # @option params [required, String] :target_group_arn
1403
1672
  # The Amazon Resource Name (ARN) of the target group.
@@ -1479,16 +1748,21 @@ module Aws::ElasticLoadBalancingV2
1479
1748
  end
1480
1749
 
1481
1750
  # Describes the current Elastic Load Balancing resource limits for your
1482
- # AWS account.
1751
+ # Amazon Web Services account.
1752
+ #
1753
+ # For more information, see the following:
1754
+ #
1755
+ # * [Quotas for your Application Load Balancers][1]
1483
1756
  #
1484
- # For more information, see [Limits for Your Application Load
1485
- # Balancers][1] in the *Application Load Balancer Guide* or [Limits for
1486
- # Your Network Load Balancers][2] in the *Network Load Balancers Guide*.
1757
+ # * [Quotas for your Network Load Balancers][2]
1758
+ #
1759
+ # * [Quotas for your Gateway Load Balancers][3]
1487
1760
  #
1488
1761
  #
1489
1762
  #
1490
1763
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html
1491
1764
  # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html
1765
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html
1492
1766
  #
1493
1767
  # @option params [String] :marker
1494
1768
  # The marker for the next set of results. (You received this marker from
@@ -1525,7 +1799,21 @@ module Aws::ElasticLoadBalancingV2
1525
1799
  req.send_request(options)
1526
1800
  end
1527
1801
 
1528
- # Describes the certificates for the specified HTTPS listener.
1802
+ # Describes the default certificate and the certificate list for the
1803
+ # specified HTTPS or TLS listener.
1804
+ #
1805
+ # If the default certificate is also in the certificate list, it appears
1806
+ # twice in the results (once with `IsDefault` set to true and once with
1807
+ # `IsDefault` set to false).
1808
+ #
1809
+ # For more information, see [SSL certificates][1] in the *Application
1810
+ # Load Balancers Guide* or [Server certificates][2] in the *Network Load
1811
+ # Balancers Guide*.
1812
+ #
1813
+ #
1814
+ #
1815
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates
1816
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#tls-listener-certificate
1529
1817
  #
1530
1818
  # @option params [required, String] :listener_arn
1531
1819
  # The Amazon Resource Names (ARN) of the listener.
@@ -1567,8 +1855,9 @@ module Aws::ElasticLoadBalancingV2
1567
1855
  end
1568
1856
 
1569
1857
  # Describes the specified listeners or the listeners for the specified
1570
- # Application Load Balancer or Network Load Balancer. You must specify
1571
- # either a load balancer or one or more listeners.
1858
+ # Application Load Balancer, Network Load Balancer, or Gateway Load
1859
+ # Balancer. You must specify either a load balancer or one or more
1860
+ # listeners.
1572
1861
  #
1573
1862
  # @option params [String] :load_balancer_arn
1574
1863
  # The Amazon Resource Name (ARN) of the load balancer.
@@ -1588,6 +1877,8 @@ module Aws::ElasticLoadBalancingV2
1588
1877
  # * {Types::DescribeListenersOutput#listeners #listeners} => Array&lt;Types::Listener&gt;
1589
1878
  # * {Types::DescribeListenersOutput#next_marker #next_marker} => String
1590
1879
  #
1880
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1881
+ #
1591
1882
  #
1592
1883
  # @example Example: To describe a listener
1593
1884
  #
@@ -1632,7 +1923,7 @@ module Aws::ElasticLoadBalancingV2
1632
1923
  # resp.listeners[0].listener_arn #=> String
1633
1924
  # resp.listeners[0].load_balancer_arn #=> String
1634
1925
  # resp.listeners[0].port #=> Integer
1635
- # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
1926
+ # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
1636
1927
  # resp.listeners[0].certificates #=> Array
1637
1928
  # resp.listeners[0].certificates[0].certificate_arn #=> String
1638
1929
  # resp.listeners[0].certificates[0].is_default #=> Boolean
@@ -1672,6 +1963,13 @@ module Aws::ElasticLoadBalancingV2
1672
1963
  # resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String
1673
1964
  # resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String
1674
1965
  # resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String
1966
+ # resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array
1967
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String
1968
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer
1969
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
1970
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
1971
+ # resp.listeners[0].alpn_policy #=> Array
1972
+ # resp.listeners[0].alpn_policy[0] #=> String
1675
1973
  # resp.next_marker #=> String
1676
1974
  #
1677
1975
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListeners AWS API Documentation
@@ -1683,17 +1981,23 @@ module Aws::ElasticLoadBalancingV2
1683
1981
  req.send_request(options)
1684
1982
  end
1685
1983
 
1686
- # Describes the attributes for the specified Application Load Balancer
1687
- # or Network Load Balancer.
1984
+ # Describes the attributes for the specified Application Load Balancer,
1985
+ # Network Load Balancer, or Gateway Load Balancer.
1986
+ #
1987
+ # For more information, see the following:
1988
+ #
1989
+ # * [Load balancer attributes][1] in the *Application Load Balancers
1990
+ # Guide*
1688
1991
  #
1689
- # For more information, see [Load Balancer Attributes][1] in the
1690
- # *Application Load Balancers Guide* or [Load Balancer Attributes][2] in
1691
- # the *Network Load Balancers Guide*.
1992
+ # * [Load balancer attributes][2] in the *Network Load Balancers Guide*
1993
+ #
1994
+ # * [Load balancer attributes][3] in the *Gateway Load Balancers Guide*
1692
1995
  #
1693
1996
  #
1694
1997
  #
1695
1998
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes
1696
1999
  # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes
2000
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#load-balancer-attributes
1697
2001
  #
1698
2002
  # @option params [required, String] :load_balancer_arn
1699
2003
  # The Amazon Resource Name (ARN) of the load balancer.
@@ -1760,10 +2064,6 @@ module Aws::ElasticLoadBalancingV2
1760
2064
 
1761
2065
  # Describes the specified load balancers or all of your load balancers.
1762
2066
  #
1763
- # To describe the listeners for a load balancer, use DescribeListeners.
1764
- # To describe the attributes for a load balancer, use
1765
- # DescribeLoadBalancerAttributes.
1766
- #
1767
2067
  # @option params [Array<String>] :load_balancer_arns
1768
2068
  # The Amazon Resource Names (ARN) of the load balancers. You can specify
1769
2069
  # up to 20 load balancers in a single call.
@@ -1783,6 +2083,8 @@ module Aws::ElasticLoadBalancingV2
1783
2083
  # * {Types::DescribeLoadBalancersOutput#load_balancers #load_balancers} => Array&lt;Types::LoadBalancer&gt;
1784
2084
  # * {Types::DescribeLoadBalancersOutput#next_marker #next_marker} => String
1785
2085
  #
2086
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2087
+ #
1786
2088
  #
1787
2089
  # @example Example: To describe a load balancer
1788
2090
  #
@@ -1847,18 +2149,29 @@ module Aws::ElasticLoadBalancingV2
1847
2149
  # resp.load_balancers[0].vpc_id #=> String
1848
2150
  # resp.load_balancers[0].state.code #=> String, one of "active", "provisioning", "active_impaired", "failed"
1849
2151
  # resp.load_balancers[0].state.reason #=> String
1850
- # resp.load_balancers[0].type #=> String, one of "application", "network"
2152
+ # resp.load_balancers[0].type #=> String, one of "application", "network", "gateway"
1851
2153
  # resp.load_balancers[0].availability_zones #=> Array
1852
2154
  # resp.load_balancers[0].availability_zones[0].zone_name #=> String
1853
2155
  # resp.load_balancers[0].availability_zones[0].subnet_id #=> String
2156
+ # resp.load_balancers[0].availability_zones[0].outpost_id #=> String
1854
2157
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses #=> Array
1855
2158
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].ip_address #=> String
1856
2159
  # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].allocation_id #=> String
2160
+ # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String
2161
+ # resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String
1857
2162
  # resp.load_balancers[0].security_groups #=> Array
1858
2163
  # resp.load_balancers[0].security_groups[0] #=> String
1859
2164
  # resp.load_balancers[0].ip_address_type #=> String, one of "ipv4", "dualstack"
2165
+ # resp.load_balancers[0].customer_owned_ipv_4_pool #=> String
1860
2166
  # resp.next_marker #=> String
1861
2167
  #
2168
+ #
2169
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
2170
+ #
2171
+ # * load_balancer_available
2172
+ # * load_balancer_exists
2173
+ # * load_balancers_deleted
2174
+ #
1862
2175
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancers AWS API Documentation
1863
2176
  #
1864
2177
  # @overload describe_load_balancers(params = {})
@@ -1943,6 +2256,20 @@ module Aws::ElasticLoadBalancingV2
1943
2256
  # resp.rules[0].conditions[0].field #=> String
1944
2257
  # resp.rules[0].conditions[0].values #=> Array
1945
2258
  # resp.rules[0].conditions[0].values[0] #=> String
2259
+ # resp.rules[0].conditions[0].host_header_config.values #=> Array
2260
+ # resp.rules[0].conditions[0].host_header_config.values[0] #=> String
2261
+ # resp.rules[0].conditions[0].path_pattern_config.values #=> Array
2262
+ # resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String
2263
+ # resp.rules[0].conditions[0].http_header_config.http_header_name #=> String
2264
+ # resp.rules[0].conditions[0].http_header_config.values #=> Array
2265
+ # resp.rules[0].conditions[0].http_header_config.values[0] #=> String
2266
+ # resp.rules[0].conditions[0].query_string_config.values #=> Array
2267
+ # resp.rules[0].conditions[0].query_string_config.values[0].key #=> String
2268
+ # resp.rules[0].conditions[0].query_string_config.values[0].value #=> String
2269
+ # resp.rules[0].conditions[0].http_request_method_config.values #=> Array
2270
+ # resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String
2271
+ # resp.rules[0].conditions[0].source_ip_config.values #=> Array
2272
+ # resp.rules[0].conditions[0].source_ip_config.values[0] #=> String
1946
2273
  # resp.rules[0].actions #=> Array
1947
2274
  # resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response"
1948
2275
  # resp.rules[0].actions[0].target_group_arn #=> String
@@ -1978,6 +2305,11 @@ module Aws::ElasticLoadBalancingV2
1978
2305
  # resp.rules[0].actions[0].fixed_response_config.message_body #=> String
1979
2306
  # resp.rules[0].actions[0].fixed_response_config.status_code #=> String
1980
2307
  # resp.rules[0].actions[0].fixed_response_config.content_type #=> String
2308
+ # resp.rules[0].actions[0].forward_config.target_groups #=> Array
2309
+ # resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String
2310
+ # resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer
2311
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
2312
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
1981
2313
  # resp.rules[0].is_default #=> Boolean
1982
2314
  # resp.next_marker #=> String
1983
2315
  #
@@ -1993,12 +2325,14 @@ module Aws::ElasticLoadBalancingV2
1993
2325
  # Describes the specified policies or all policies used for SSL
1994
2326
  # negotiation.
1995
2327
  #
1996
- # For more information, see [Security Policies][1] in the *Application
1997
- # Load Balancers Guide*.
2328
+ # For more information, see [Security policies][1] in the *Application
2329
+ # Load Balancers Guide* or [Security policies][2] in the *Network Load
2330
+ # Balancers Guide*.
1998
2331
  #
1999
2332
  #
2000
2333
  #
2001
2334
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
2335
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
2002
2336
  #
2003
2337
  # @option params [Array<String>] :names
2004
2338
  # The names of the policies.
@@ -2010,6 +2344,10 @@ module Aws::ElasticLoadBalancingV2
2010
2344
  # @option params [Integer] :page_size
2011
2345
  # The maximum number of results to return with this call.
2012
2346
  #
2347
+ # @option params [String] :load_balancer_type
2348
+ # The type of load balancer. The default lists the SSL policies for all
2349
+ # load balancers.
2350
+ #
2013
2351
  # @return [Types::DescribeSSLPoliciesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2014
2352
  #
2015
2353
  # * {Types::DescribeSSLPoliciesOutput#ssl_policies #ssl_policies} => Array&lt;Types::SslPolicy&gt;
@@ -2124,6 +2462,7 @@ module Aws::ElasticLoadBalancingV2
2124
2462
  # names: ["SslPolicyName"],
2125
2463
  # marker: "Marker",
2126
2464
  # page_size: 1,
2465
+ # load_balancer_type: "application", # accepts application, network, gateway
2127
2466
  # })
2128
2467
  #
2129
2468
  # @example Response structure
@@ -2135,6 +2474,8 @@ module Aws::ElasticLoadBalancingV2
2135
2474
  # resp.ssl_policies[0].ciphers[0].name #=> String
2136
2475
  # resp.ssl_policies[0].ciphers[0].priority #=> Integer
2137
2476
  # resp.ssl_policies[0].name #=> String
2477
+ # resp.ssl_policies[0].supported_load_balancer_types #=> Array
2478
+ # resp.ssl_policies[0].supported_load_balancer_types[0] #=> String
2138
2479
  # resp.next_marker #=> String
2139
2480
  #
2140
2481
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeSSLPolicies AWS API Documentation
@@ -2146,12 +2487,14 @@ module Aws::ElasticLoadBalancingV2
2146
2487
  req.send_request(options)
2147
2488
  end
2148
2489
 
2149
- # Describes the tags for the specified resources. You can describe the
2150
- # tags for one or more Application Load Balancers, Network Load
2151
- # Balancers, and target groups.
2490
+ # Describes the tags for the specified Elastic Load Balancing resources.
2491
+ # You can describe the tags for one or more Application Load Balancers,
2492
+ # Network Load Balancers, Gateway Load Balancers, target groups,
2493
+ # listeners, or rules.
2152
2494
  #
2153
2495
  # @option params [required, Array<String>] :resource_arns
2154
- # The Amazon Resource Names (ARN) of the resources.
2496
+ # The Amazon Resource Names (ARN) of the resources. You can specify up
2497
+ # to 20 resources in a single call.
2155
2498
  #
2156
2499
  # @return [Types::DescribeTagsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2157
2500
  #
@@ -2212,14 +2555,20 @@ module Aws::ElasticLoadBalancingV2
2212
2555
 
2213
2556
  # Describes the attributes for the specified target group.
2214
2557
  #
2215
- # For more information, see [Target Group Attributes][1] in the
2216
- # *Application Load Balancers Guide* or [Target Group Attributes][2] in
2217
- # the *Network Load Balancers Guide*.
2558
+ # For more information, see the following:
2559
+ #
2560
+ # * [Target group attributes][1] in the *Application Load Balancers
2561
+ # Guide*
2562
+ #
2563
+ # * [Target group attributes][2] in the *Network Load Balancers Guide*
2564
+ #
2565
+ # * [Target group attributes][3] in the *Gateway Load Balancers Guide*
2218
2566
  #
2219
2567
  #
2220
2568
  #
2221
2569
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes
2222
2570
  # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes
2571
+ # [3]: https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html#target-group-attributes
2223
2572
  #
2224
2573
  # @option params [required, String] :target_group_arn
2225
2574
  # The Amazon Resource Name (ARN) of the target group.
@@ -2286,10 +2635,6 @@ module Aws::ElasticLoadBalancingV2
2286
2635
  # load balancer, the names of one or more target groups, or the ARNs of
2287
2636
  # one or more target groups.
2288
2637
  #
2289
- # To describe the targets for a target group, use DescribeTargetHealth.
2290
- # To describe the attributes of a target group, use
2291
- # DescribeTargetGroupAttributes.
2292
- #
2293
2638
  # @option params [String] :load_balancer_arn
2294
2639
  # The Amazon Resource Name (ARN) of the load balancer.
2295
2640
  #
@@ -2311,6 +2656,8 @@ module Aws::ElasticLoadBalancingV2
2311
2656
  # * {Types::DescribeTargetGroupsOutput#target_groups #target_groups} => Array&lt;Types::TargetGroup&gt;
2312
2657
  # * {Types::DescribeTargetGroupsOutput#next_marker #next_marker} => String
2313
2658
  #
2659
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2660
+ #
2314
2661
  #
2315
2662
  # @example Example: To describe a target group
2316
2663
  #
@@ -2363,10 +2710,10 @@ module Aws::ElasticLoadBalancingV2
2363
2710
  # resp.target_groups #=> Array
2364
2711
  # resp.target_groups[0].target_group_arn #=> String
2365
2712
  # resp.target_groups[0].target_group_name #=> String
2366
- # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
2713
+ # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
2367
2714
  # resp.target_groups[0].port #=> Integer
2368
2715
  # resp.target_groups[0].vpc_id #=> String
2369
- # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
2716
+ # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
2370
2717
  # resp.target_groups[0].health_check_port #=> String
2371
2718
  # resp.target_groups[0].health_check_enabled #=> Boolean
2372
2719
  # resp.target_groups[0].health_check_interval_seconds #=> Integer
@@ -2375,9 +2722,12 @@ module Aws::ElasticLoadBalancingV2
2375
2722
  # resp.target_groups[0].unhealthy_threshold_count #=> Integer
2376
2723
  # resp.target_groups[0].health_check_path #=> String
2377
2724
  # resp.target_groups[0].matcher.http_code #=> String
2725
+ # resp.target_groups[0].matcher.grpc_code #=> String
2378
2726
  # resp.target_groups[0].load_balancer_arns #=> Array
2379
2727
  # resp.target_groups[0].load_balancer_arns[0] #=> String
2380
- # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda"
2728
+ # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda", "alb"
2729
+ # resp.target_groups[0].protocol_version #=> String
2730
+ # resp.target_groups[0].ip_address_type #=> String, one of "ipv4", "ipv6"
2381
2731
  # resp.next_marker #=> String
2382
2732
  #
2383
2733
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroups AWS API Documentation
@@ -2492,6 +2842,12 @@ module Aws::ElasticLoadBalancingV2
2492
2842
  # resp.target_health_descriptions[0].target_health.reason #=> String, one of "Elb.RegistrationInProgress", "Elb.InitialHealthChecking", "Target.ResponseCodeMismatch", "Target.Timeout", "Target.FailedHealthChecks", "Target.NotRegistered", "Target.NotInUse", "Target.DeregistrationInProgress", "Target.InvalidState", "Target.IpUnusable", "Target.HealthCheckDisabled", "Elb.InternalError"
2493
2843
  # resp.target_health_descriptions[0].target_health.description #=> String
2494
2844
  #
2845
+ #
2846
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
2847
+ #
2848
+ # * target_deregistered
2849
+ # * target_in_service
2850
+ #
2495
2851
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetHealth AWS API Documentation
2496
2852
  #
2497
2853
  # @overload describe_target_health(params = {})
@@ -2501,62 +2857,76 @@ module Aws::ElasticLoadBalancingV2
2501
2857
  req.send_request(options)
2502
2858
  end
2503
2859
 
2504
- # Modifies the specified properties of the specified listener.
2860
+ # Replaces the specified properties of the specified listener. Any
2861
+ # properties that you do not specify remain unchanged.
2505
2862
  #
2506
- # Any properties that you do not specify retain their current values.
2507
- # However, changing the protocol from HTTPS to HTTP, or from TLS to TCP,
2508
- # removes the security policy and server certificate properties. If you
2509
- # change the protocol from HTTP to HTTPS, or from TCP to TLS, you must
2510
- # add the security policy and server certificate properties.
2863
+ # Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes
2864
+ # the security policy and default certificate properties. If you change
2865
+ # the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the
2866
+ # security policy and default certificate properties.
2867
+ #
2868
+ # To add an item to a list, remove an item from a list, or update an
2869
+ # item in a list, you must provide the entire list. For example, to add
2870
+ # an action, specify a list with the current actions plus the new
2871
+ # action.
2511
2872
  #
2512
2873
  # @option params [required, String] :listener_arn
2513
2874
  # The Amazon Resource Name (ARN) of the listener.
2514
2875
  #
2515
2876
  # @option params [Integer] :port
2516
- # The port for connections from clients to the load balancer.
2877
+ # The port for connections from clients to the load balancer. You cannot
2878
+ # specify a port for a Gateway Load Balancer.
2517
2879
  #
2518
2880
  # @option params [String] :protocol
2519
2881
  # The protocol for connections from clients to the load balancer.
2520
2882
  # Application Load Balancers support the HTTP and HTTPS protocols.
2521
- # Network Load Balancers support the TCP and TLS protocols.
2883
+ # Network Load Balancers support the TCP, TLS, UDP, and TCP\_UDP
2884
+ # protocols. You can’t change the protocol to UDP or TCP\_UDP if
2885
+ # dual-stack mode is enabled. You cannot specify a protocol for a
2886
+ # Gateway Load Balancer.
2522
2887
  #
2523
2888
  # @option params [String] :ssl_policy
2524
2889
  # \[HTTPS and TLS listeners\] The security policy that defines which
2525
- # protocols and ciphers are supported. For more information, see
2526
- # [Security Policies][1] in the *Application Load Balancers Guide*.
2890
+ # protocols and ciphers are supported.
2891
+ #
2892
+ # For more information, see [Security policies][1] in the *Application
2893
+ # Load Balancers Guide* or [Security policies][2] in the *Network Load
2894
+ # Balancers Guide*.
2527
2895
  #
2528
2896
  #
2529
2897
  #
2530
2898
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
2899
+ # [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
2531
2900
  #
2532
2901
  # @option params [Array<Types::Certificate>] :certificates
2533
- # \[HTTPS and TLS listeners\] The default SSL server certificate. You
2534
- # must provide exactly one certificate. Set `CertificateArn` to the
2902
+ # \[HTTPS and TLS listeners\] The default certificate for the listener.
2903
+ # You must provide exactly one certificate. Set `CertificateArn` to the
2535
2904
  # certificate ARN but do not set `IsDefault`.
2536
2905
  #
2537
- # To create a certificate list, use AddListenerCertificates.
2538
- #
2539
2906
  # @option params [Array<Types::Action>] :default_actions
2540
- # The actions for the default rule. The rule must include one forward
2541
- # action or one or more fixed-response actions.
2907
+ # The actions for the default rule.
2908
+ #
2909
+ # @option params [Array<String>] :alpn_policy
2910
+ # \[TLS listeners\] The name of the Application-Layer Protocol
2911
+ # Negotiation (ALPN) policy. You can specify one policy name. The
2912
+ # following are the possible values:
2913
+ #
2914
+ # * `HTTP1Only`
2542
2915
  #
2543
- # If the action type is `forward`, you specify a target group. The
2544
- # protocol of the target group must be HTTP or HTTPS for an Application
2545
- # Load Balancer. The protocol of the target group must be TCP or TLS for
2546
- # a Network Load Balancer.
2916
+ # * `HTTP2Only`
2547
2917
  #
2548
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2549
- # authenticate users through an identity provider that is OpenID Connect
2550
- # (OIDC) compliant.
2918
+ # * `HTTP2Optional`
2551
2919
  #
2552
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`, you
2553
- # authenticate users through the user pools supported by Amazon Cognito.
2920
+ # * `HTTP2Preferred`
2554
2921
  #
2555
- # \[Application Load Balancer\] If the action type is `redirect`, you
2556
- # redirect specified client requests from one URL to another.
2922
+ # * `None`
2557
2923
  #
2558
- # \[Application Load Balancer\] If the action type is `fixed-response`,
2559
- # you drop specified client requests and return a custom HTTP response.
2924
+ # For more information, see [ALPN policies][1] in the *Network Load
2925
+ # Balancers Guide*.
2926
+ #
2927
+ #
2928
+ #
2929
+ # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
2560
2930
  #
2561
2931
  # @return [Types::ModifyListenerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2562
2932
  #
@@ -2637,7 +3007,7 @@ module Aws::ElasticLoadBalancingV2
2637
3007
  # resp = client.modify_listener({
2638
3008
  # listener_arn: "ListenerArn", # required
2639
3009
  # port: 1,
2640
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS
3010
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2641
3011
  # ssl_policy: "SslPolicyName",
2642
3012
  # certificates: [
2643
3013
  # {
@@ -2691,8 +3061,21 @@ module Aws::ElasticLoadBalancingV2
2691
3061
  # status_code: "FixedResponseActionStatusCode", # required
2692
3062
  # content_type: "FixedResponseActionContentType",
2693
3063
  # },
3064
+ # forward_config: {
3065
+ # target_groups: [
3066
+ # {
3067
+ # target_group_arn: "TargetGroupArn",
3068
+ # weight: 1,
3069
+ # },
3070
+ # ],
3071
+ # target_group_stickiness_config: {
3072
+ # enabled: false,
3073
+ # duration_seconds: 1,
3074
+ # },
3075
+ # },
2694
3076
  # },
2695
3077
  # ],
3078
+ # alpn_policy: ["AlpnPolicyValue"],
2696
3079
  # })
2697
3080
  #
2698
3081
  # @example Response structure
@@ -2701,7 +3084,7 @@ module Aws::ElasticLoadBalancingV2
2701
3084
  # resp.listeners[0].listener_arn #=> String
2702
3085
  # resp.listeners[0].load_balancer_arn #=> String
2703
3086
  # resp.listeners[0].port #=> Integer
2704
- # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
3087
+ # resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
2705
3088
  # resp.listeners[0].certificates #=> Array
2706
3089
  # resp.listeners[0].certificates[0].certificate_arn #=> String
2707
3090
  # resp.listeners[0].certificates[0].is_default #=> Boolean
@@ -2741,6 +3124,13 @@ module Aws::ElasticLoadBalancingV2
2741
3124
  # resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String
2742
3125
  # resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String
2743
3126
  # resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String
3127
+ # resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array
3128
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String
3129
+ # resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer
3130
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
3131
+ # resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
3132
+ # resp.listeners[0].alpn_policy #=> Array
3133
+ # resp.listeners[0].alpn_policy[0] #=> String
2744
3134
  #
2745
3135
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener AWS API Documentation
2746
3136
  #
@@ -2752,7 +3142,7 @@ module Aws::ElasticLoadBalancingV2
2752
3142
  end
2753
3143
 
2754
3144
  # Modifies the specified attributes of the specified Application Load
2755
- # Balancer or Network Load Balancer.
3145
+ # Balancer, Network Load Balancer, or Gateway Load Balancer.
2756
3146
  #
2757
3147
  # If any of the specified attributes can't be modified as requested,
2758
3148
  # the call fails. Any existing attributes that you do not modify retain
@@ -2925,69 +3315,23 @@ module Aws::ElasticLoadBalancingV2
2925
3315
  req.send_request(options)
2926
3316
  end
2927
3317
 
2928
- # Modifies the specified rule.
2929
- #
2930
- # Any existing properties that you do not modify retain their current
2931
- # values.
3318
+ # Replaces the specified properties of the specified rule. Any
3319
+ # properties that you do not specify are unchanged.
2932
3320
  #
2933
- # To modify the actions for the default rule, use ModifyListener.
3321
+ # To add an item to a list, remove an item from a list, or update an
3322
+ # item in a list, you must provide the entire list. For example, to add
3323
+ # an action, specify a list with the current actions plus the new
3324
+ # action.
2934
3325
  #
2935
3326
  # @option params [required, String] :rule_arn
2936
3327
  # The Amazon Resource Name (ARN) of the rule.
2937
3328
  #
2938
3329
  # @option params [Array<Types::RuleCondition>] :conditions
2939
- # The conditions. Each condition specifies a field name and a single
2940
- # value.
2941
- #
2942
- # If the field name is `host-header`, you can specify a single host name
2943
- # (for example, my.example.com). A host name is case insensitive, can be
2944
- # up to 128 characters in length, and can contain any of the following
2945
- # characters. You can include up to three wildcard characters.
2946
- #
2947
- # * A-Z, a-z, 0-9
2948
- #
2949
- # * \- .
2950
- #
2951
- # * * (matches 0 or more characters)
2952
- #
2953
- # * ? (matches exactly 1 character)
2954
- #
2955
- # If the field name is `path-pattern`, you can specify a single path
2956
- # pattern. A path pattern is case-sensitive, can be up to 128 characters
2957
- # in length, and can contain any of the following characters. You can
2958
- # include up to three wildcard characters.
2959
- #
2960
- # * A-Z, a-z, 0-9
2961
- #
2962
- # * \_ - . $ / ~ " ' @ : +
2963
- #
2964
- # * &amp; (using &amp;amp;)
2965
- #
2966
- # * * (matches 0 or more characters)
2967
- #
2968
- # * ? (matches exactly 1 character)
3330
+ # The conditions.
2969
3331
  #
2970
3332
  # @option params [Array<Types::Action>] :actions
2971
3333
  # The actions.
2972
3334
  #
2973
- # If the action type is `forward`, you specify a target group. The
2974
- # protocol of the target group must be HTTP or HTTPS for an Application
2975
- # Load Balancer. The protocol of the target group must be TCP or TLS for
2976
- # a Network Load Balancer.
2977
- #
2978
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2979
- # authenticate users through an identity provider that is OpenID Connect
2980
- # (OIDC) compliant.
2981
- #
2982
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`, you
2983
- # authenticate users through the user pools supported by Amazon Cognito.
2984
- #
2985
- # \[Application Load Balancer\] If the action type is `redirect`, you
2986
- # redirect specified client requests from one URL to another.
2987
- #
2988
- # \[Application Load Balancer\] If the action type is `fixed-response`,
2989
- # you drop specified client requests and return a custom HTTP response.
2990
- #
2991
3335
  # @return [Types::ModifyRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2992
3336
  #
2993
3337
  # * {Types::ModifyRuleOutput#rules #rules} => Array&lt;Types::Rule&gt;
@@ -3042,6 +3386,30 @@ module Aws::ElasticLoadBalancingV2
3042
3386
  # {
3043
3387
  # field: "ConditionFieldName",
3044
3388
  # values: ["StringValue"],
3389
+ # host_header_config: {
3390
+ # values: ["StringValue"],
3391
+ # },
3392
+ # path_pattern_config: {
3393
+ # values: ["StringValue"],
3394
+ # },
3395
+ # http_header_config: {
3396
+ # http_header_name: "HttpHeaderConditionName",
3397
+ # values: ["StringValue"],
3398
+ # },
3399
+ # query_string_config: {
3400
+ # values: [
3401
+ # {
3402
+ # key: "StringValue",
3403
+ # value: "StringValue",
3404
+ # },
3405
+ # ],
3406
+ # },
3407
+ # http_request_method_config: {
3408
+ # values: ["StringValue"],
3409
+ # },
3410
+ # source_ip_config: {
3411
+ # values: ["StringValue"],
3412
+ # },
3045
3413
  # },
3046
3414
  # ],
3047
3415
  # actions: [
@@ -3090,6 +3458,18 @@ module Aws::ElasticLoadBalancingV2
3090
3458
  # status_code: "FixedResponseActionStatusCode", # required
3091
3459
  # content_type: "FixedResponseActionContentType",
3092
3460
  # },
3461
+ # forward_config: {
3462
+ # target_groups: [
3463
+ # {
3464
+ # target_group_arn: "TargetGroupArn",
3465
+ # weight: 1,
3466
+ # },
3467
+ # ],
3468
+ # target_group_stickiness_config: {
3469
+ # enabled: false,
3470
+ # duration_seconds: 1,
3471
+ # },
3472
+ # },
3093
3473
  # },
3094
3474
  # ],
3095
3475
  # })
@@ -3103,6 +3483,20 @@ module Aws::ElasticLoadBalancingV2
3103
3483
  # resp.rules[0].conditions[0].field #=> String
3104
3484
  # resp.rules[0].conditions[0].values #=> Array
3105
3485
  # resp.rules[0].conditions[0].values[0] #=> String
3486
+ # resp.rules[0].conditions[0].host_header_config.values #=> Array
3487
+ # resp.rules[0].conditions[0].host_header_config.values[0] #=> String
3488
+ # resp.rules[0].conditions[0].path_pattern_config.values #=> Array
3489
+ # resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String
3490
+ # resp.rules[0].conditions[0].http_header_config.http_header_name #=> String
3491
+ # resp.rules[0].conditions[0].http_header_config.values #=> Array
3492
+ # resp.rules[0].conditions[0].http_header_config.values[0] #=> String
3493
+ # resp.rules[0].conditions[0].query_string_config.values #=> Array
3494
+ # resp.rules[0].conditions[0].query_string_config.values[0].key #=> String
3495
+ # resp.rules[0].conditions[0].query_string_config.values[0].value #=> String
3496
+ # resp.rules[0].conditions[0].http_request_method_config.values #=> Array
3497
+ # resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String
3498
+ # resp.rules[0].conditions[0].source_ip_config.values #=> Array
3499
+ # resp.rules[0].conditions[0].source_ip_config.values[0] #=> String
3106
3500
  # resp.rules[0].actions #=> Array
3107
3501
  # resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response"
3108
3502
  # resp.rules[0].actions[0].target_group_arn #=> String
@@ -3138,6 +3532,11 @@ module Aws::ElasticLoadBalancingV2
3138
3532
  # resp.rules[0].actions[0].fixed_response_config.message_body #=> String
3139
3533
  # resp.rules[0].actions[0].fixed_response_config.status_code #=> String
3140
3534
  # resp.rules[0].actions[0].fixed_response_config.content_type #=> String
3535
+ # resp.rules[0].actions[0].forward_config.target_groups #=> Array
3536
+ # resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String
3537
+ # resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer
3538
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
3539
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
3141
3540
  # resp.rules[0].is_default #=> Boolean
3142
3541
  #
3143
3542
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule AWS API Documentation
@@ -3152,46 +3551,50 @@ module Aws::ElasticLoadBalancingV2
3152
3551
  # Modifies the health checks used when evaluating the health state of
3153
3552
  # the targets in the specified target group.
3154
3553
  #
3155
- # To monitor the health of the targets, use DescribeTargetHealth.
3156
- #
3157
3554
  # @option params [required, String] :target_group_arn
3158
3555
  # The Amazon Resource Name (ARN) of the target group.
3159
3556
  #
3160
3557
  # @option params [String] :health_check_protocol
3161
3558
  # The protocol the load balancer uses when performing health checks on
3162
- # targets. The TCP protocol is supported for health checks only if the
3163
- # protocol of the target group is TCP or TLS. The TLS protocol is not
3559
+ # targets. For Application Load Balancers, the default is HTTP. For
3560
+ # Network Load Balancers and Gateway Load Balancers, the default is TCP.
3561
+ # The TCP protocol is not supported for health checks if the protocol of
3562
+ # the target group is HTTP or HTTPS. It is supported for health checks
3563
+ # only if the protocol of the target group is TCP, TLS, UDP, or
3564
+ # TCP\_UDP. The GENEVE, TLS, UDP, and TCP\_UDP protocols are not
3164
3565
  # supported for health checks.
3165
3566
  #
3166
- # If the protocol of the target group is TCP, you can't modify this
3167
- # setting.
3567
+ # With Network Load Balancers, you can't modify this setting.
3168
3568
  #
3169
3569
  # @option params [String] :health_check_port
3170
3570
  # The port the load balancer uses when performing health checks on
3171
3571
  # targets.
3172
3572
  #
3173
3573
  # @option params [String] :health_check_path
3174
- # \[HTTP/HTTPS health checks\] The ping path that is the destination for
3175
- # the health check request.
3574
+ # \[HTTP/HTTPS health checks\] The destination for health checks on the
3575
+ # targets.
3576
+ #
3577
+ # \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /.
3578
+ #
3579
+ # \[GRPC protocol version\] The path of a custom health check method
3580
+ # with the format /package.service/method. The default is /Amazon Web
3581
+ # Services.ALB/healthcheck.
3176
3582
  #
3177
3583
  # @option params [Boolean] :health_check_enabled
3178
3584
  # Indicates whether health checks are enabled.
3179
3585
  #
3180
3586
  # @option params [Integer] :health_check_interval_seconds
3181
3587
  # The approximate amount of time, in seconds, between health checks of
3182
- # an individual target. For Application Load Balancers, the range is
3183
- # 5–300 seconds. For Network Load Balancers, the supported values are 10
3184
- # or 30 seconds.
3588
+ # an individual target. For TCP health checks, the supported values are
3589
+ # 10 or 30 seconds.
3185
3590
  #
3186
- # If the protocol of the target group is TCP, you can't modify this
3187
- # setting.
3591
+ # With Network Load Balancers, you can't modify this setting.
3188
3592
  #
3189
3593
  # @option params [Integer] :health_check_timeout_seconds
3190
3594
  # \[HTTP/HTTPS health checks\] The amount of time, in seconds, during
3191
3595
  # which no response means a failed health check.
3192
3596
  #
3193
- # If the protocol of the target group is TCP, you can't modify this
3194
- # setting.
3597
+ # With Network Load Balancers, you can't modify this setting.
3195
3598
  #
3196
3599
  # @option params [Integer] :healthy_threshold_count
3197
3600
  # The number of consecutive health checks successes required before
@@ -3199,15 +3602,15 @@ module Aws::ElasticLoadBalancingV2
3199
3602
  #
3200
3603
  # @option params [Integer] :unhealthy_threshold_count
3201
3604
  # The number of consecutive health check failures required before
3202
- # considering the target unhealthy. For Network Load Balancers, this
3203
- # value must be the same as the healthy threshold count.
3605
+ # considering the target unhealthy. For target groups with a protocol of
3606
+ # TCP or TLS, this value must be the same as the healthy threshold
3607
+ # count.
3204
3608
  #
3205
3609
  # @option params [Types::Matcher] :matcher
3206
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for a
3207
- # successful response from a target.
3610
+ # \[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when
3611
+ # checking for a successful response from a target.
3208
3612
  #
3209
- # If the protocol of the target group is TCP, you can't modify this
3210
- # setting.
3613
+ # With Network Load Balancers, you can't modify this setting.
3211
3614
  #
3212
3615
  # @return [Types::ModifyTargetGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3213
3616
  #
@@ -3254,7 +3657,7 @@ module Aws::ElasticLoadBalancingV2
3254
3657
  #
3255
3658
  # resp = client.modify_target_group({
3256
3659
  # target_group_arn: "TargetGroupArn", # required
3257
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS
3660
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
3258
3661
  # health_check_port: "HealthCheckPort",
3259
3662
  # health_check_path: "Path",
3260
3663
  # health_check_enabled: false,
@@ -3263,7 +3666,8 @@ module Aws::ElasticLoadBalancingV2
3263
3666
  # healthy_threshold_count: 1,
3264
3667
  # unhealthy_threshold_count: 1,
3265
3668
  # matcher: {
3266
- # http_code: "HttpCode", # required
3669
+ # http_code: "HttpCode",
3670
+ # grpc_code: "GrpcCode",
3267
3671
  # },
3268
3672
  # })
3269
3673
  #
@@ -3272,10 +3676,10 @@ module Aws::ElasticLoadBalancingV2
3272
3676
  # resp.target_groups #=> Array
3273
3677
  # resp.target_groups[0].target_group_arn #=> String
3274
3678
  # resp.target_groups[0].target_group_name #=> String
3275
- # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
3679
+ # resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
3276
3680
  # resp.target_groups[0].port #=> Integer
3277
3681
  # resp.target_groups[0].vpc_id #=> String
3278
- # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS"
3682
+ # resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE"
3279
3683
  # resp.target_groups[0].health_check_port #=> String
3280
3684
  # resp.target_groups[0].health_check_enabled #=> Boolean
3281
3685
  # resp.target_groups[0].health_check_interval_seconds #=> Integer
@@ -3284,9 +3688,12 @@ module Aws::ElasticLoadBalancingV2
3284
3688
  # resp.target_groups[0].unhealthy_threshold_count #=> Integer
3285
3689
  # resp.target_groups[0].health_check_path #=> String
3286
3690
  # resp.target_groups[0].matcher.http_code #=> String
3691
+ # resp.target_groups[0].matcher.grpc_code #=> String
3287
3692
  # resp.target_groups[0].load_balancer_arns #=> Array
3288
3693
  # resp.target_groups[0].load_balancer_arns[0] #=> String
3289
- # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda"
3694
+ # resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda", "alb"
3695
+ # resp.target_groups[0].protocol_version #=> String
3696
+ # resp.target_groups[0].ip_address_type #=> String, one of "ipv4", "ipv6"
3290
3697
  #
3291
3698
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup AWS API Documentation
3292
3699
  #
@@ -3389,18 +3796,12 @@ module Aws::ElasticLoadBalancingV2
3389
3796
  # CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can
3390
3797
  # register instances of these types by IP address.
3391
3798
  #
3392
- # To remove a target from a target group, use DeregisterTargets.
3393
- #
3394
3799
  # @option params [required, String] :target_group_arn
3395
3800
  # The Amazon Resource Name (ARN) of the target group.
3396
3801
  #
3397
3802
  # @option params [required, Array<Types::TargetDescription>] :targets
3398
3803
  # The targets.
3399
3804
  #
3400
- # To register a target by instance ID, specify the instance ID. To
3401
- # register a target by IP address, specify the IP address. To register a
3402
- # Lambda function, specify the ARN of the Lambda function.
3403
- #
3404
3805
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3405
3806
  #
3406
3807
  #
@@ -3461,13 +3862,8 @@ module Aws::ElasticLoadBalancingV2
3461
3862
  req.send_request(options)
3462
3863
  end
3463
3864
 
3464
- # Removes the specified certificate from the specified HTTPS listener.
3465
- #
3466
- # You can't remove the default certificate for a listener. To replace
3467
- # the default certificate, call ModifyListener.
3468
- #
3469
- # To list the certificates for your listener, use
3470
- # DescribeListenerCertificates.
3865
+ # Removes the specified certificate from the certificate list for the
3866
+ # specified HTTPS or TLS listener.
3471
3867
  #
3472
3868
  # @option params [required, String] :listener_arn
3473
3869
  # The Amazon Resource Name (ARN) of the listener.
@@ -3501,9 +3897,9 @@ module Aws::ElasticLoadBalancingV2
3501
3897
  end
3502
3898
 
3503
3899
  # Removes the specified tags from the specified Elastic Load Balancing
3504
- # resource.
3505
- #
3506
- # To list the current tags for your resources, use DescribeTags.
3900
+ # resources. You can remove the tags for one or more Application Load
3901
+ # Balancers, Network Load Balancers, Gateway Load Balancers, target
3902
+ # groups, listeners, or rules.
3507
3903
  #
3508
3904
  # @option params [required, Array<String>] :resource_arns
3509
3905
  # The Amazon Resource Name (ARN) of the resource.
@@ -3547,15 +3943,14 @@ module Aws::ElasticLoadBalancingV2
3547
3943
  # Sets the type of IP addresses used by the subnets of the specified
3548
3944
  # Application Load Balancer or Network Load Balancer.
3549
3945
  #
3550
- # Network Load Balancers must use `ipv4`.
3551
- #
3552
3946
  # @option params [required, String] :load_balancer_arn
3553
3947
  # The Amazon Resource Name (ARN) of the load balancer.
3554
3948
  #
3555
3949
  # @option params [required, String] :ip_address_type
3556
3950
  # The IP address type. The possible values are `ipv4` (for IPv4
3557
- # addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal
3558
- # load balancers must use `ipv4`.
3951
+ # addresses) and `dualstack` (for IPv4 and IPv6 addresses). You can’t
3952
+ # specify `dualstack` for a load balancer with a UDP or TCP\_UDP
3953
+ # listener.
3559
3954
  #
3560
3955
  # @return [Types::SetIpAddressTypeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3561
3956
  #
@@ -3653,6 +4048,20 @@ module Aws::ElasticLoadBalancingV2
3653
4048
  # resp.rules[0].conditions[0].field #=> String
3654
4049
  # resp.rules[0].conditions[0].values #=> Array
3655
4050
  # resp.rules[0].conditions[0].values[0] #=> String
4051
+ # resp.rules[0].conditions[0].host_header_config.values #=> Array
4052
+ # resp.rules[0].conditions[0].host_header_config.values[0] #=> String
4053
+ # resp.rules[0].conditions[0].path_pattern_config.values #=> Array
4054
+ # resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String
4055
+ # resp.rules[0].conditions[0].http_header_config.http_header_name #=> String
4056
+ # resp.rules[0].conditions[0].http_header_config.values #=> Array
4057
+ # resp.rules[0].conditions[0].http_header_config.values[0] #=> String
4058
+ # resp.rules[0].conditions[0].query_string_config.values #=> Array
4059
+ # resp.rules[0].conditions[0].query_string_config.values[0].key #=> String
4060
+ # resp.rules[0].conditions[0].query_string_config.values[0].value #=> String
4061
+ # resp.rules[0].conditions[0].http_request_method_config.values #=> Array
4062
+ # resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String
4063
+ # resp.rules[0].conditions[0].source_ip_config.values #=> Array
4064
+ # resp.rules[0].conditions[0].source_ip_config.values[0] #=> String
3656
4065
  # resp.rules[0].actions #=> Array
3657
4066
  # resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response"
3658
4067
  # resp.rules[0].actions[0].target_group_arn #=> String
@@ -3688,6 +4097,11 @@ module Aws::ElasticLoadBalancingV2
3688
4097
  # resp.rules[0].actions[0].fixed_response_config.message_body #=> String
3689
4098
  # resp.rules[0].actions[0].fixed_response_config.status_code #=> String
3690
4099
  # resp.rules[0].actions[0].fixed_response_config.content_type #=> String
4100
+ # resp.rules[0].actions[0].forward_config.target_groups #=> Array
4101
+ # resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String
4102
+ # resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer
4103
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean
4104
+ # resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer
3691
4105
  # resp.rules[0].is_default #=> Boolean
3692
4106
  #
3693
4107
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities AWS API Documentation
@@ -3703,7 +4117,8 @@ module Aws::ElasticLoadBalancingV2
3703
4117
  # Application Load Balancer. The specified security groups override the
3704
4118
  # previously associated security groups.
3705
4119
  #
3706
- # You can't specify a security group for a Network Load Balancer.
4120
+ # You can't specify a security group for a Network Load Balancer or
4121
+ # Gateway Load Balancer.
3707
4122
  #
3708
4123
  # @option params [required, String] :load_balancer_arn
3709
4124
  # The Amazon Resource Name (ARN) of the load balancer.
@@ -3755,30 +4170,66 @@ module Aws::ElasticLoadBalancingV2
3755
4170
  req.send_request(options)
3756
4171
  end
3757
4172
 
3758
- # Enables the Availability Zone for the specified public subnets for the
3759
- # specified Application Load Balancer. The specified subnets replace the
3760
- # previously enabled subnets.
4173
+ # Enables the Availability Zones for the specified public subnets for
4174
+ # the specified Application Load Balancer or Network Load Balancer. The
4175
+ # specified subnets replace the previously enabled subnets.
3761
4176
  #
3762
- # You can't change the subnets for a Network Load Balancer.
4177
+ # When you specify subnets for a Network Load Balancer, you must include
4178
+ # all subnets that were enabled previously, with their existing
4179
+ # configurations, plus any additional subnets.
3763
4180
  #
3764
4181
  # @option params [required, String] :load_balancer_arn
3765
4182
  # The Amazon Resource Name (ARN) of the load balancer.
3766
4183
  #
3767
4184
  # @option params [Array<String>] :subnets
3768
- # The IDs of the public subnets. You must specify subnets from at least
3769
- # two Availability Zones. You can specify only one subnet per
4185
+ # The IDs of the public subnets. You can specify only one subnet per
3770
4186
  # Availability Zone. You must specify either subnets or subnet mappings.
3771
4187
  #
4188
+ # \[Application Load Balancers\] You must specify subnets from at least
4189
+ # two Availability Zones.
4190
+ #
4191
+ # \[Application Load Balancers on Outposts\] You must specify one
4192
+ # Outpost subnet.
4193
+ #
4194
+ # \[Application Load Balancers on Local Zones\] You can specify subnets
4195
+ # from one or more Local Zones.
4196
+ #
4197
+ # \[Network Load Balancers\] You can specify subnets from one or more
4198
+ # Availability Zones.
4199
+ #
3772
4200
  # @option params [Array<Types::SubnetMapping>] :subnet_mappings
3773
- # The IDs of the public subnets. You must specify subnets from at least
3774
- # two Availability Zones. You can specify only one subnet per
4201
+ # The IDs of the public subnets. You can specify only one subnet per
3775
4202
  # Availability Zone. You must specify either subnets or subnet mappings.
3776
4203
  #
3777
- # You cannot specify Elastic IP addresses for your subnets.
4204
+ # \[Application Load Balancers\] You must specify subnets from at least
4205
+ # two Availability Zones. You cannot specify Elastic IP addresses for
4206
+ # your subnets.
4207
+ #
4208
+ # \[Application Load Balancers on Outposts\] You must specify one
4209
+ # Outpost subnet.
4210
+ #
4211
+ # \[Application Load Balancers on Local Zones\] You can specify subnets
4212
+ # from one or more Local Zones.
4213
+ #
4214
+ # \[Network Load Balancers\] You can specify subnets from one or more
4215
+ # Availability Zones. You can specify one Elastic IP address per subnet
4216
+ # if you need static IP addresses for your internet-facing load
4217
+ # balancer. For internal load balancers, you can specify one private IP
4218
+ # address per subnet from the IPv4 range of the subnet. For
4219
+ # internet-facing load balancer, you can specify one IPv6 address per
4220
+ # subnet.
4221
+ #
4222
+ # @option params [String] :ip_address_type
4223
+ # \[Network Load Balancers\] The type of IP addresses used by the
4224
+ # subnets for your load balancer. The possible values are `ipv4` (for
4225
+ # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). You
4226
+ # can’t specify `dualstack` for a load balancer with a UDP or TCP\_UDP
4227
+ # listener. .
3778
4228
  #
3779
4229
  # @return [Types::SetSubnetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3780
4230
  #
3781
4231
  # * {Types::SetSubnetsOutput#availability_zones #availability_zones} => Array&lt;Types::AvailabilityZone&gt;
4232
+ # * {Types::SetSubnetsOutput#ip_address_type #ip_address_type} => String
3782
4233
  #
3783
4234
  #
3784
4235
  # @example Example: To enable Availability Zones for a load balancer
@@ -3816,8 +4267,11 @@ module Aws::ElasticLoadBalancingV2
3816
4267
  # {
3817
4268
  # subnet_id: "SubnetId",
3818
4269
  # allocation_id: "AllocationId",
4270
+ # private_i_pv_4_address: "PrivateIPv4Address",
4271
+ # i_pv_6_address: "IPv6Address",
3819
4272
  # },
3820
4273
  # ],
4274
+ # ip_address_type: "ipv4", # accepts ipv4, dualstack
3821
4275
  # })
3822
4276
  #
3823
4277
  # @example Response structure
@@ -3825,9 +4279,13 @@ module Aws::ElasticLoadBalancingV2
3825
4279
  # resp.availability_zones #=> Array
3826
4280
  # resp.availability_zones[0].zone_name #=> String
3827
4281
  # resp.availability_zones[0].subnet_id #=> String
4282
+ # resp.availability_zones[0].outpost_id #=> String
3828
4283
  # resp.availability_zones[0].load_balancer_addresses #=> Array
3829
4284
  # resp.availability_zones[0].load_balancer_addresses[0].ip_address #=> String
3830
4285
  # resp.availability_zones[0].load_balancer_addresses[0].allocation_id #=> String
4286
+ # resp.availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String
4287
+ # resp.availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String
4288
+ # resp.ip_address_type #=> String, one of "ipv4", "dualstack"
3831
4289
  #
3832
4290
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets AWS API Documentation
3833
4291
  #
@@ -3851,7 +4309,7 @@ module Aws::ElasticLoadBalancingV2
3851
4309
  params: params,
3852
4310
  config: config)
3853
4311
  context[:gem_name] = 'aws-sdk-elasticloadbalancingv2'
3854
- context[:gem_version] = '1.21.0'
4312
+ context[:gem_version] = '1.75.0'
3855
4313
  Seahorse::Client::Request.new(handlers, context)
3856
4314
  end
3857
4315
 
@@ -3868,7 +4326,7 @@ module Aws::ElasticLoadBalancingV2
3868
4326
  # In between attempts, the waiter will sleep.
3869
4327
  #
3870
4328
  # # polls in a loop, sleeping between attempts
3871
- # client.waiter_until(waiter_name, params)
4329
+ # client.wait_until(waiter_name, params)
3872
4330
  #
3873
4331
  # ## Configuration
3874
4332
  #
@@ -3917,13 +4375,13 @@ module Aws::ElasticLoadBalancingV2
3917
4375
  # The following table lists the valid waiter names, the operations they call,
3918
4376
  # and the default `:delay` and `:max_attempts` values.
3919
4377
  #
3920
- # | waiter_name | params | :delay | :max_attempts |
3921
- # | ----------------------- | -------------------------- | -------- | ------------- |
3922
- # | load_balancer_available | {#describe_load_balancers} | 15 | 40 |
3923
- # | load_balancer_exists | {#describe_load_balancers} | 15 | 40 |
3924
- # | load_balancers_deleted | {#describe_load_balancers} | 15 | 40 |
3925
- # | target_deregistered | {#describe_target_health} | 15 | 40 |
3926
- # | target_in_service | {#describe_target_health} | 15 | 40 |
4378
+ # | waiter_name | params | :delay | :max_attempts |
4379
+ # | ----------------------- | -------------------------------- | -------- | ------------- |
4380
+ # | load_balancer_available | {Client#describe_load_balancers} | 15 | 40 |
4381
+ # | load_balancer_exists | {Client#describe_load_balancers} | 15 | 40 |
4382
+ # | load_balancers_deleted | {Client#describe_load_balancers} | 15 | 40 |
4383
+ # | target_deregistered | {Client#describe_target_health} | 15 | 40 |
4384
+ # | target_in_service | {Client#describe_target_health} | 15 | 40 |
3927
4385
  #
3928
4386
  # @raise [Errors::FailureStateError] Raised when the waiter terminates
3929
4387
  # because the waiter has entered a state that it will not transition