class Aws::ElasticLoadBalancingV2::Client
An API client for ElasticLoadBalancingV2
. To construct a client, you need to configure a `:region` and `:credentials`.
client = Aws::ElasticLoadBalancingV2::Client.new( region: region_name, credentials: credentials, # ... )
For details on configuring region and credentials see the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
See {#initialize} for a full list of supported configuration options.
Attributes
@api private
Public Class Methods
@overload initialize(options)
@param [Hash] options @option options [required, Aws::CredentialProvider] :credentials Your AWS credentials. This can be an instance of any one of the following classes: * `Aws::Credentials` - Used for configuring static, non-refreshing credentials. * `Aws::SharedCredentials` - Used for loading static credentials from a shared file, such as `~/.aws/config`. * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to assume a role after providing credentials via the web. * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an access token generated from `aws login`. * `Aws::ProcessCredentials` - Used for loading credentials from a process that outputs to stdout. * `Aws::InstanceProfileCredentials` - Used for loading credentials from an EC2 IMDS on an EC2 instance. * `Aws::ECSCredentials` - Used for loading credentials from instances running in ECS. * `Aws::CognitoIdentityCredentials` - Used for loading credentials from the Cognito Identity service. When `:credentials` are not configured directly, the following locations will be searched for credentials: * `Aws.config[:credentials]` * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] * `~/.aws/credentials` * `~/.aws/config` * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to enable retries and extended timeouts. @option options [required, String] :region The AWS region to connect to. The configured `:region` is used to determine the service `:endpoint`. When not passed, a default `:region` is searched for in the following locations: * `Aws.config[:region]` * `ENV['AWS_REGION']` * `ENV['AMAZON_REGION']` * `ENV['AWS_DEFAULT_REGION']` * `~/.aws/credentials` * `~/.aws/config` @option options [String] :access_key_id @option options [Boolean] :active_endpoint_cache (false) When set to `true`, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to `false`. @option options [Boolean] :adaptive_retry_wait_to_fill (true) Used only in `adaptive` retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a `RetryCapacityNotAvailableError` and will not retry instead of sleeping. @option options [Boolean] :client_side_monitoring (false) When `true`, client-side metrics will be collected for all API requests from this client. @option options [String] :client_side_monitoring_client_id ("") Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string. @option options [String] :client_side_monitoring_host ("127.0.0.1") Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP. @option options [Integer] :client_side_monitoring_port (31000) Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP. @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher. @option options [Boolean] :convert_params (true) When `true`, an attempt is made to coerce request parameters into the required types. @option options [Boolean] :correct_clock_skew (true) Used only in `standard` and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks. @option options [Boolean] :disable_host_prefix_injection (false) Set to true to disable SDK automatically adding host prefix to default service endpoint when available. @option options [String] :endpoint The client endpoint is normally constructed from the `:region` option. You should only configure an `:endpoint` when connecting to test or custom endpoints. This should be a valid HTTP(S) URI. @option options [Integer] :endpoint_cache_max_entries (1000) Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000. @option options [Integer] :endpoint_cache_max_threads (10) Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. @option options [Integer] :endpoint_cache_poll_interval (60) When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec. @option options [Boolean] :endpoint_discovery (false) When set to `true`, endpoint discovery will be enabled for operations when available. @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) The log formatter. @option options [Symbol] :log_level (:info) The log level to send messages to the `:logger` at. @option options [Logger] :logger The Logger instance to send log messages to. If this option is not set, logging will be disabled. @option options [Integer] :max_attempts (3) An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in `standard` and `adaptive` retry modes. @option options [String] :profile ("default") Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used. @option options [Proc] :retry_backoff A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the `legacy` retry mode. @option options [Float] :retry_base_delay (0.3) The base delay in seconds used by the default backoff function. This option is only used in the `legacy` retry mode. @option options [Symbol] :retry_jitter (:none) 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. This option is only used in the `legacy` retry mode. @see https://www.awsarchitectureblog.com/2015/03/backoff.html @option options [Integer] :retry_limit (3) The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the `legacy` retry mode. @option options [Integer] :retry_max_delay (0) The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the `legacy` retry mode. @option options [String] :retry_mode ("legacy") Specifies which retry algorithm to use. Values are: * `legacy` - The pre-existing retry behavior. This is default value if no retry mode is provided. * `standard` - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make. * `adaptive` - An experimental retry mode that includes all the functionality of `standard` mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future. @option options [String] :secret_access_key @option options [String] :session_token @option options [Boolean] :stub_responses (false) Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling {ClientStubs#stub_responses}. See {ClientStubs} for more information. ** Please note ** When response stubbing is enabled, no HTTP requests are made, and retries are disabled. @option options [Boolean] :validate_params (true) When `true`, request parameters are validated before sending the request. @option options [URI::HTTP,String] :http_proxy A proxy to send requests through. Formatted like 'http://proxy.com:123'. @option options [Float] :http_open_timeout (15) The number of seconds to wait when opening a HTTP session before raising a `Timeout::Error`. @option options [Integer] :http_read_timeout (60) The default number of seconds to wait for response data. This value can safely be set per-request on the session. @option options [Float] :http_idle_timeout (5) The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request. @option options [Float] :http_continue_timeout (1) The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to `nil` which disables this behaviour. This value can safely be set per request on the session. @option options [Boolean] :http_wire_trace (false) When `true`, HTTP debug output will be sent to the `:logger`. @option options [Boolean] :ssl_verify_peer (true) When `true`, SSL peer certificates are verified when establishing a connection. @option options [String] :ssl_ca_bundle Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available. @option options [String] :ssl_ca_directory Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available.
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 324 def initialize(*args) super end
Private Class Methods
@api private
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4412 def errors_module Errors end
Public Instance Methods
Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener.
If the certificate in already in the certificate list, the call is successful but the certificate is not added again.
For more information, see [HTTPS listeners] in the *Application Load Balancers Guide* or [TLS listeners] in the *Network Load Balancers Guide*.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html
@option params [required, String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@option params [required, Array<Types::Certificate>] :certificates
The certificate to add. You can specify one certificate per call. Set `CertificateArn` to the certificate ARN but do not set `IsDefault`.
@return [Types::AddListenerCertificatesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::AddListenerCertificatesOutput#certificates #certificates} => Array<Types::Certificate>
@example Request syntax with placeholder values
resp = client.add_listener_certificates({ listener_arn: "ListenerArn", # required certificates: [ # required { certificate_arn: "CertificateArn", is_default: false, }, ], })
@example Response structure
resp.certificates #=> Array resp.certificates[0].certificate_arn #=> String resp.certificates[0].is_default #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddListenerCertificates AWS API Documentation
@overload add_listener_certificates
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 378 def add_listener_certificates(params = {}, options = {}) req = build_request(:add_listener_certificates, params) req.send_request(options) end
@param params ({}) @api private
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4266 def build_request(operation_name, params = {}) handlers = @handlers.for(operation_name) context = Seahorse::Client::RequestContext.new( operation_name: operation_name, operation: config.api.operation(operation_name), client: self, params: params, config: config) context[:gem_name] = 'aws-sdk-elasticloadbalancingv2' context[:gem_version] = '1.67.0' Seahorse::Client::Request.new(handlers, context) end
Creates a listener for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.
For more information, see the following:
- Listeners for your Application Load Balancers][1
- Listeners for your Network Load Balancers][2
- Listeners for your Gateway Load Balancers][3
This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple listeners with the same settings, each call succeeds.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-listeners.html
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [String] :protocol
The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP\_UDP. You can’t specify the UDP or TCP\_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer.
@option params [Integer] :port
The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer.
@option params [String] :ssl_policy
\[HTTPS and TLS listeners\] The security policy that defines which protocols and ciphers are supported. For more information, see [Security policies][1] in the *Application Load Balancers Guide* and [Security policies][2] in the *Network Load Balancers Guide*. [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
@option params [Array<Types::Certificate>] :certificates
\[HTTPS and TLS listeners\] The default certificate for the listener. You must provide exactly one certificate. Set `CertificateArn` to the certificate ARN but do not set `IsDefault`.
@option params [required, Array<Types::Action>] :default_actions
The actions for the default rule.
@option params [Array<String>] :alpn_policy
\[TLS listeners\] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: * `HTTP1Only` * `HTTP2Only` * `HTTP2Optional` * `HTTP2Preferred` * `None` For more information, see [ALPN policies][1] in the *Network Load Balancers Guide*. [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
@option params [Array<Types::Tag>] :tags
The tags to assign to the listener.
@return [Types::CreateListenerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateListenerOutput#listeners #listeners} => Array<Types::Listener>
@example Example: To create an HTTP listener
# This example creates an HTTP listener for the specified load balancer that forwards requests to the specified target # group. resp = client.create_listener({ default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 80, protocol: "HTTP", }) resp.to_h outputs the following: { listeners: [ { default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 80, protocol: "HTTP", }, ], }
@example Example: To create an HTTPS listener
# This example creates an HTTPS listener for the specified load balancer that forwards requests to the specified target # group. Note that you must specify an SSL certificate for an HTTPS listener. You can create and manage certificates using # AWS Certificate Manager (ACM). Alternatively, you can create a certificate using SSL/TLS tools, get the certificate # signed by a certificate authority (CA), and upload the certificate to AWS Identity and Access Management (IAM). resp = client.create_listener({ certificates: [ { certificate_arn: "arn:aws:iam::123456789012:server-certificate/my-server-cert", }, ], default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 443, protocol: "HTTPS", ssl_policy: "ELBSecurityPolicy-2015-05", }) resp.to_h outputs the following: { listeners: [ { certificates: [ { certificate_arn: "arn:aws:iam::123456789012:server-certificate/my-server-cert", }, ], default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 443, protocol: "HTTPS", ssl_policy: "ELBSecurityPolicy-2015-05", }, ], }
@example Request syntax with placeholder values
resp = client.create_listener({ load_balancer_arn: "LoadBalancerArn", # required protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE port: 1, ssl_policy: "SslPolicyName", certificates: [ { certificate_arn: "CertificateArn", is_default: false, }, ], default_actions: [ # required { type: "forward", # required, accepts forward, authenticate-oidc, authenticate-cognito, redirect, fixed-response target_group_arn: "TargetGroupArn", authenticate_oidc_config: { issuer: "AuthenticateOidcActionIssuer", # required authorization_endpoint: "AuthenticateOidcActionAuthorizationEndpoint", # required token_endpoint: "AuthenticateOidcActionTokenEndpoint", # required user_info_endpoint: "AuthenticateOidcActionUserInfoEndpoint", # required client_id: "AuthenticateOidcActionClientId", # required client_secret: "AuthenticateOidcActionClientSecret", session_cookie_name: "AuthenticateOidcActionSessionCookieName", scope: "AuthenticateOidcActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateOidcActionAuthenticationRequestParamName" => "AuthenticateOidcActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate use_existing_client_secret: false, }, authenticate_cognito_config: { user_pool_arn: "AuthenticateCognitoActionUserPoolArn", # required user_pool_client_id: "AuthenticateCognitoActionUserPoolClientId", # required user_pool_domain: "AuthenticateCognitoActionUserPoolDomain", # required session_cookie_name: "AuthenticateCognitoActionSessionCookieName", scope: "AuthenticateCognitoActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateCognitoActionAuthenticationRequestParamName" => "AuthenticateCognitoActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate }, order: 1, redirect_config: { protocol: "RedirectActionProtocol", port: "RedirectActionPort", host: "RedirectActionHost", path: "RedirectActionPath", query: "RedirectActionQuery", status_code: "HTTP_301", # required, accepts HTTP_301, HTTP_302 }, fixed_response_config: { message_body: "FixedResponseActionMessage", status_code: "FixedResponseActionStatusCode", # required content_type: "FixedResponseActionContentType", }, forward_config: { target_groups: [ { target_group_arn: "TargetGroupArn", weight: 1, }, ], target_group_stickiness_config: { enabled: false, duration_seconds: 1, }, }, }, ], alpn_policy: ["AlpnPolicyValue"], tags: [ { key: "TagKey", # required value: "TagValue", }, ], })
@example Response structure
resp.listeners #=> Array resp.listeners[0].listener_arn #=> String resp.listeners[0].load_balancer_arn #=> String resp.listeners[0].port #=> Integer resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.listeners[0].certificates #=> Array resp.listeners[0].certificates[0].certificate_arn #=> String resp.listeners[0].certificates[0].is_default #=> Boolean resp.listeners[0].ssl_policy #=> String resp.listeners[0].default_actions #=> Array resp.listeners[0].default_actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.listeners[0].default_actions[0].target_group_arn #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.issuer #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.token_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_id #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_secret #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].order #=> Integer resp.listeners[0].default_actions[0].redirect_config.protocol #=> String resp.listeners[0].default_actions[0].redirect_config.port #=> String resp.listeners[0].default_actions[0].redirect_config.host #=> String resp.listeners[0].default_actions[0].redirect_config.path #=> String resp.listeners[0].default_actions[0].redirect_config.query #=> String resp.listeners[0].default_actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.listeners[0].alpn_policy #=> Array resp.listeners[0].alpn_policy[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListener AWS API Documentation
@overload create_listener
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 752 def create_listener(params = {}, options = {}) req = build_request(:create_listener, params) req.send_request(options) end
Creates an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.
For more information, see the following:
- Application Load Balancers][1
- Network Load Balancers][2
- Gateway Load Balancers][3
This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple load balancers with the same settings, each call succeeds.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html
@option params [required, String] :name
The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-".
@option params [Array<String>] :subnets
The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. \[Application Load Balancers\] You must specify subnets from at least two Availability Zones. \[Application Load Balancers on Outposts\] You must specify one Outpost subnet. \[Application Load Balancers on Local Zones\] You can specify subnets from one or more Local Zones. \[Network Load Balancers\] You can specify subnets from one or more Availability Zones. \[Gateway Load Balancers\] You can specify subnets from one or more Availability Zones.
@option params [Array<Types::SubnetMapping>] :subnet_mappings
The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. \[Application Load Balancers\] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. \[Application Load Balancers on Outposts\] You must specify one Outpost subnet. \[Application Load Balancers on Local Zones\] You can specify subnets from one or more Local Zones. \[Network Load Balancers\] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. \[Gateway Load Balancers\] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.
@option params [Array<String>] :security_groups
\[Application Load Balancers\] The IDs of the security groups for the load balancer.
@option params [String] :scheme
The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. You cannot specify a scheme for a Gateway Load Balancer.
@option params [Array<Types::Tag>] :tags
The tags to assign to the load balancer.
@option params [String] :type
The type of load balancer. The default is `application`.
@option params [String] :ip_address_type
The type of IP addresses used by the subnets for your load balancer. The possible values are `ipv4` (for IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal load balancers must use `ipv4`.
@option params [String] :customer_owned_ipv_4_pool
\[Application Load Balancers on Outposts\] The ID of the customer-owned address pool (CoIP pool).
@return [Types::CreateLoadBalancerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateLoadBalancerOutput#load_balancers #load_balancers} => Array<Types::LoadBalancer>
@example Example: To create an Internet-facing load balancer
# This example creates an Internet-facing load balancer and enables the Availability Zones for the specified subnets. resp = client.create_load_balancer({ name: "my-load-balancer", subnets: [ "subnet-b7d581c0", "subnet-8360a9e7", ], }) resp.to_h outputs the following: { load_balancers: [ { availability_zones: [ { subnet_id: "subnet-8360a9e7", zone_name: "us-west-2a", }, { subnet_id: "subnet-b7d581c0", zone_name: "us-west-2b", }, ], canonical_hosted_zone_id: "Z2P70J7EXAMPLE", created_time: Time.parse("2016-03-25T21:26:12.920Z"), dns_name: "my-load-balancer-424835706.us-west-2.elb.amazonaws.com", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", load_balancer_name: "my-load-balancer", scheme: "internet-facing", security_groups: [ "sg-5943793c", ], state: { code: "provisioning", }, type: "application", vpc_id: "vpc-3ac0fb5f", }, ], }
@example Example: To create an internal load balancer
# This example creates an internal load balancer and enables the Availability Zones for the specified subnets. resp = client.create_load_balancer({ name: "my-internal-load-balancer", scheme: "internal", security_groups: [ ], subnets: [ "subnet-b7d581c0", "subnet-8360a9e7", ], }) resp.to_h outputs the following: { load_balancers: [ { availability_zones: [ { subnet_id: "subnet-8360a9e7", zone_name: "us-west-2a", }, { subnet_id: "subnet-b7d581c0", zone_name: "us-west-2b", }, ], canonical_hosted_zone_id: "Z2P70J7EXAMPLE", created_time: Time.parse("2016-03-25T21:29:48.850Z"), dns_name: "internal-my-internal-load-balancer-1529930873.us-west-2.elb.amazonaws.com", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-internal-load-balancer/5b49b8d4303115c2", load_balancer_name: "my-internal-load-balancer", scheme: "internal", security_groups: [ "sg-5943793c", ], state: { code: "provisioning", }, type: "application", vpc_id: "vpc-3ac0fb5f", }, ], }
@example Request syntax with placeholder values
resp = client.create_load_balancer({ name: "LoadBalancerName", # required subnets: ["SubnetId"], subnet_mappings: [ { subnet_id: "SubnetId", allocation_id: "AllocationId", private_i_pv_4_address: "PrivateIPv4Address", i_pv_6_address: "IPv6Address", }, ], security_groups: ["SecurityGroupId"], scheme: "internet-facing", # accepts internet-facing, internal tags: [ { key: "TagKey", # required value: "TagValue", }, ], type: "application", # accepts application, network, gateway ip_address_type: "ipv4", # accepts ipv4, dualstack customer_owned_ipv_4_pool: "CustomerOwnedIpv4Pool", })
@example Response structure
resp.load_balancers #=> Array resp.load_balancers[0].load_balancer_arn #=> String resp.load_balancers[0].dns_name #=> String resp.load_balancers[0].canonical_hosted_zone_id #=> String resp.load_balancers[0].created_time #=> Time resp.load_balancers[0].load_balancer_name #=> String resp.load_balancers[0].scheme #=> String, one of "internet-facing", "internal" resp.load_balancers[0].vpc_id #=> String resp.load_balancers[0].state.code #=> String, one of "active", "provisioning", "active_impaired", "failed" resp.load_balancers[0].state.reason #=> String resp.load_balancers[0].type #=> String, one of "application", "network", "gateway" resp.load_balancers[0].availability_zones #=> Array resp.load_balancers[0].availability_zones[0].zone_name #=> String resp.load_balancers[0].availability_zones[0].subnet_id #=> String resp.load_balancers[0].availability_zones[0].outpost_id #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses #=> Array resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].ip_address #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].allocation_id #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String resp.load_balancers[0].security_groups #=> Array resp.load_balancers[0].security_groups[0] #=> String resp.load_balancers[0].ip_address_type #=> String, one of "ipv4", "dualstack" resp.load_balancers[0].customer_owned_ipv_4_pool #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancer AWS API Documentation
@overload create_load_balancer
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1021 def create_load_balancer(params = {}, options = {}) req = build_request(:create_load_balancer, params) req.send_request(options) end
Creates a rule for the specified listener. The listener must be associated with an Application Load Balancer.
Each rule consists of a priority, one or more actions, and one or more conditions. Rules are evaluated in priority order, from the lowest value to the highest value. When the conditions for a rule are met, its actions are performed. If the conditions for no rules are met, the actions for the default rule are performed. For more information, see
- Listener rules][1
-
in the *Application Load Balancers Guide*.
@option params [required, String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@option params [required, Array<Types::RuleCondition>] :conditions
The conditions.
@option params [required, Integer] :priority
The rule priority. A listener can't have multiple rules with the same priority.
@option params [required, Array<Types::Action>] :actions
The actions.
@option params [Array<Types::Tag>] :tags
The tags to assign to the rule.
@return [Types::CreateRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateRuleOutput#rules #rules} => Array<Types::Rule>
@example Example: To create a rule
# This example creates a rule that forwards requests to the specified target group if the URL contains the specified # pattern (for example, /img/*). resp = client.create_rule({ actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], conditions: [ { field: "path-pattern", values: [ "/img/*", ], }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", priority: 10, }) resp.to_h outputs the following: { rules: [ { actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], conditions: [ { field: "path-pattern", values: [ "/img/*", ], }, ], is_default: false, priority: "10", rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", }, ], }
@example Request syntax with placeholder values
resp = client.create_rule({ listener_arn: "ListenerArn", # required conditions: [ # required { field: "ConditionFieldName", values: ["StringValue"], host_header_config: { values: ["StringValue"], }, path_pattern_config: { values: ["StringValue"], }, http_header_config: { http_header_name: "HttpHeaderConditionName", values: ["StringValue"], }, query_string_config: { values: [ { key: "StringValue", value: "StringValue", }, ], }, http_request_method_config: { values: ["StringValue"], }, source_ip_config: { values: ["StringValue"], }, }, ], priority: 1, # required actions: [ # required { type: "forward", # required, accepts forward, authenticate-oidc, authenticate-cognito, redirect, fixed-response target_group_arn: "TargetGroupArn", authenticate_oidc_config: { issuer: "AuthenticateOidcActionIssuer", # required authorization_endpoint: "AuthenticateOidcActionAuthorizationEndpoint", # required token_endpoint: "AuthenticateOidcActionTokenEndpoint", # required user_info_endpoint: "AuthenticateOidcActionUserInfoEndpoint", # required client_id: "AuthenticateOidcActionClientId", # required client_secret: "AuthenticateOidcActionClientSecret", session_cookie_name: "AuthenticateOidcActionSessionCookieName", scope: "AuthenticateOidcActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateOidcActionAuthenticationRequestParamName" => "AuthenticateOidcActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate use_existing_client_secret: false, }, authenticate_cognito_config: { user_pool_arn: "AuthenticateCognitoActionUserPoolArn", # required user_pool_client_id: "AuthenticateCognitoActionUserPoolClientId", # required user_pool_domain: "AuthenticateCognitoActionUserPoolDomain", # required session_cookie_name: "AuthenticateCognitoActionSessionCookieName", scope: "AuthenticateCognitoActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateCognitoActionAuthenticationRequestParamName" => "AuthenticateCognitoActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate }, order: 1, redirect_config: { protocol: "RedirectActionProtocol", port: "RedirectActionPort", host: "RedirectActionHost", path: "RedirectActionPath", query: "RedirectActionQuery", status_code: "HTTP_301", # required, accepts HTTP_301, HTTP_302 }, fixed_response_config: { message_body: "FixedResponseActionMessage", status_code: "FixedResponseActionStatusCode", # required content_type: "FixedResponseActionContentType", }, forward_config: { target_groups: [ { target_group_arn: "TargetGroupArn", weight: 1, }, ], target_group_stickiness_config: { enabled: false, duration_seconds: 1, }, }, }, ], tags: [ { key: "TagKey", # required value: "TagValue", }, ], })
@example Response structure
resp.rules #=> Array resp.rules[0].rule_arn #=> String resp.rules[0].priority #=> String resp.rules[0].conditions #=> Array resp.rules[0].conditions[0].field #=> String resp.rules[0].conditions[0].values #=> Array resp.rules[0].conditions[0].values[0] #=> String resp.rules[0].conditions[0].host_header_config.values #=> Array resp.rules[0].conditions[0].host_header_config.values[0] #=> String resp.rules[0].conditions[0].path_pattern_config.values #=> Array resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String resp.rules[0].conditions[0].http_header_config.http_header_name #=> String resp.rules[0].conditions[0].http_header_config.values #=> Array resp.rules[0].conditions[0].http_header_config.values[0] #=> String resp.rules[0].conditions[0].query_string_config.values #=> Array resp.rules[0].conditions[0].query_string_config.values[0].key #=> String resp.rules[0].conditions[0].query_string_config.values[0].value #=> String resp.rules[0].conditions[0].http_request_method_config.values #=> Array resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String resp.rules[0].conditions[0].source_ip_config.values #=> Array resp.rules[0].conditions[0].source_ip_config.values[0] #=> String resp.rules[0].actions #=> Array resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.rules[0].actions[0].target_group_arn #=> String resp.rules[0].actions[0].authenticate_oidc_config.issuer #=> String resp.rules[0].actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.token_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_id #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_secret #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_oidc_config.scope #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.rules[0].actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_cognito_config.scope #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].order #=> Integer resp.rules[0].actions[0].redirect_config.protocol #=> String resp.rules[0].actions[0].redirect_config.port #=> String resp.rules[0].actions[0].redirect_config.host #=> String resp.rules[0].actions[0].redirect_config.path #=> String resp.rules[0].actions[0].redirect_config.query #=> String resp.rules[0].actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.rules[0].actions[0].fixed_response_config.message_body #=> String resp.rules[0].actions[0].fixed_response_config.status_code #=> String resp.rules[0].actions[0].fixed_response_config.content_type #=> String resp.rules[0].actions[0].forward_config.target_groups #=> Array resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.rules[0].is_default #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRule AWS API Documentation
@overload create_rule
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1282 def create_rule(params = {}, options = {}) req = build_request(:create_rule, params) req.send_request(options) end
Creates a target group.
For more information, see the following:
- Target groups for your Application Load Balancers][1
- Target groups for your Network Load Balancers][2
- Target groups for your Gateway Load Balancers][3
This operation is idempotent, which means that it completes at most one time. If you attempt to create multiple target groups with the same settings, each call succeeds.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html
@option params [required, String] :name
The name of the target group. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.
@option params [String] :protocol
The protocol to use for routing traffic to the targets. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, or TCP\_UDP. For Gateway Load Balancers, the supported protocol is GENEVE. A TCP\_UDP listener must be associated with a TCP\_UDP target group. If the target is a Lambda function, this parameter does not apply.
@option params [String] :protocol_version
\[HTTP/HTTPS protocol\] The protocol version. Specify `GRPC` to send requests to targets using gRPC. Specify `HTTP2` to send requests to targets using HTTP/2. The default is `HTTP1`, which sends requests to targets using HTTP/1.1.
@option params [Integer] :port
The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target. If the target is a Lambda function, this parameter does not apply. If the protocol is GENEVE, the supported port is 6081.
@option params [String] :vpc_id
The identifier of the virtual private cloud (VPC). If the target is a Lambda function, this parameter does not apply. Otherwise, this parameter is required.
@option params [String] :health_check_protocol
The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. The GENEVE, TLS, UDP, and TCP\_UDP protocols are not supported for health checks.
@option params [String] :health_check_port
The port the load balancer uses when performing health checks on targets. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\_UDP, the default is `traffic-port`, which is the port on which each target receives traffic from the load balancer. If the protocol is GENEVE, the default is port 80.
@option params [Boolean] :health_check_enabled
Indicates whether health checks are enabled. If the target type is `lambda`, health checks are disabled by default but can be enabled. If the target type is `instance` or `ip`, health checks are always enabled and cannot be disabled.
@option params [String] :health_check_path
\[HTTP/HTTPS health checks\] The destination for health checks on the targets. \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /. \[GRPC protocol version\] The path of a custom health check method with the format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.
@option params [Integer] :health_check_interval_seconds
The approximate amount of time, in seconds, between health checks of an individual target. If the target group protocol is TCP, TLS, UDP, or TCP\_UDP, the supported values are 10 and 30 seconds. If the target group protocol is HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is `lambda`, the default is 35 seconds.
@option params [Integer] :health_check_timeout_seconds
The amount of time, in seconds, during which no response from a target means a failed health check. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks. If the target type is `lambda`, the default is 30 seconds.
@option params [Integer] :healthy_threshold_count
The number of consecutive health checks successes required before considering an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS, the default is 5. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3. If the target type is `lambda`, the default is 5.
@option params [Integer] :unhealthy_threshold_count
The number of consecutive health check failures required before considering a target unhealthy. If the target group protocol is HTTP or HTTPS, the default is 2. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count. If the target group protocol is GENEVE, the default is 3. If the target type is `lambda`, the default is 2.
@option params [Types::Matcher] :matcher
\[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when checking for a successful response from a target.
@option params [String] :target_type
The type of target that you must specify when registering targets with this target group. You can't specify targets for a target group using more than one target type. * `instance` - Register targets by instance ID. This is the default value. * `ip` - Register targets by IP address. You can specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses. * `lambda` - Register a single Lambda function as a target.
@option params [Array<Types::Tag>] :tags
The tags to assign to the target group.
@return [Types::CreateTargetGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateTargetGroupOutput#target_groups #target_groups} => Array<Types::TargetGroup>
@example Example: To create a target group
# This example creates a target group that you can use to route traffic to targets using HTTP on port 80. This target # group uses the default health check configuration. resp = client.create_target_group({ name: "my-targets", port: 80, protocol: "HTTP", vpc_id: "vpc-3ac0fb5f", }) resp.to_h outputs the following: { target_groups: [ { health_check_interval_seconds: 30, health_check_path: "/", health_check_port: "traffic-port", health_check_protocol: "HTTP", health_check_timeout_seconds: 5, healthy_threshold_count: 5, matcher: { http_code: "200", }, port: 80, protocol: "HTTP", target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", target_group_name: "my-targets", unhealthy_threshold_count: 2, vpc_id: "vpc-3ac0fb5f", }, ], }
@example Request syntax with placeholder values
resp = client.create_target_group({ name: "TargetGroupName", # required protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE protocol_version: "ProtocolVersion", port: 1, vpc_id: "VpcId", health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE health_check_port: "HealthCheckPort", health_check_enabled: false, health_check_path: "Path", health_check_interval_seconds: 1, health_check_timeout_seconds: 1, healthy_threshold_count: 1, unhealthy_threshold_count: 1, matcher: { http_code: "HttpCode", grpc_code: "GrpcCode", }, target_type: "instance", # accepts instance, ip, lambda tags: [ { key: "TagKey", # required value: "TagValue", }, ], })
@example Response structure
resp.target_groups #=> Array resp.target_groups[0].target_group_arn #=> String resp.target_groups[0].target_group_name #=> String resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].port #=> Integer resp.target_groups[0].vpc_id #=> String resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].health_check_port #=> String resp.target_groups[0].health_check_enabled #=> Boolean resp.target_groups[0].health_check_interval_seconds #=> Integer resp.target_groups[0].health_check_timeout_seconds #=> Integer resp.target_groups[0].healthy_threshold_count #=> Integer resp.target_groups[0].unhealthy_threshold_count #=> Integer resp.target_groups[0].health_check_path #=> String resp.target_groups[0].matcher.http_code #=> String resp.target_groups[0].matcher.grpc_code #=> String resp.target_groups[0].load_balancer_arns #=> Array resp.target_groups[0].load_balancer_arns[0] #=> String resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda" resp.target_groups[0].protocol_version #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroup AWS API Documentation
@overload create_target_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1521 def create_target_group(params = {}, options = {}) req = build_request(:create_target_group, params) req.send_request(options) end
Deletes the specified listener.
Alternatively, your listener is deleted when you delete the load balancer to which it is attached.
@option params [required, String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a listener
# This example deletes the specified listener. resp = client.delete_listener({ listener_arn: "arn:aws:elasticloadbalancing:ua-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", })
@example Request syntax with placeholder values
resp = client.delete_listener({ listener_arn: "ListenerArn", # required })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteListener AWS API Documentation
@overload delete_listener
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1555 def delete_listener(params = {}, options = {}) req = build_request(:delete_listener, params) req.send_request(options) end
Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load balancer also deletes its listeners.
You can't delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.
Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a load balancer
# This example deletes the specified load balancer. resp = client.delete_load_balancer({ load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", })
@example Request syntax with placeholder values
resp = client.delete_load_balancer({ load_balancer_arn: "LoadBalancerArn", # required })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteLoadBalancer AWS API Documentation
@overload delete_load_balancer
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1597 def delete_load_balancer(params = {}, options = {}) req = build_request(:delete_load_balancer, params) req.send_request(options) end
Deletes the specified rule.
You can't delete the default rule.
@option params [required, String] :rule_arn
The Amazon Resource Name (ARN) of the rule.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a rule
# This example deletes the specified rule. resp = client.delete_rule({ rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3", })
@example Request syntax with placeholder values
resp = client.delete_rule({ rule_arn: "RuleArn", # required })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteRule AWS API Documentation
@overload delete_rule
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1630 def delete_rule(params = {}, options = {}) req = build_request(:delete_rule, params) req.send_request(options) end
Deletes the specified target group.
You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks. Deleting a target group does not affect its registered targets. For example, any EC2 instances continue to run until you stop or terminate them.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a target group
# This example deletes the specified target group. resp = client.delete_target_group({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", })
@example Request syntax with placeholder values
resp = client.delete_target_group({ target_group_arn: "TargetGroupArn", # required })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteTargetGroup AWS API Documentation
@overload delete_target_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1667 def delete_target_group(params = {}, options = {}) req = build_request(:delete_target_group, params) req.send_request(options) end
Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@option params [required, Array<Types::TargetDescription>] :targets
The targets. If you specified a port override when you registered a target, you must specify both the target ID and the port when you deregister it.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To deregister a target from a target group
# This example deregisters the specified instance from the specified target group. resp = client.deregister_targets({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", targets: [ { id: "i-0f76fade", }, ], })
@example Request syntax with placeholder values
resp = client.deregister_targets({ target_group_arn: "TargetGroupArn", # required targets: [ # required { id: "TargetId", # required port: 1, availability_zone: "ZoneName", }, ], })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeregisterTargets AWS API Documentation
@overload deregister_targets
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1717 def deregister_targets(params = {}, options = {}) req = build_request(:deregister_targets, params) req.send_request(options) end
Describes the current Elastic Load Balancing resource limits for your Amazon Web Services account.
For more information, see the following:
- Quotas for your Application Load Balancers][1
- Quotas for your Network Load Balancers][2
- Quotas for your Gateway Load Balancers][3
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeAccountLimitsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeAccountLimitsOutput#limits #limits} => Array<Types::Limit> * {Types::DescribeAccountLimitsOutput#next_marker #next_marker} => String
@example Request syntax with placeholder values
resp = client.describe_account_limits({ marker: "Marker", page_size: 1, })
@example Response structure
resp.limits #=> Array resp.limits[0].name #=> String resp.limits[0].max #=> String resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeAccountLimits AWS API Documentation
@overload describe_account_limits
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1769 def describe_account_limits(params = {}, options = {}) req = build_request(:describe_account_limits, params) req.send_request(options) end
Describes the default certificate and the certificate list for the specified HTTPS or TLS listener.
If the default certificate is also in the certificate list, it appears twice in the results (once with `IsDefault` set to true and once with `IsDefault` set to false).
For more information, see [SSL certificates] in the *Application Load Balancers Guide* or [Server certificates] in the *Network Load Balancers Guide*.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#tls-listener-certificate
@option params [required, String] :listener_arn
The Amazon Resource Names (ARN) of the listener.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeListenerCertificatesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeListenerCertificatesOutput#certificates #certificates} => Array<Types::Certificate> * {Types::DescribeListenerCertificatesOutput#next_marker #next_marker} => String
@example Request syntax with placeholder values
resp = client.describe_listener_certificates({ listener_arn: "ListenerArn", # required marker: "Marker", page_size: 1, })
@example Response structure
resp.certificates #=> Array resp.certificates[0].certificate_arn #=> String resp.certificates[0].is_default #=> Boolean resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListenerCertificates AWS API Documentation
@overload describe_listener_certificates
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1824 def describe_listener_certificates(params = {}, options = {}) req = build_request(:describe_listener_certificates, params) req.send_request(options) end
Describes the specified listeners or the listeners for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. You must specify either a load balancer or one or more listeners.
@option params [String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [Array<String>] :listener_arns
The Amazon Resource Names (ARN) of the listeners.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeListenersOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeListenersOutput#listeners #listeners} => Array<Types::Listener> * {Types::DescribeListenersOutput#next_marker #next_marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To describe a listener
# This example describes the specified listener. resp = client.describe_listeners({ listener_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", ], }) resp.to_h outputs the following: { listeners: [ { default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 80, protocol: "HTTP", }, ], }
@example Request syntax with placeholder values
resp = client.describe_listeners({ load_balancer_arn: "LoadBalancerArn", listener_arns: ["ListenerArn"], marker: "Marker", page_size: 1, })
@example Response structure
resp.listeners #=> Array resp.listeners[0].listener_arn #=> String resp.listeners[0].load_balancer_arn #=> String resp.listeners[0].port #=> Integer resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.listeners[0].certificates #=> Array resp.listeners[0].certificates[0].certificate_arn #=> String resp.listeners[0].certificates[0].is_default #=> Boolean resp.listeners[0].ssl_policy #=> String resp.listeners[0].default_actions #=> Array resp.listeners[0].default_actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.listeners[0].default_actions[0].target_group_arn #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.issuer #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.token_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_id #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_secret #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].order #=> Integer resp.listeners[0].default_actions[0].redirect_config.protocol #=> String resp.listeners[0].default_actions[0].redirect_config.port #=> String resp.listeners[0].default_actions[0].redirect_config.host #=> String resp.listeners[0].default_actions[0].redirect_config.path #=> String resp.listeners[0].default_actions[0].redirect_config.query #=> String resp.listeners[0].default_actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.listeners[0].alpn_policy #=> Array resp.listeners[0].alpn_policy[0] #=> String resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListeners AWS API Documentation
@overload describe_listeners
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 1951 def describe_listeners(params = {}, options = {}) req = build_request(:describe_listeners, params) req.send_request(options) end
Describes the attributes for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.
For more information, see the following:
- Load balancer attributes][1
-
in the *Application Load Balancers
Guide*
- Load balancer attributes][2
-
in the *Network Load Balancers Guide*
- Load balancer attributes][3
-
in the *Gateway Load Balancers Guide*
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#load-balancer-attributes
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@return [Types::DescribeLoadBalancerAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeLoadBalancerAttributesOutput#attributes #attributes} => Array<Types::LoadBalancerAttribute>
@example Example: To describe load balancer attributes
# This example describes the attributes of the specified load balancer. resp = client.describe_load_balancer_attributes({ load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", }) resp.to_h outputs the following: { attributes: [ { key: "access_logs.s3.enabled", value: "false", }, { key: "idle_timeout.timeout_seconds", value: "60", }, { key: "access_logs.s3.prefix", value: "", }, { key: "deletion_protection.enabled", value: "false", }, { key: "access_logs.s3.bucket", value: "", }, ], }
@example Request syntax with placeholder values
resp = client.describe_load_balancer_attributes({ load_balancer_arn: "LoadBalancerArn", # required })
@example Response structure
resp.attributes #=> Array resp.attributes[0].key #=> String resp.attributes[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancerAttributes AWS API Documentation
@overload describe_load_balancer_attributes
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2032 def describe_load_balancer_attributes(params = {}, options = {}) req = build_request(:describe_load_balancer_attributes, params) req.send_request(options) end
Describes the specified load balancers or all of your load balancers.
@option params [Array<String>] :load_balancer_arns
The Amazon Resource Names (ARN) of the load balancers. You can specify up to 20 load balancers in a single call.
@option params [Array<String>] :names
The names of the load balancers.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeLoadBalancersOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeLoadBalancersOutput#load_balancers #load_balancers} => Array<Types::LoadBalancer> * {Types::DescribeLoadBalancersOutput#next_marker #next_marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To describe a load balancer
# This example describes the specified load balancer. resp = client.describe_load_balancers({ load_balancer_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", ], }) resp.to_h outputs the following: { load_balancers: [ { availability_zones: [ { subnet_id: "subnet-8360a9e7", zone_name: "us-west-2a", }, { subnet_id: "subnet-b7d581c0", zone_name: "us-west-2b", }, ], canonical_hosted_zone_id: "Z2P70J7EXAMPLE", created_time: Time.parse("2016-03-25T21:26:12.920Z"), dns_name: "my-load-balancer-424835706.us-west-2.elb.amazonaws.com", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", load_balancer_name: "my-load-balancer", scheme: "internet-facing", security_groups: [ "sg-5943793c", ], state: { code: "active", }, type: "application", vpc_id: "vpc-3ac0fb5f", }, ], }
@example Request syntax with placeholder values
resp = client.describe_load_balancers({ load_balancer_arns: ["LoadBalancerArn"], names: ["LoadBalancerName"], marker: "Marker", page_size: 1, })
@example Response structure
resp.load_balancers #=> Array resp.load_balancers[0].load_balancer_arn #=> String resp.load_balancers[0].dns_name #=> String resp.load_balancers[0].canonical_hosted_zone_id #=> String resp.load_balancers[0].created_time #=> Time resp.load_balancers[0].load_balancer_name #=> String resp.load_balancers[0].scheme #=> String, one of "internet-facing", "internal" resp.load_balancers[0].vpc_id #=> String resp.load_balancers[0].state.code #=> String, one of "active", "provisioning", "active_impaired", "failed" resp.load_balancers[0].state.reason #=> String resp.load_balancers[0].type #=> String, one of "application", "network", "gateway" resp.load_balancers[0].availability_zones #=> Array resp.load_balancers[0].availability_zones[0].zone_name #=> String resp.load_balancers[0].availability_zones[0].subnet_id #=> String resp.load_balancers[0].availability_zones[0].outpost_id #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses #=> Array resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].ip_address #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].allocation_id #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String resp.load_balancers[0].availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String resp.load_balancers[0].security_groups #=> Array resp.load_balancers[0].security_groups[0] #=> String resp.load_balancers[0].ip_address_type #=> String, one of "ipv4", "dualstack" resp.load_balancers[0].customer_owned_ipv_4_pool #=> String resp.next_marker #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* load_balancer_available * load_balancer_exists * load_balancers_deleted
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancers AWS API Documentation
@overload describe_load_balancers
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2151 def describe_load_balancers(params = {}, options = {}) req = build_request(:describe_load_balancers, params) req.send_request(options) end
Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.
@option params [String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@option params [Array<String>] :rule_arns
The Amazon Resource Names (ARN) of the rules.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeRulesOutput#rules #rules} => Array<Types::Rule> * {Types::DescribeRulesOutput#next_marker #next_marker} => String
@example Example: To describe a rule
# This example describes the specified rule. resp = client.describe_rules({ rule_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", ], }) resp.to_h outputs the following: { rules: [ { actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], conditions: [ { field: "path-pattern", values: [ "/img/*", ], }, ], is_default: false, priority: "10", rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", }, ], }
@example Request syntax with placeholder values
resp = client.describe_rules({ listener_arn: "ListenerArn", rule_arns: ["RuleArn"], marker: "Marker", page_size: 1, })
@example Response structure
resp.rules #=> Array resp.rules[0].rule_arn #=> String resp.rules[0].priority #=> String resp.rules[0].conditions #=> Array resp.rules[0].conditions[0].field #=> String resp.rules[0].conditions[0].values #=> Array resp.rules[0].conditions[0].values[0] #=> String resp.rules[0].conditions[0].host_header_config.values #=> Array resp.rules[0].conditions[0].host_header_config.values[0] #=> String resp.rules[0].conditions[0].path_pattern_config.values #=> Array resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String resp.rules[0].conditions[0].http_header_config.http_header_name #=> String resp.rules[0].conditions[0].http_header_config.values #=> Array resp.rules[0].conditions[0].http_header_config.values[0] #=> String resp.rules[0].conditions[0].query_string_config.values #=> Array resp.rules[0].conditions[0].query_string_config.values[0].key #=> String resp.rules[0].conditions[0].query_string_config.values[0].value #=> String resp.rules[0].conditions[0].http_request_method_config.values #=> Array resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String resp.rules[0].conditions[0].source_ip_config.values #=> Array resp.rules[0].conditions[0].source_ip_config.values[0] #=> String resp.rules[0].actions #=> Array resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.rules[0].actions[0].target_group_arn #=> String resp.rules[0].actions[0].authenticate_oidc_config.issuer #=> String resp.rules[0].actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.token_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_id #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_secret #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_oidc_config.scope #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.rules[0].actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_cognito_config.scope #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].order #=> Integer resp.rules[0].actions[0].redirect_config.protocol #=> String resp.rules[0].actions[0].redirect_config.port #=> String resp.rules[0].actions[0].redirect_config.host #=> String resp.rules[0].actions[0].redirect_config.path #=> String resp.rules[0].actions[0].redirect_config.query #=> String resp.rules[0].actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.rules[0].actions[0].fixed_response_config.message_body #=> String resp.rules[0].actions[0].fixed_response_config.status_code #=> String resp.rules[0].actions[0].fixed_response_config.content_type #=> String resp.rules[0].actions[0].forward_config.target_groups #=> Array resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.rules[0].is_default #=> Boolean resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeRules AWS API Documentation
@overload describe_rules
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2292 def describe_rules(params = {}, options = {}) req = build_request(:describe_rules, params) req.send_request(options) end
Describes the specified policies or all policies used for SSL negotiation.
For more information, see [Security policies] in the *Application Load Balancers Guide* or [Security policies] in the *Network Load Balancers Guide*.
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
@option params [Array<String>] :names
The names of the policies.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeSSLPoliciesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeSSLPoliciesOutput#ssl_policies #ssl_policies} => Array<Types::SslPolicy> * {Types::DescribeSSLPoliciesOutput#next_marker #next_marker} => String
@example Example: To describe a policy used for SSL negotiation
# This example describes the specified policy used for SSL negotiation. resp = client.describe_ssl_policies({ names: [ "ELBSecurityPolicy-2015-05", ], }) resp.to_h outputs the following: { ssl_policies: [ { ciphers: [ { name: "ECDHE-ECDSA-AES128-GCM-SHA256", priority: 1, }, { name: "ECDHE-RSA-AES128-GCM-SHA256", priority: 2, }, { name: "ECDHE-ECDSA-AES128-SHA256", priority: 3, }, { name: "ECDHE-RSA-AES128-SHA256", priority: 4, }, { name: "ECDHE-ECDSA-AES128-SHA", priority: 5, }, { name: "ECDHE-RSA-AES128-SHA", priority: 6, }, { name: "DHE-RSA-AES128-SHA", priority: 7, }, { name: "ECDHE-ECDSA-AES256-GCM-SHA384", priority: 8, }, { name: "ECDHE-RSA-AES256-GCM-SHA384", priority: 9, }, { name: "ECDHE-ECDSA-AES256-SHA384", priority: 10, }, { name: "ECDHE-RSA-AES256-SHA384", priority: 11, }, { name: "ECDHE-RSA-AES256-SHA", priority: 12, }, { name: "ECDHE-ECDSA-AES256-SHA", priority: 13, }, { name: "AES128-GCM-SHA256", priority: 14, }, { name: "AES128-SHA256", priority: 15, }, { name: "AES128-SHA", priority: 16, }, { name: "AES256-GCM-SHA384", priority: 17, }, { name: "AES256-SHA256", priority: 18, }, { name: "AES256-SHA", priority: 19, }, ], name: "ELBSecurityPolicy-2015-05", ssl_protocols: [ "TLSv1", "TLSv1.1", "TLSv1.2", ], }, ], }
@example Request syntax with placeholder values
resp = client.describe_ssl_policies({ names: ["SslPolicyName"], marker: "Marker", page_size: 1, })
@example Response structure
resp.ssl_policies #=> Array resp.ssl_policies[0].ssl_protocols #=> Array resp.ssl_policies[0].ssl_protocols[0] #=> String resp.ssl_policies[0].ciphers #=> Array resp.ssl_policies[0].ciphers[0].name #=> String resp.ssl_policies[0].ciphers[0].priority #=> Integer resp.ssl_policies[0].name #=> String resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeSSLPolicies AWS API Documentation
@overload describe_ssl_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2450 def describe_ssl_policies(params = {}, options = {}) req = build_request(:describe_ssl_policies, params) req.send_request(options) end
Describes the attributes for the specified target group.
For more information, see the following:
- Target group attributes][1
-
in the *Application Load Balancers
Guide*
- Target group attributes][2
-
in the *Network Load Balancers Guide*
- Target group attributes][3
-
in the *Gateway Load Balancers Guide*
[1]: docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes [2]: docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes [3]: docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html#target-group-attributes
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@return [Types::DescribeTargetGroupAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeTargetGroupAttributesOutput#attributes #attributes} => Array<Types::TargetGroupAttribute>
@example Example: To describe target group attributes
# This example describes the attributes of the specified target group. resp = client.describe_target_group_attributes({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", }) resp.to_h outputs the following: { attributes: [ { key: "stickiness.enabled", value: "false", }, { key: "deregistration_delay.timeout_seconds", value: "300", }, { key: "stickiness.type", value: "lb_cookie", }, { key: "stickiness.lb_cookie.duration_seconds", value: "86400", }, ], }
@example Request syntax with placeholder values
resp = client.describe_target_group_attributes({ target_group_arn: "TargetGroupArn", # required })
@example Response structure
resp.attributes #=> Array resp.attributes[0].key #=> String resp.attributes[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroupAttributes AWS API Documentation
@overload describe_target_group_attributes
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2592 def describe_target_group_attributes(params = {}, options = {}) req = build_request(:describe_target_group_attributes, params) req.send_request(options) end
Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.
@option params [String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [Array<String>] :target_group_arns
The Amazon Resource Names (ARN) of the target groups.
@option params [Array<String>] :names
The names of the target groups.
@option params [String] :marker
The marker for the next set of results. (You received this marker from a previous call.)
@option params [Integer] :page_size
The maximum number of results to return with this call.
@return [Types::DescribeTargetGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeTargetGroupsOutput#target_groups #target_groups} => Array<Types::TargetGroup> * {Types::DescribeTargetGroupsOutput#next_marker #next_marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To describe a target group
# This example describes the specified target group. resp = client.describe_target_groups({ target_group_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", ], }) resp.to_h outputs the following: { target_groups: [ { health_check_interval_seconds: 30, health_check_path: "/", health_check_port: "traffic-port", health_check_protocol: "HTTP", health_check_timeout_seconds: 5, healthy_threshold_count: 5, load_balancer_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", ], matcher: { http_code: "200", }, port: 80, protocol: "HTTP", target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", target_group_name: "my-targets", unhealthy_threshold_count: 2, vpc_id: "vpc-3ac0fb5f", }, ], }
@example Request syntax with placeholder values
resp = client.describe_target_groups({ load_balancer_arn: "LoadBalancerArn", target_group_arns: ["TargetGroupArn"], names: ["TargetGroupName"], marker: "Marker", page_size: 1, })
@example Response structure
resp.target_groups #=> Array resp.target_groups[0].target_group_arn #=> String resp.target_groups[0].target_group_name #=> String resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].port #=> Integer resp.target_groups[0].vpc_id #=> String resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].health_check_port #=> String resp.target_groups[0].health_check_enabled #=> Boolean resp.target_groups[0].health_check_interval_seconds #=> Integer resp.target_groups[0].health_check_timeout_seconds #=> Integer resp.target_groups[0].healthy_threshold_count #=> Integer resp.target_groups[0].unhealthy_threshold_count #=> Integer resp.target_groups[0].health_check_path #=> String resp.target_groups[0].matcher.http_code #=> String resp.target_groups[0].matcher.grpc_code #=> String resp.target_groups[0].load_balancer_arns #=> Array resp.target_groups[0].load_balancer_arns[0] #=> String resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda" resp.target_groups[0].protocol_version #=> String resp.next_marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroups AWS API Documentation
@overload describe_target_groups
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2701 def describe_target_groups(params = {}, options = {}) req = build_request(:describe_target_groups, params) req.send_request(options) end
Describes the health of the specified targets or all of your targets.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@option params [Array<Types::TargetDescription>] :targets
The targets.
@return [Types::DescribeTargetHealthOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DescribeTargetHealthOutput#target_health_descriptions #target_health_descriptions} => Array<Types::TargetHealthDescription>
@example Example: To describe the health of the targets for a target group
# This example describes the health of the targets for the specified target group. One target is healthy but the other is # not specified in an action, so it can't receive traffic from the load balancer. resp = client.describe_target_health({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", }) resp.to_h outputs the following: { target_health_descriptions: [ { target: { id: "i-0f76fade", port: 80, }, target_health: { description: "Given target group is not configured to receive traffic from ELB", reason: "Target.NotInUse", state: "unused", }, }, { health_check_port: "80", target: { id: "i-0f76fade", port: 80, }, target_health: { state: "healthy", }, }, ], }
@example Example: To describe the health of a target
# This example describes the health of the specified target. This target is healthy. resp = client.describe_target_health({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", targets: [ { id: "i-0f76fade", port: 80, }, ], }) resp.to_h outputs the following: { target_health_descriptions: [ { health_check_port: "80", target: { id: "i-0f76fade", port: 80, }, target_health: { state: "healthy", }, }, ], }
@example Request syntax with placeholder values
resp = client.describe_target_health({ target_group_arn: "TargetGroupArn", # required targets: [ { id: "TargetId", # required port: 1, availability_zone: "ZoneName", }, ], })
@example Response structure
resp.target_health_descriptions #=> Array resp.target_health_descriptions[0].target.id #=> String resp.target_health_descriptions[0].target.port #=> Integer resp.target_health_descriptions[0].target.availability_zone #=> String resp.target_health_descriptions[0].health_check_port #=> String resp.target_health_descriptions[0].target_health.state #=> String, one of "initial", "healthy", "unhealthy", "unused", "draining", "unavailable" 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" resp.target_health_descriptions[0].target_health.description #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* target_deregistered * target_in_service
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetHealth AWS API Documentation
@overload describe_target_health
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 2819 def describe_target_health(params = {}, options = {}) req = build_request(:describe_target_health, params) req.send_request(options) end
Replaces the specified properties of the specified listener. Any properties that you do not specify remain unchanged.
Changing the protocol from HTTPS to HTTP, or from TLS to TCP, removes the security policy and default certificate properties. If you change the protocol from HTTP to HTTPS, or from TCP to TLS, you must add the security policy and default certificate properties.
To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.
@option params [required, String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@option params [Integer] :port
The port for connections from clients to the load balancer. You cannot specify a port for a Gateway Load Balancer.
@option params [String] :protocol
The protocol for connections from clients to the load balancer. Application Load Balancers support the HTTP and HTTPS protocols. Network Load Balancers support the TCP, TLS, UDP, and TCP\_UDP protocols. You can’t change the protocol to UDP or TCP\_UDP if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer.
@option params [String] :ssl_policy
\[HTTPS and TLS listeners\] The security policy that defines which protocols and ciphers are supported. For more information, see [Security policies][1] in the *Application Load Balancers Guide* or [Security policies][2] in the *Network Load Balancers Guide*. [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies [2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
@option params [Array<Types::Certificate>] :certificates
\[HTTPS and TLS listeners\] The default certificate for the listener. You must provide exactly one certificate. Set `CertificateArn` to the certificate ARN but do not set `IsDefault`.
@option params [Array<Types::Action>] :default_actions
The actions for the default rule.
@option params [Array<String>] :alpn_policy
\[TLS listeners\] The name of the Application-Layer Protocol Negotiation (ALPN) policy. You can specify one policy name. The following are the possible values: * `HTTP1Only` * `HTTP2Only` * `HTTP2Optional` * `HTTP2Preferred` * `None` For more information, see [ALPN policies][1] in the *Network Load Balancers Guide*. [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
@return [Types::ModifyListenerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ModifyListenerOutput#listeners #listeners} => Array<Types::Listener>
@example Example: To change the default action for a listener
# This example changes the default action for the specified listener. resp = client.modify_listener({ default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", }) resp.to_h outputs the following: { listeners: [ { default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/2453ed029918f21f", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 80, protocol: "HTTP", }, ], }
@example Example: To change the server certificate
# This example changes the server certificate for the specified HTTPS listener. resp = client.modify_listener({ certificates: [ { certificate_arn: "arn:aws:iam::123456789012:server-certificate/my-new-server-cert", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65", }) resp.to_h outputs the following: { listeners: [ { certificates: [ { certificate_arn: "arn:aws:iam::123456789012:server-certificate/my-new-server-cert", }, ], default_actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], listener_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65", load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", port: 443, protocol: "HTTPS", ssl_policy: "ELBSecurityPolicy-2015-05", }, ], }
@example Request syntax with placeholder values
resp = client.modify_listener({ listener_arn: "ListenerArn", # required port: 1, protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE ssl_policy: "SslPolicyName", certificates: [ { certificate_arn: "CertificateArn", is_default: false, }, ], default_actions: [ { type: "forward", # required, accepts forward, authenticate-oidc, authenticate-cognito, redirect, fixed-response target_group_arn: "TargetGroupArn", authenticate_oidc_config: { issuer: "AuthenticateOidcActionIssuer", # required authorization_endpoint: "AuthenticateOidcActionAuthorizationEndpoint", # required token_endpoint: "AuthenticateOidcActionTokenEndpoint", # required user_info_endpoint: "AuthenticateOidcActionUserInfoEndpoint", # required client_id: "AuthenticateOidcActionClientId", # required client_secret: "AuthenticateOidcActionClientSecret", session_cookie_name: "AuthenticateOidcActionSessionCookieName", scope: "AuthenticateOidcActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateOidcActionAuthenticationRequestParamName" => "AuthenticateOidcActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate use_existing_client_secret: false, }, authenticate_cognito_config: { user_pool_arn: "AuthenticateCognitoActionUserPoolArn", # required user_pool_client_id: "AuthenticateCognitoActionUserPoolClientId", # required user_pool_domain: "AuthenticateCognitoActionUserPoolDomain", # required session_cookie_name: "AuthenticateCognitoActionSessionCookieName", scope: "AuthenticateCognitoActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateCognitoActionAuthenticationRequestParamName" => "AuthenticateCognitoActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate }, order: 1, redirect_config: { protocol: "RedirectActionProtocol", port: "RedirectActionPort", host: "RedirectActionHost", path: "RedirectActionPath", query: "RedirectActionQuery", status_code: "HTTP_301", # required, accepts HTTP_301, HTTP_302 }, fixed_response_config: { message_body: "FixedResponseActionMessage", status_code: "FixedResponseActionStatusCode", # required content_type: "FixedResponseActionContentType", }, forward_config: { target_groups: [ { target_group_arn: "TargetGroupArn", weight: 1, }, ], target_group_stickiness_config: { enabled: false, duration_seconds: 1, }, }, }, ], alpn_policy: ["AlpnPolicyValue"], })
@example Response structure
resp.listeners #=> Array resp.listeners[0].listener_arn #=> String resp.listeners[0].load_balancer_arn #=> String resp.listeners[0].port #=> Integer resp.listeners[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.listeners[0].certificates #=> Array resp.listeners[0].certificates[0].certificate_arn #=> String resp.listeners[0].certificates[0].is_default #=> Boolean resp.listeners[0].ssl_policy #=> String resp.listeners[0].default_actions #=> Array resp.listeners[0].default_actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.listeners[0].default_actions[0].target_group_arn #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.issuer #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.token_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_id #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.client_secret #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.scope #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.listeners[0].default_actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.listeners[0].default_actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.listeners[0].default_actions[0].order #=> Integer resp.listeners[0].default_actions[0].redirect_config.protocol #=> String resp.listeners[0].default_actions[0].redirect_config.port #=> String resp.listeners[0].default_actions[0].redirect_config.host #=> String resp.listeners[0].default_actions[0].redirect_config.path #=> String resp.listeners[0].default_actions[0].redirect_config.query #=> String resp.listeners[0].default_actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.listeners[0].default_actions[0].fixed_response_config.message_body #=> String resp.listeners[0].default_actions[0].fixed_response_config.status_code #=> String resp.listeners[0].default_actions[0].fixed_response_config.content_type #=> String resp.listeners[0].default_actions[0].forward_config.target_groups #=> Array resp.listeners[0].default_actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.listeners[0].default_actions[0].forward_config.target_groups[0].weight #=> Integer resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.listeners[0].default_actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.listeners[0].alpn_policy #=> Array resp.listeners[0].alpn_policy[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListener AWS API Documentation
@overload modify_listener
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3103 def modify_listener(params = {}, options = {}) req = build_request(:modify_listener, params) req.send_request(options) end
Modifies the specified attributes of the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.
If any of the specified attributes can't be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [required, Array<Types::LoadBalancerAttribute>] :attributes
The load balancer attributes.
@return [Types::ModifyLoadBalancerAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ModifyLoadBalancerAttributesOutput#attributes #attributes} => Array<Types::LoadBalancerAttribute>
@example Example: To enable deletion protection
# This example enables deletion protection for the specified load balancer. resp = client.modify_load_balancer_attributes({ attributes: [ { key: "deletion_protection.enabled", value: "true", }, ], load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", }) resp.to_h outputs the following: { attributes: [ { key: "deletion_protection.enabled", value: "true", }, { key: "access_logs.s3.enabled", value: "false", }, { key: "idle_timeout.timeout_seconds", value: "60", }, { key: "access_logs.s3.prefix", value: "", }, { key: "access_logs.s3.bucket", value: "", }, ], }
@example Example: To change the idle timeout
# This example changes the idle timeout value for the specified load balancer. resp = client.modify_load_balancer_attributes({ attributes: [ { key: "idle_timeout.timeout_seconds", value: "30", }, ], load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", }) resp.to_h outputs the following: { attributes: [ { key: "idle_timeout.timeout_seconds", value: "30", }, { key: "access_logs.s3.enabled", value: "false", }, { key: "access_logs.s3.prefix", value: "", }, { key: "deletion_protection.enabled", value: "true", }, { key: "access_logs.s3.bucket", value: "", }, ], }
@example Example: To enable access logs
# This example enables access logs for the specified load balancer. Note that the S3 bucket must exist in the same region # as the load balancer and must have a policy attached that grants access to the Elastic Load Balancing service. resp = client.modify_load_balancer_attributes({ attributes: [ { key: "access_logs.s3.enabled", value: "true", }, { key: "access_logs.s3.bucket", value: "my-loadbalancer-logs", }, { key: "access_logs.s3.prefix", value: "myapp", }, ], load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", }) resp.to_h outputs the following: { attributes: [ { key: "access_logs.s3.enabled", value: "true", }, { key: "access_logs.s3.bucket", value: "my-load-balancer-logs", }, { key: "access_logs.s3.prefix", value: "myapp", }, { key: "idle_timeout.timeout_seconds", value: "60", }, { key: "deletion_protection.enabled", value: "false", }, ], }
@example Request syntax with placeholder values
resp = client.modify_load_balancer_attributes({ load_balancer_arn: "LoadBalancerArn", # required attributes: [ # required { key: "LoadBalancerAttributeKey", value: "LoadBalancerAttributeValue", }, ], })
@example Response structure
resp.attributes #=> Array resp.attributes[0].key #=> String resp.attributes[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributes AWS API Documentation
@overload modify_load_balancer_attributes
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3277 def modify_load_balancer_attributes(params = {}, options = {}) req = build_request(:modify_load_balancer_attributes, params) req.send_request(options) end
Replaces the specified properties of the specified rule. Any properties that you do not specify are unchanged.
To add an item to a list, remove an item from a list, or update an item in a list, you must provide the entire list. For example, to add an action, specify a list with the current actions plus the new action.
@option params [required, String] :rule_arn
The Amazon Resource Name (ARN) of the rule.
@option params [Array<Types::RuleCondition>] :conditions
The conditions.
@option params [Array<Types::Action>] :actions
The actions.
@return [Types::ModifyRuleOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ModifyRuleOutput#rules #rules} => Array<Types::Rule>
@example Example: To modify a rule
# This example modifies the condition for the specified rule. resp = client.modify_rule({ conditions: [ { field: "path-pattern", values: [ "/images/*", ], }, ], rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", }) resp.to_h outputs the following: { rules: [ { actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], conditions: [ { field: "path-pattern", values: [ "/images/*", ], }, ], is_default: false, priority: "10", rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee", }, ], }
@example Request syntax with placeholder values
resp = client.modify_rule({ rule_arn: "RuleArn", # required conditions: [ { field: "ConditionFieldName", values: ["StringValue"], host_header_config: { values: ["StringValue"], }, path_pattern_config: { values: ["StringValue"], }, http_header_config: { http_header_name: "HttpHeaderConditionName", values: ["StringValue"], }, query_string_config: { values: [ { key: "StringValue", value: "StringValue", }, ], }, http_request_method_config: { values: ["StringValue"], }, source_ip_config: { values: ["StringValue"], }, }, ], actions: [ { type: "forward", # required, accepts forward, authenticate-oidc, authenticate-cognito, redirect, fixed-response target_group_arn: "TargetGroupArn", authenticate_oidc_config: { issuer: "AuthenticateOidcActionIssuer", # required authorization_endpoint: "AuthenticateOidcActionAuthorizationEndpoint", # required token_endpoint: "AuthenticateOidcActionTokenEndpoint", # required user_info_endpoint: "AuthenticateOidcActionUserInfoEndpoint", # required client_id: "AuthenticateOidcActionClientId", # required client_secret: "AuthenticateOidcActionClientSecret", session_cookie_name: "AuthenticateOidcActionSessionCookieName", scope: "AuthenticateOidcActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateOidcActionAuthenticationRequestParamName" => "AuthenticateOidcActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate use_existing_client_secret: false, }, authenticate_cognito_config: { user_pool_arn: "AuthenticateCognitoActionUserPoolArn", # required user_pool_client_id: "AuthenticateCognitoActionUserPoolClientId", # required user_pool_domain: "AuthenticateCognitoActionUserPoolDomain", # required session_cookie_name: "AuthenticateCognitoActionSessionCookieName", scope: "AuthenticateCognitoActionScope", session_timeout: 1, authentication_request_extra_params: { "AuthenticateCognitoActionAuthenticationRequestParamName" => "AuthenticateCognitoActionAuthenticationRequestParamValue", }, on_unauthenticated_request: "deny", # accepts deny, allow, authenticate }, order: 1, redirect_config: { protocol: "RedirectActionProtocol", port: "RedirectActionPort", host: "RedirectActionHost", path: "RedirectActionPath", query: "RedirectActionQuery", status_code: "HTTP_301", # required, accepts HTTP_301, HTTP_302 }, fixed_response_config: { message_body: "FixedResponseActionMessage", status_code: "FixedResponseActionStatusCode", # required content_type: "FixedResponseActionContentType", }, forward_config: { target_groups: [ { target_group_arn: "TargetGroupArn", weight: 1, }, ], target_group_stickiness_config: { enabled: false, duration_seconds: 1, }, }, }, ], })
@example Response structure
resp.rules #=> Array resp.rules[0].rule_arn #=> String resp.rules[0].priority #=> String resp.rules[0].conditions #=> Array resp.rules[0].conditions[0].field #=> String resp.rules[0].conditions[0].values #=> Array resp.rules[0].conditions[0].values[0] #=> String resp.rules[0].conditions[0].host_header_config.values #=> Array resp.rules[0].conditions[0].host_header_config.values[0] #=> String resp.rules[0].conditions[0].path_pattern_config.values #=> Array resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String resp.rules[0].conditions[0].http_header_config.http_header_name #=> String resp.rules[0].conditions[0].http_header_config.values #=> Array resp.rules[0].conditions[0].http_header_config.values[0] #=> String resp.rules[0].conditions[0].query_string_config.values #=> Array resp.rules[0].conditions[0].query_string_config.values[0].key #=> String resp.rules[0].conditions[0].query_string_config.values[0].value #=> String resp.rules[0].conditions[0].http_request_method_config.values #=> Array resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String resp.rules[0].conditions[0].source_ip_config.values #=> Array resp.rules[0].conditions[0].source_ip_config.values[0] #=> String resp.rules[0].actions #=> Array resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.rules[0].actions[0].target_group_arn #=> String resp.rules[0].actions[0].authenticate_oidc_config.issuer #=> String resp.rules[0].actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.token_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_id #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_secret #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_oidc_config.scope #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.rules[0].actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_cognito_config.scope #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].order #=> Integer resp.rules[0].actions[0].redirect_config.protocol #=> String resp.rules[0].actions[0].redirect_config.port #=> String resp.rules[0].actions[0].redirect_config.host #=> String resp.rules[0].actions[0].redirect_config.path #=> String resp.rules[0].actions[0].redirect_config.query #=> String resp.rules[0].actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.rules[0].actions[0].fixed_response_config.message_body #=> String resp.rules[0].actions[0].fixed_response_config.status_code #=> String resp.rules[0].actions[0].fixed_response_config.content_type #=> String resp.rules[0].actions[0].forward_config.target_groups #=> Array resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.rules[0].is_default #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRule AWS API Documentation
@overload modify_rule
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3510 def modify_rule(params = {}, options = {}) req = build_request(:modify_rule, params) req.send_request(options) end
Modifies the health checks used when evaluating the health state of the targets in the specified target group.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@option params [String] :health_check_protocol
The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. It is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The GENEVE, TLS, UDP, and TCP\_UDP protocols are not supported for health checks. With Network Load Balancers, you can't modify this setting.
@option params [String] :health_check_port
The port the load balancer uses when performing health checks on targets.
@option params [String] :health_check_path
\[HTTP/HTTPS health checks\] The destination for health checks on the targets. \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /. \[GRPC protocol version\] The path of a custom health check method with the format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.
@option params [Boolean] :health_check_enabled
Indicates whether health checks are enabled.
@option params [Integer] :health_check_interval_seconds
The approximate amount of time, in seconds, between health checks of an individual target. For TCP health checks, the supported values are 10 or 30 seconds. With Network Load Balancers, you can't modify this setting.
@option params [Integer] :health_check_timeout_seconds
\[HTTP/HTTPS health checks\] The amount of time, in seconds, during which no response means a failed health check. With Network Load Balancers, you can't modify this setting.
@option params [Integer] :healthy_threshold_count
The number of consecutive health checks successes required before considering an unhealthy target healthy.
@option params [Integer] :unhealthy_threshold_count
The number of consecutive health check failures required before considering the target unhealthy. For target groups with a protocol of TCP or TLS, this value must be the same as the healthy threshold count.
@option params [Types::Matcher] :matcher
\[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when checking for a successful response from a target. With Network Load Balancers, you can't modify this setting.
@return [Types::ModifyTargetGroupOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ModifyTargetGroupOutput#target_groups #target_groups} => Array<Types::TargetGroup>
@example Example: To modify the health check configuration for a target group
# This example changes the configuration of the health checks used to evaluate the health of the targets for the specified # target group. resp = client.modify_target_group({ health_check_port: "443", health_check_protocol: "HTTPS", target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f", }) resp.to_h outputs the following: { target_groups: [ { health_check_interval_seconds: 30, health_check_port: "443", health_check_protocol: "HTTPS", health_check_timeout_seconds: 5, healthy_threshold_count: 5, load_balancer_arns: [ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", ], matcher: { http_code: "200", }, port: 443, protocol: "HTTPS", target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-https-targets/2453ed029918f21f", target_group_name: "my-https-targets", unhealthy_threshold_count: 2, vpc_id: "vpc-3ac0fb5f", }, ], }
@example Request syntax with placeholder values
resp = client.modify_target_group({ target_group_arn: "TargetGroupArn", # required health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE health_check_port: "HealthCheckPort", health_check_path: "Path", health_check_enabled: false, health_check_interval_seconds: 1, health_check_timeout_seconds: 1, healthy_threshold_count: 1, unhealthy_threshold_count: 1, matcher: { http_code: "HttpCode", grpc_code: "GrpcCode", }, })
@example Response structure
resp.target_groups #=> Array resp.target_groups[0].target_group_arn #=> String resp.target_groups[0].target_group_name #=> String resp.target_groups[0].protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].port #=> Integer resp.target_groups[0].vpc_id #=> String resp.target_groups[0].health_check_protocol #=> String, one of "HTTP", "HTTPS", "TCP", "TLS", "UDP", "TCP_UDP", "GENEVE" resp.target_groups[0].health_check_port #=> String resp.target_groups[0].health_check_enabled #=> Boolean resp.target_groups[0].health_check_interval_seconds #=> Integer resp.target_groups[0].health_check_timeout_seconds #=> Integer resp.target_groups[0].healthy_threshold_count #=> Integer resp.target_groups[0].unhealthy_threshold_count #=> Integer resp.target_groups[0].health_check_path #=> String resp.target_groups[0].matcher.http_code #=> String resp.target_groups[0].matcher.grpc_code #=> String resp.target_groups[0].load_balancer_arns #=> Array resp.target_groups[0].load_balancer_arns[0] #=> String resp.target_groups[0].target_type #=> String, one of "instance", "ip", "lambda" resp.target_groups[0].protocol_version #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroup AWS API Documentation
@overload modify_target_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3665 def modify_target_group(params = {}, options = {}) req = build_request(:modify_target_group, params) req.send_request(options) end
Modifies the specified attributes of the specified target group.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@option params [required, Array<Types::TargetGroupAttribute>] :attributes
The attributes.
@return [Types::ModifyTargetGroupAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ModifyTargetGroupAttributesOutput#attributes #attributes} => Array<Types::TargetGroupAttribute>
@example Example: To modify the deregistration delay timeout
# This example sets the deregistration delay timeout to the specified value for the specified target group. resp = client.modify_target_group_attributes({ attributes: [ { key: "deregistration_delay.timeout_seconds", value: "600", }, ], target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", }) resp.to_h outputs the following: { attributes: [ { key: "stickiness.enabled", value: "false", }, { key: "deregistration_delay.timeout_seconds", value: "600", }, { key: "stickiness.type", value: "lb_cookie", }, { key: "stickiness.lb_cookie.duration_seconds", value: "86400", }, ], }
@example Request syntax with placeholder values
resp = client.modify_target_group_attributes({ target_group_arn: "TargetGroupArn", # required attributes: [ # required { key: "TargetGroupAttributeKey", value: "TargetGroupAttributeValue", }, ], })
@example Response structure
resp.attributes #=> Array resp.attributes[0].key #=> String resp.attributes[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributes AWS API Documentation
@overload modify_target_group_attributes
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3741 def modify_target_group_attributes(params = {}, options = {}) req = build_request(:modify_target_group_attributes, params) req.send_request(options) end
Registers the specified targets with the specified target group.
If the target is an EC2 instance, it must be in the `running` state when you register it.
By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports.
With a Network Load Balancer, you cannot register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.
@option params [required, String] :target_group_arn
The Amazon Resource Name (ARN) of the target group.
@option params [required, Array<Types::TargetDescription>] :targets
The targets.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To register targets with a target group
# This example registers the specified instances with the specified target group. resp = client.register_targets({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", targets: [ { id: "i-80c8dd94", }, { id: "i-ceddcd4d", }, ], })
@example Example: To register targets with a target group using port overrides
# This example registers the specified instance with the specified target group using multiple ports. This enables you to # register ECS containers on the same instance as targets in the target group. resp = client.register_targets({ target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/3bb63f11dfb0faf9", targets: [ { id: "i-80c8dd94", port: 80, }, { id: "i-80c8dd94", port: 766, }, ], })
@example Request syntax with placeholder values
resp = client.register_targets({ target_group_arn: "TargetGroupArn", # required targets: [ # required { id: "TargetId", # required port: 1, availability_zone: "ZoneName", }, ], })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargets AWS API Documentation
@overload register_targets
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3823 def register_targets(params = {}, options = {}) req = build_request(:register_targets, params) req.send_request(options) end
Removes the specified certificate from the certificate list for the specified HTTPS or TLS listener.
@option params [required, String] :listener_arn
The Amazon Resource Name (ARN) of the listener.
@option params [required, Array<Types::Certificate>] :certificates
The certificate to remove. You can specify one certificate per call. Set `CertificateArn` to the certificate ARN but do not set `IsDefault`.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.remove_listener_certificates({ listener_arn: "ListenerArn", # required certificates: [ # required { certificate_arn: "CertificateArn", is_default: false, }, ], })
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificates AWS API Documentation
@overload remove_listener_certificates
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3857 def remove_listener_certificates(params = {}, options = {}) req = build_request(:remove_listener_certificates, params) req.send_request(options) end
Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [required, String] :ip_address_type
The IP address type. The possible values are `ipv4` (for IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal load balancers must use `ipv4`. You can’t specify `dualstack` for a load balancer with a UDP or TCP\_UDP listener.
@return [Types::SetIpAddressTypeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SetIpAddressTypeOutput#ip_address_type #ip_address_type} => String
@example Request syntax with placeholder values
resp = client.set_ip_address_type({ load_balancer_arn: "LoadBalancerArn", # required ip_address_type: "ipv4", # required, accepts ipv4, dualstack })
@example Response structure
resp.ip_address_type #=> String, one of "ipv4", "dualstack"
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressType AWS API Documentation
@overload set_ip_address_type
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 3937 def set_ip_address_type(params = {}, options = {}) req = build_request(:set_ip_address_type, params) req.send_request(options) end
Sets the priorities of the specified rules.
You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.
@option params [required, Array<Types::RulePriorityPair>] :rule_priorities
The rule priorities.
@return [Types::SetRulePrioritiesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SetRulePrioritiesOutput#rules #rules} => Array<Types::Rule>
@example Example: To set the rule priority
# This example sets the priority of the specified rule. resp = client.set_rule_priorities({ rule_priorities: [ { priority: 5, rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3", }, ], }) resp.to_h outputs the following: { rules: [ { actions: [ { target_group_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", type: "forward", }, ], conditions: [ { field: "path-pattern", values: [ "/img/*", ], }, ], is_default: false, priority: "5", rule_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:listener-rule/app/my-load-balancer/50dc6c495c0c9188/f2f7dc8efc522ab2/1291d13826f405c3", }, ], }
@example Request syntax with placeholder values
resp = client.set_rule_priorities({ rule_priorities: [ # required { rule_arn: "RuleArn", priority: 1, }, ], })
@example Response structure
resp.rules #=> Array resp.rules[0].rule_arn #=> String resp.rules[0].priority #=> String resp.rules[0].conditions #=> Array resp.rules[0].conditions[0].field #=> String resp.rules[0].conditions[0].values #=> Array resp.rules[0].conditions[0].values[0] #=> String resp.rules[0].conditions[0].host_header_config.values #=> Array resp.rules[0].conditions[0].host_header_config.values[0] #=> String resp.rules[0].conditions[0].path_pattern_config.values #=> Array resp.rules[0].conditions[0].path_pattern_config.values[0] #=> String resp.rules[0].conditions[0].http_header_config.http_header_name #=> String resp.rules[0].conditions[0].http_header_config.values #=> Array resp.rules[0].conditions[0].http_header_config.values[0] #=> String resp.rules[0].conditions[0].query_string_config.values #=> Array resp.rules[0].conditions[0].query_string_config.values[0].key #=> String resp.rules[0].conditions[0].query_string_config.values[0].value #=> String resp.rules[0].conditions[0].http_request_method_config.values #=> Array resp.rules[0].conditions[0].http_request_method_config.values[0] #=> String resp.rules[0].conditions[0].source_ip_config.values #=> Array resp.rules[0].conditions[0].source_ip_config.values[0] #=> String resp.rules[0].actions #=> Array resp.rules[0].actions[0].type #=> String, one of "forward", "authenticate-oidc", "authenticate-cognito", "redirect", "fixed-response" resp.rules[0].actions[0].target_group_arn #=> String resp.rules[0].actions[0].authenticate_oidc_config.issuer #=> String resp.rules[0].actions[0].authenticate_oidc_config.authorization_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.token_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.user_info_endpoint #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_id #=> String resp.rules[0].actions[0].authenticate_oidc_config.client_secret #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_oidc_config.scope #=> String resp.rules[0].actions[0].authenticate_oidc_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_oidc_config.authentication_request_extra_params["AuthenticateOidcActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_oidc_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].authenticate_oidc_config.use_existing_client_secret #=> Boolean resp.rules[0].actions[0].authenticate_cognito_config.user_pool_arn #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_client_id #=> String resp.rules[0].actions[0].authenticate_cognito_config.user_pool_domain #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_cookie_name #=> String resp.rules[0].actions[0].authenticate_cognito_config.scope #=> String resp.rules[0].actions[0].authenticate_cognito_config.session_timeout #=> Integer resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params #=> Hash resp.rules[0].actions[0].authenticate_cognito_config.authentication_request_extra_params["AuthenticateCognitoActionAuthenticationRequestParamName"] #=> String resp.rules[0].actions[0].authenticate_cognito_config.on_unauthenticated_request #=> String, one of "deny", "allow", "authenticate" resp.rules[0].actions[0].order #=> Integer resp.rules[0].actions[0].redirect_config.protocol #=> String resp.rules[0].actions[0].redirect_config.port #=> String resp.rules[0].actions[0].redirect_config.host #=> String resp.rules[0].actions[0].redirect_config.path #=> String resp.rules[0].actions[0].redirect_config.query #=> String resp.rules[0].actions[0].redirect_config.status_code #=> String, one of "HTTP_301", "HTTP_302" resp.rules[0].actions[0].fixed_response_config.message_body #=> String resp.rules[0].actions[0].fixed_response_config.status_code #=> String resp.rules[0].actions[0].fixed_response_config.content_type #=> String resp.rules[0].actions[0].forward_config.target_groups #=> Array resp.rules[0].actions[0].forward_config.target_groups[0].target_group_arn #=> String resp.rules[0].actions[0].forward_config.target_groups[0].weight #=> Integer resp.rules[0].actions[0].forward_config.target_group_stickiness_config.enabled #=> Boolean resp.rules[0].actions[0].forward_config.target_group_stickiness_config.duration_seconds #=> Integer resp.rules[0].is_default #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePriorities AWS API Documentation
@overload set_rule_priorities
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4074 def set_rule_priorities(params = {}, options = {}) req = build_request(:set_rule_priorities, params) req.send_request(options) end
Associates the specified security groups with the specified Application Load Balancer. The specified security groups override the previously associated security groups.
You can't specify a security group for a Network Load Balancer or Gateway Load Balancer.
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [required, Array<String>] :security_groups
The IDs of the security groups.
@return [Types::SetSecurityGroupsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SetSecurityGroupsOutput#security_group_ids #security_group_ids} => Array<String>
@example Example: To associate a security group with a load balancer
# This example associates the specified security group with the specified load balancer. resp = client.set_security_groups({ load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", security_groups: [ "sg-5943793c", ], }) resp.to_h outputs the following: { security_group_ids: [ "sg-5943793c", ], }
@example Request syntax with placeholder values
resp = client.set_security_groups({ load_balancer_arn: "LoadBalancerArn", # required security_groups: ["SecurityGroupId"], # required })
@example Response structure
resp.security_group_ids #=> Array resp.security_group_ids[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroups AWS API Documentation
@overload set_security_groups
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4131 def set_security_groups(params = {}, options = {}) req = build_request(:set_security_groups, params) req.send_request(options) end
Enables the Availability Zones for the specified public subnets for the specified Application Load Balancer or Network Load Balancer. The specified subnets replace the previously enabled subnets.
When you specify subnets for a Network Load Balancer, you must include all subnets that were enabled previously, with their existing configurations, plus any additional subnets.
@option params [required, String] :load_balancer_arn
The Amazon Resource Name (ARN) of the load balancer.
@option params [Array<String>] :subnets
The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. \[Application Load Balancers\] You must specify subnets from at least two Availability Zones. \[Application Load Balancers on Outposts\] You must specify one Outpost subnet. \[Application Load Balancers on Local Zones\] You can specify subnets from one or more Local Zones. \[Network Load Balancers\] You can specify subnets from one or more Availability Zones.
@option params [Array<Types::SubnetMapping>] :subnet_mappings
The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings. \[Application Load Balancers\] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. \[Application Load Balancers on Outposts\] You must specify one Outpost subnet. \[Application Load Balancers on Local Zones\] You can specify subnets from one or more Local Zones. \[Network Load Balancers\] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.
@option params [String] :ip_address_type
\[Network Load Balancers\] The type of IP addresses used by the subnets for your load balancer. The possible values are `ipv4` (for IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). You can’t specify `dualstack` for a load balancer with a UDP or TCP\_UDP listener. Internal load balancers must use `ipv4`.
@return [Types::SetSubnetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SetSubnetsOutput#availability_zones #availability_zones} => Array<Types::AvailabilityZone> * {Types::SetSubnetsOutput#ip_address_type #ip_address_type} => String
@example Example: To enable Availability Zones for a load balancer
# This example enables the Availability Zones for the specified subnets for the specified load balancer. resp = client.set_subnets({ load_balancer_arn: "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188", subnets: [ "subnet-8360a9e7", "subnet-b7d581c0", ], }) resp.to_h outputs the following: { availability_zones: [ { subnet_id: "subnet-8360a9e7", zone_name: "us-west-2a", }, { subnet_id: "subnet-b7d581c0", zone_name: "us-west-2b", }, ], }
@example Request syntax with placeholder values
resp = client.set_subnets({ load_balancer_arn: "LoadBalancerArn", # required subnets: ["SubnetId"], subnet_mappings: [ { subnet_id: "SubnetId", allocation_id: "AllocationId", private_i_pv_4_address: "PrivateIPv4Address", i_pv_6_address: "IPv6Address", }, ], ip_address_type: "ipv4", # accepts ipv4, dualstack })
@example Response structure
resp.availability_zones #=> Array resp.availability_zones[0].zone_name #=> String resp.availability_zones[0].subnet_id #=> String resp.availability_zones[0].outpost_id #=> String resp.availability_zones[0].load_balancer_addresses #=> Array resp.availability_zones[0].load_balancer_addresses[0].ip_address #=> String resp.availability_zones[0].load_balancer_addresses[0].allocation_id #=> String resp.availability_zones[0].load_balancer_addresses[0].private_i_pv_4_address #=> String resp.availability_zones[0].load_balancer_addresses[0].i_pv_6_address #=> String resp.ip_address_type #=> String, one of "ipv4", "dualstack"
@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnets AWS API Documentation
@overload set_subnets
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4257 def set_subnets(params = {}, options = {}) req = build_request(:set_subnets, params) req.send_request(options) end
Polls an API operation until a resource enters a desired state.
## Basic Usage
A waiter will call an API operation until:
-
It is successful
-
It enters a terminal state
-
It makes the maximum number of attempts
In between attempts, the waiter will sleep.
# polls in a loop, sleeping between attempts client.wait_until(waiter_name, params)
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You can pass configuration as the final arguments hash.
# poll for ~25 seconds client.wait_until(waiter_name, params, { max_attempts: 5, delay: 5, })
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw `:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now client.wait_until(waiter_name, params, { # disable max attempts max_attempts: nil, # poll for 1 hour, instead of a number of attempts before_wait: -> (attempts, response) do throw :failure if Time.now - started_at > 3600 end })
## Handling Errors
When a waiter is unsuccessful, it will raise an error. All of the failure errors extend from {Aws::Waiters::Errors::WaiterFailed}.
begin client.wait_until(...) rescue Aws::Waiters::Errors::WaiterFailed # resource did not enter the desired state in time end
## Valid Waiters
The following table lists the valid waiter names, the operations they call, and the default `:delay` and `:max_attempts` values.
| waiter_name | params | :delay | :max_attempts | | ———————– | ——————————– | ——– | ————- | | load_balancer_available | {Client#describe_load_balancers} | 15 | 40 | | load_balancer_exists | {Client#describe_load_balancers} | 15 | 40 | | load_balancers_deleted | {Client#describe_load_balancers} | 15 | 40 | | target_deregistered | {Client#describe_target_health} | 15 | 40 | | target_in_service | {Client#describe_target_health} | 15 | 40 |
@raise [Errors::FailureStateError] Raised when the waiter terminates
because the waiter has entered a state that it will not transition out of, preventing success.
@raise [Errors::TooManyAttemptsError] Raised when the configured
maximum number of attempts have been made, and the waiter is not yet successful.
@raise [Errors::UnexpectedError] Raised when an error is encounted
while polling for a resource that is not expected.
@raise [Errors::NoSuchWaiterError] Raised when you request to wait
for an unknown state.
@return [Boolean] Returns `true` if the waiter was successful. @param [Symbol] waiter_name @param [Hash] params ({}) @param [Hash] options ({}) @option options [Integer] :max_attempts @option options [Integer] :delay @option options [Proc] :before_attempt @option options [Proc] :before_wait
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4371 def wait_until(waiter_name, params = {}, options = {}) w = waiter(waiter_name, options) yield(w.waiter) if block_given? # deprecated w.wait(params) end
@api private @deprecated
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4379 def waiter_names waiters.keys end
Private Instance Methods
@param [Symbol] waiter_name @param [Hash] options ({})
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4387 def waiter(waiter_name, options = {}) waiter_class = waiters[waiter_name] if waiter_class waiter_class.new(options.merge(client: self)) else raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys) end end
# File lib/aws-sdk-elasticloadbalancingv2/client.rb, line 4396 def waiters { load_balancer_available: Waiters::LoadBalancerAvailable, load_balancer_exists: Waiters::LoadBalancerExists, load_balancers_deleted: Waiters::LoadBalancersDeleted, target_deregistered: Waiters::TargetDeregistered, target_in_service: Waiters::TargetInService } end