aws-sdk-elasticloadbalancingv2 1.21.0 → 1.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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