ExAws.ElasticLoadBalancingV2 (ex_aws_elastic_load_balancing v3.0.0)

View Source

Operations on AWS ELB (Elastic Load Balancing) V2 API

The doc provided here is extracted from the AWS ELB V2 API Reference. The public functions in this module mirror the API actions documented there. The Elixir function names are the snake_case versions of the API action names. For example, CreateLoadBalancer in the API becomes create_load_balancer/2 in this module. The names of the parameters to the functions are also the snake_case versions of the parameter names used in the API. For example, LoadBalancerName in the API is load_balancer_name in this module).

The arity of functions is based on what is required vs what is optional. Required parameters are passed as individual parameters, and optional parameters are passed as a keyword list or map in the final parameter. If there are multiple required parameters, they are passed in the order that seemed to make the most sense (in general, from most general to most specific).

Optional parameters have an associated type that aligns with the function name with the suffix _opts. For example, the optional parameters for the function create_load_balancer/2 are defined by the type create_load_balancer_opts/0.

There are also type definitions for many of the complex types used in the API. These types are used in the function specs for the public functions. They also provide some documentation that appears in the AWS API Reference.

AWS Elastic Load Balancing supports three types of load balancers: Application Load Balancers (ALB), Network Load Balancers (NLB), and Classic Load Balancers. You can select a load balancer based on your application needs. This API covers the ALB and NLB. Classic Load Balancers are covered by the ExAws.ElasticLoadBalancing module.

More information:

Summary

Types

Information about an action.

The type of action.

A list of action/0

[TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy.

Request parameters to use when integrating with Amazon Cognito to authenticate users.

Request parameters when using an identity provider (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.

A list of binaries

The Amazon S3 bucket for the ca certificates bundle.

The Amazon S3 path for the ca certificates bundle.

The Amazon S3 object version for the ca certificates bundle

Information about an SSL server certificate.

The Amazon Resource Name (ARN) of the certificate.

Optional parameters for create_listener/3.

Optional parameters for create_rule/5.

Optional parameters for create_target_group/3.

[Application Load Balancers on Outposts] The ID of the customer-owned address pool (CoIP pool)

Optional parameters for describe_rules/1.

[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT.

Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through AWS PrivateLink

The HTTP response code (2XX, 4XX, or 5XX).

Information about an action that returns a custom HTTP response

Information about a forward action.

You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12.

Indicates whether health checks are enabled

The approximate amount of time, in seconds, between health checks of an individual target

[HTTP/HTTPS health checks] The destination for health checks on the targets

The protocol the load balancer uses when performing health checks on targets

The protocol the load balancer uses when performing health checks on targets

The amount of time, in seconds, during which no response from a target means a failed health check

The number of consecutive health check successes required before considering a target healthy

Information about a host header condition.

Information about a host header rewrite transform

For Application Load Balancers, you can specify values between 200 and 499, with the default value being 200

The IP address type. Internal load balancers must use ipv4

An IPAM pool is a collection of IP address CIDRs

An IPAM pool is a collection of IP address CIDRs

The Amazon Resource Name (ARN) of the listener

Information about a listener attribute.

The name of the attribute.

The value of the attribute.

The Amazon Resource Name (ARN) of the load balancer

Information about a load balancer attribute.

The name of the load balancer.

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 type of load balancer. The default is "application".

The marker for the next set of results

The codes to use when checking for a successful response from a target

The minimum capacity for a load balancer.

The client certificate handling method

Optional parameters for modify_ip_pools/2.

Optional parameters for modify_listener/2.

Optional parameters for modify_rule/2.

Information about the mutual authentication attributes of a listener

The values "on" and "off"

The order for the action

The maximum number of results to return with this call

Optional pagination parameters

The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer.

The rule priority

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 can't specify a protocol for a Gateway Load Balancer.

[HTTP/HTTPS protocol] The protocol version

Information about a redirect action

The regular expression to match in the input string

The replacement string to use when rewriting the matched input

A single Amazon Resource Name (ARN)

Information about a revocation file.

The revocation ID of the revocation file

The type of revocation file.

Information about a rewrite transform to match a pattern and replace it with the specified string.

The Amazon Resource Name (ARN) of the rule

Information about a condition for a rule.

Information about the priorities for the rules for a listener

Information about a transform to apply to requests that match a rule

The type of transform.

The Amazon S3 bucket

The Amazon S3 path

The Amazon S3 object version

The IDs of the security groups.

Optional parameters for set_subnets/3.

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported.

Information about a subnet mapping

The IDs of the public subnets. You can specify only one subnet per Availability Zone

Information about a tag

The tag keys for the tags to remove.

A list of tag/0

Information about a target.

The Amazon Resource Name (ARN) of the target group

Information about a target group attribute.

The name of the target group.

Information about the target group stickiness for a rule.

Information about how traffic will be distributed between multiple target groups in a forward rule

Used to include anomaly detection information.

The type of target that you must specify when registering targets with this target group

The Amazon Resource Name (ARN) of the trust store.

Indicates a shared trust stores association status.

The name of the trust store.

The number of consecutive health check failures required before considering the target unhealthy.

Information about a URL rewrite transform

The identifier of the virtual private cloud (VPC)

Functions

Adds the specified SSL server certificate to the certificate list for the specified HTTPS or TLS listener.

Adds the specified tags to the specified Elastic Load Balancing resource.

Adds the specified revocation file to the specified trust store.

Creates a listener for the specified Application Load Balancer or Network Load Balancer.

Creates a listener for the specified Application Load Balancer

Creates an Application Load Balancer or a Network Load Balancer.

Creates a target group.

Deletes the specified listener.

Deletes the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer. Deleting a load balancer also deletes its listeners.

Deletes the specified rule

Deletes the specified target group.

Deletes the specified trust store.

Deregisters the specified targets from the specified target group

Describes the current Elastic Load Balancing resource limits for your AWS account.

Describes the capacity reservation status for the specified load balancer.

Describes the attributes for the specified listener

Describes the default certificate and the certificate list for the specified HTTPS or TLS listener

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.

Describes the attributes for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.

Describes the specified load balancers or all of your load balancers.

Describes the specified rules or the rules for the specified listener.

Describes the specified policies or all policies used for SSL negotiation.

Describes the tags for the specified Elastic Load Balancing resources

Describes the attributes for the specified target group.

Describes the specified target groups or all of your target groups.

Describes the health of the specified targets or all of your targets

Describes all resources associated with the specified trust store

Describes the revocation files in use by the specified trust store or revocation files

Describes all trust stores for the specified account

Retrieves the resource policy for a specified resource

Retrieves the CA certificates bundle for the specified trust store

Modifies the capacity reservation of the specified load balancer.

[Application Load Balancers] Modify the IP pool associated to a load balancer.

Modifies the specified properties of the specified listener.

Modifies the specified attributes of the specified listener.

Modifies the specified attributes of the specified Application Load Balancer or Network Load Balancer.

Modifies the specified rule.

Modifies the health checks used when evaluating the health state of the targets in the specified target group.

Modifies the specified attributes of the specified target group.

Registers the specified targets with the specified target group.

Removes the specified certificate from the specified secure listener.

Removes the specified tags from the specified Elastic Load Balancing resources

Removes the specified revocation files from the specified trust store

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

Sets the priorities of the specified rules.

Associates the specified security groups with the specified Application Load Balancer.

Enables the Availability Zones for the specified public subnets for the specified Application Load Balancer, Network Load Balancer or Gateway Load Balancer

Types

action()

@type action() ::
  [
    type: action_type(),
    authenticate_cognito_config: authenticate_cognito_action_config(),
    authenticate_oidc_config: authenticate_oidc_action_config(),
    fixed_response_config: fixed_response_config(),
    forward_config: forward_action_config(),
    order: order_action(),
    redirect_config: redirect_action_config(),
    target_group_arn: target_group_arn()
  ]
  | %{
      optional(:type) => action_type(),
      optional(:authenticate_cognito_config) =>
        authenticate_cognito_action_config(),
      optional(:authenticate_oidc_config) => authenticate_oidc_action_config(),
      optional(:fixed_response_config) => fixed_response_config(),
      optional(:forward_config) => forward_action_config(),
      optional(:order) => order_action(),
      optional(:redirect_config) => redirect_action_config(),
      optional(:target_group_arn) => target_group_arn()
    }

Information about an action.

Each rule must include exactly one of the following types of actions: forward, fixed-response, or redirect, and it must be the last action to be performed.

action_type()

@type action_type() :: binary()

The type of action.

Valid Values

"forward" | "authenticate-oidc" | "authenticate-cognito" | "redirect" | "fixed-response"

actions()

@type actions() :: [action(), ...]

A list of action/0

add_trust_store_revocations_opts()

@type add_trust_store_revocations_opts() ::
  [{:revocation_contents, revocation_contents()}]
  | %{optional(:revocation_contents) => revocation_contents()}

Optional parameters for add_trust_store_revocations/2.

alpn_policy()

@type alpn_policy() :: binary()

[TLS listeners] The name of the Application-Layer Protocol Negotiation (ALPN) policy.

You can specify one policy name.

Valid Values

"HTTP1Only" | "HTTP2Only" | "HTTP2Optional" | "HTTP2Preferred" | "None"

For more information, see ALPN policies in the Network Load Balancers Guide.

authenticate_cognito_action_config()

@type authenticate_cognito_action_config() :: %{
  :user_pool_arn => binary(),
  :user_pool_client_id => binary(),
  :user_pool_domain => binary(),
  optional(:session_cookie_name) => binary(),
  optional(:scope) => binary(),
  optional(:session_timeout) => integer(),
  optional(:authentication_request_extra_params) => %{
    optional(binary()) => binary()
  },
  optional(:on_unauthenticated_request) => binary(),
  optional(:use_existing_client_secret) => boolean()
}

Request parameters to use when integrating with Amazon Cognito to authenticate users.

authenticate_oidc_action_config()

@type authenticate_oidc_action_config() :: %{
  :issuer => binary(),
  :authorization_endpoint => binary(),
  :token_endpoint => binary(),
  :user_info_endpoint => binary(),
  :client_id => binary(),
  optional(:client_secret) => binary(),
  optional(:session_cookie_name) => binary(),
  optional(:scope) => binary(),
  optional(:session_timeout) => integer(),
  optional(:authentication_request_extra_params) => %{
    optional(binary()) => binary()
  },
  optional(:on_unauthenticated_request) => binary(),
  optional(:use_existing_client_secret) => boolean()
}

Request parameters when using an identity provider (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.

binary_list()

@type binary_list() :: [binary(), ...]

A list of binaries

ca_certificates_bundle_s3_bucket()

@type ca_certificates_bundle_s3_bucket() :: binary()

The Amazon S3 bucket for the ca certificates bundle.

ca_certificates_bundle_s3_key()

@type ca_certificates_bundle_s3_key() :: binary()

The Amazon S3 path for the ca certificates bundle.

ca_certificates_bundle_s3_object_version()

@type ca_certificates_bundle_s3_object_version() :: binary()

The Amazon S3 object version for the ca certificates bundle

If undefined the current version is used.

certificate()

@type certificate() ::
  [certificate_arn: certificate_arn(), is_default: boolean()]
  | %{
      optional(:certificate_arn) => certificate_arn(),
      optional(:is_default) => boolean()
    }

Information about an SSL server certificate.

certificate_arn()

@type certificate_arn() :: binary()

The Amazon Resource Name (ARN) of the certificate.

certificates()

@type certificates() :: [certificate(), ...]

A list of certificate/0

conditions()

@type conditions() :: [rule_condition(), ...]

A list of rule_condition/0

create_listener_opts()

@type create_listener_opts() ::
  [
    alpn_policy: [alpn_policy()],
    certificates: certificates(),
    mutual_authentication: mutual_authentication_attributes(),
    port: port_num(),
    protocol: protocol(),
    ssl_policy: ssl_policy(),
    tags: tags()
  ]
  | %{
      optional(:alpn_policy) => [alpn_policy()],
      optional(:certificates) => certificates(),
      optional(:mutual_authentication) => mutual_authentication_attributes(),
      optional(:port) => port_num(),
      optional(:protocol) => protocol(),
      optional(:ssl_policy) => ssl_policy(),
      optional(:tags) => tags()
    }

Optional parameters for create_listener/3.

create_load_balancer_opts()

@type create_load_balancer_opts() ::
  [
    customer_owned_ipv4_pool: customer_owned_ipv4_pool(),
    enable_prefix_for_ipv6_source_nat: enable_prefix_for_ipv6_source_nat(),
    ip_address_type: ip_address_type(),
    ipam_pools: ipam_pools(),
    scheme: load_balancer_scheme(),
    security_groups: binary_list(),
    subnets: subnets(),
    subnet_mappings: subnet_mappings(),
    tags: tags(),
    type: load_balancer_type()
  ]
  | %{
      optional(:customer_owned_ipv4_pool) => customer_owned_ipv4_pool(),
      optional(:enable_prefix_for_ipv6_source_nat) =>
        enable_prefix_for_ipv6_source_nat(),
      optional(:ip_address_type) => ip_address_type(),
      optional(:ipam_pools) => ipam_pools(),
      optional(:scheme) => load_balancer_scheme(),
      optional(:security_groups) => binary_list(),
      optional(:subnets) => subnets(),
      optional(:subnet_mappings) => subnet_mappings(),
      optional(:tags) => tags(),
      optional(:type) => load_balancer_type()
    }

Optional parameters for create_load_balancer/2.

create_rule_opts()

@type create_rule_opts() ::
  [transforms: [rule_transform()], tags: tags()]
  | %{optional(:transforms) => rule_transform(), optional(:tags) => tags()}

Optional parameters for create_rule/5.

create_target_group_opts()

@type create_target_group_opts() ::
  [
    health_check_enabled: health_check_enabled(),
    health_check_interval_seconds: health_check_interval_seconds(),
    health_check_path: health_check_path(),
    health_check_port: health_check_port(),
    health_check_protocol: health_check_protocol(),
    health_check_timeout_seconds: health_check_timeout_seconds(),
    healthy_threshold_count: healthy_threshold_count(),
    ip_address_type: ip_address_type(),
    matcher: matcher(),
    port: port_num(),
    protocol: protocol(),
    protocol_version: protocol_version(),
    tags: tags(),
    target_type: target_type(),
    unhealthy_threshold_count: unhealthy_threshold_count(),
    vpc_id: vpc_id()
  ]
  | %{
      optional(:health_check_enabled) => health_check_enabled(),
      optional(:health_check_interval_seconds) =>
        health_check_interval_seconds(),
      optional(:health_check_path) => health_check_path(),
      optional(:health_check_port) => health_check_port(),
      optional(:health_check_protocol) => health_check_protocol(),
      optional(:health_check_timeout_seconds) => health_check_timeout_seconds(),
      optional(:healthy_threshold_count) => healthy_threshold_count(),
      optional(:ip_address_type) => ip_address_type(),
      optional(:matcher) => matcher(),
      optional(:port) => port_num(),
      optional(:protocol) => protocol(),
      optional(:protocol_version) => protocol_version(),
      optional(:tags) => tags(),
      optional(:target_type) => target_type(),
      optional(:unhealthy_threshold_count) => unhealthy_threshold_count(),
      optional(:vpc_id) => vpc_id()
    }

Optional parameters for create_target_group/3.

create_trust_store_opts()

@type create_trust_store_opts() ::
  [
    ca_certificates_bundle_s3_object_version:
      ca_certificates_bundle_s3_object_version(),
    tags: tags()
  ]
  | %{
      optional(:ca_certificates_bundle_s3_object_version) =>
        ca_certificates_bundle_s3_object_version(),
      optional(:tags) => tags()
    }

customer_owned_ipv4_pool()

@type customer_owned_ipv4_pool() :: binary()

[Application Load Balancers on Outposts] The ID of the customer-owned address pool (CoIP pool)

Length Constraints: Maximum length of 256. Pattern: ^(ipv4pool-coip-)[a-zA-Z0-9]+$

deprecated_create_listener_opts()

@type deprecated_create_listener_opts() ::
  [
    alpn_policy: [alpn_policy()],
    certificates: certificates(),
    mutual_authentication: mutual_authentication_attributes(),
    ssl_policy: ssl_policy(),
    tags: tags()
  ]
  | %{
      optional(:alpn_policy) => [alpn_policy()],
      optional(:certificates) => certificates(),
      optional(:mutual_authentication) => mutual_authentication_attributes(),
      optional(:ssl_policy) => ssl_policy(),
      optional(:tags) => tags()
    }

Optional parameters for create_listener/5.

describe_account_limits_opts()

@type describe_account_limits_opts() :: paging()

Optional parameters for describe_account_limits/1.

describe_listener_certificates_opts()

@type describe_listener_certificates_opts() :: paging()

Optional parameters for describe_listener_certificates/2.

describe_listeners_opts()

@type describe_listeners_opts() ::
  [
    listener_arns: [listener_arn(), ...],
    load_balancer_arn: load_balancer_arn(),
    marker: marker(),
    page_size: page_size()
  ]
  | %{
      optional(:listener_arns) => [listener_arn(), ...],
      optional(:load_balancer_arn) => load_balancer_arn(),
      optional(:marker) => marker(),
      optional(:page_size) => page_size()
    }

Optional parameters for describe_listeners/1.

describe_load_balancers_opts()

@type describe_load_balancers_opts() ::
  [
    load_balancer_arns: [load_balancer_arn()],
    names: [binary(), ...],
    marker: marker(),
    page_size: page_size()
  ]
  | %{
      optional(:load_balancer_arns) => [load_balancer_arn()],
      optional(:names) => [binary(), ...],
      optional(:marker) => marker(),
      optional(:page_size) => page_size()
    }

Optional parameters for describe_load_balancers/1.

describe_rules_opts()

@type describe_rules_opts() ::
  [
    listener_arn: listener_arn(),
    rule_arns: rule_arns(),
    marker: marker(),
    page_size: page_size()
  ]
  | %{
      optional(:listener_arn) => listener_arn(),
      optional(:rule_arns) => rule_arns(),
      optional(:marker) => marker(),
      optional(:page_size) => page_size()
    }

Optional parameters for describe_rules/1.

describe_ssl_policies_opts()

@type describe_ssl_policies_opts() ::
  [ssl_policy_names: [binary(), ...], marker: marker(), page_size: page_size()]
  | %{
      optional(:ssl_policy_names) => [binary(), ...],
      optional(:marker) => marker(),
      optional(:page_size) => page_size()
    }

Optional parameters for describe_ssl_policies/1.

describe_target_groups_opts()

@type describe_target_groups_opts() ::
  [
    load_balancer_arn: load_balancer_arn(),
    target_group_arns: [target_group_arn()],
    names: [binary(), ...],
    marker: marker(),
    page_size: page_size()
  ]
  | %{
      optional(:load_balancer_arn) => load_balancer_arn(),
      optional(:target_group_arns) => [target_group_arn()],
      optional(:names) => [binary(), ...],
      optional(:marker) => marker(),
      optional(:page_size) => page_size()
    }

Optional parameters for describe_target_groups/1.

describe_target_health_opts()

@type describe_target_health_opts() ::
  [targets: target_descriptions(), include: target_health_include_options()]
  | %{
      optional(:targets) => target_descriptions(),
      optional(:include) => target_health_include_options()
    }

Optional parameters for describe_target_health/2.

describe_trust_store_associations_opts()

@type describe_trust_store_associations_opts() :: paging()

Optional parameters for describe_trust_store_associations/2.

describe_trust_store_revocations_opts()

@type describe_trust_store_revocations_opts() ::
  [page_size: page_size(), marker: marker(), revocation_ids: revocation_ids()]
  | %{
      optional(:page_size) => page_size(),
      optional(:marker) => marker(),
      optional(:revocation_ids) => revocation_ids()
    }

Optional parameters for describe_trust_store_revocations/2.

describe_trust_stores_opts()

@type describe_trust_stores_opts() ::
  [
    page_size: page_size(),
    marker: marker(),
    names: [trust_store_name(), ...],
    trust_store_arns: [trust_store_arn(), ...]
  ]
  | %{
      optional(:page_size) => page_size(),
      optional(:marker) => marker(),
      optional(:names) => [trust_store_name(), ...],
      optional(:trust_store_arns) => [trust_store_arn(), ...]
    }

Optional parameters for describe_trust_stores/1.

enable_prefix_for_ipv6_source_nat()

@type enable_prefix_for_ipv6_source_nat() :: binary()

[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT.

The IP address type must be dualstack. The default value is "off".

Valid Values:

"on" | "off"

fixed_response_action_content_type()

@type fixed_response_action_content_type() :: binary()

The content type

Valid Values

"text/plain" | "text/css" | "text/html" | "application/javascript" | "application/json"

Length Constraints

Minimum length of 0. Maximum length of 32.

fixed_response_action_message()

@type fixed_response_action_message() :: binary()

The message body

Length Constraints

Minimum length of 0. Maximum length of 1024.

fixed_response_action_status_code()

@type fixed_response_action_status_code() :: binary()

The HTTP response code (2XX, 4XX, or 5XX).

Pattern: ^(2|4|5)$

fixed_response_config()

@type fixed_response_config() ::
  [
    status_code: fixed_response_action_status_code(),
    content_type: fixed_response_action_content_type(),
    message_body: fixed_response_action_message()
  ]
  | %{
      :status_code => fixed_response_action_status_code(),
      optional(:content_type) => fixed_response_action_content_type(),
      optional(:message_body) => fixed_response_action_message()
    }

Information about an action that returns a custom HTTP response

forward_action_config()

@type forward_action_config() :: %{
  optional(:target_groups) => [target_group_tuple()],
  optional(:target_group_stickiness_config) => target_group_stickiness_config()
}

Information about a forward action.

grpc_code()

@type grpc_code() :: binary()

You can specify values between 0 and 99. You can specify multiple values (for example, "0,1") or a range of values (for example, "0-5"). The default value is 12.

health_check_enabled()

@type health_check_enabled() :: boolean()

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, ip, or alb, health checks are always enabled and can't be disabled.

health_check_interval_seconds()

@type health_check_interval_seconds() :: pos_integer()

The approximate amount of time, in seconds, between health checks of an individual target

The range is 5-300. If the target group protocol is TCP, TLS, UDP, TCP_UDP, 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.

Valid Range

Minimum value of 5. Maximum value of 300

health_check_path()

@type health_check_path() :: binary()

[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 "/AWS.ALB/healthcheck".

Length Constraints

Minimum length of 1. Maximum length of 1024.

health_check_port()

@type health_check_port() :: binary()

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.

health_check_protocol()

@type health_check_protocol() :: binary()

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.

Valid Values

"HTTP" | "HTTPS" | "TCP" | "TLS" | "UDP" | "TCP_UDP" | "GENEVE"

health_check_timeout_seconds()

@type health_check_timeout_seconds() :: pos_integer()

The amount of time, in seconds, during which no response from a target means a failed health check

The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds.

Valid Range

Minimum value of 2. Maximum value of 120.

healthy_threshold_count()

@type healthy_threshold_count() :: pos_integer()

The number of consecutive health check successes required before considering a target healthy

The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a protocol of GENEVE, the default is 5. If the target type is lambda, the default is 5.

Valid Range

Minimum value of 2. Maximum value of 10.

host_header_config()

@type host_header_config() ::
  [regex_values: binary_list(), values: binary_list()]
  | %{
      optional(:regex_values) => binary_list(),
      optional(:values) => binary_list()
    }

Information about a host header condition.

  • regex_values - The regular expressions to compare against the host header. The maximum length of each string is 128 characters.
  • values - The host names. The maximum length of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). You must include at least one "." character. You can include only alphabetical characters after the final "." character.

host_header_rewrite_config()

@type host_header_rewrite_config() :: [{:rewrites, [rewrite_config()]}]

Information about a host header rewrite transform

This transform matches a pattern in the host header in an HTTP request and replaces it with the specified string.

http_code()

@type http_code() :: binary()

For Application Load Balancers, you can specify values between 200 and 499, with the default value being 200

You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").

For Network Load Balancers, you can specify values between 200 and 599, with the default value being 200-399. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299").

For Gateway Load Balancers, this must be "200–399".

Note that when using shorthand syntax, some values such as commas need to be escaped

ip_address_type()

@type ip_address_type() :: binary()

The IP address type. Internal load balancers must use ipv4

[Application Load Balancers] The possible values are ipv4 (IPv4 addresses), dualstack (IPv4 and IPv6 addresses), and dualstack-without-public-ipv4 (public IPv6 addresses and private IPv4 and IPv6 addresses).

Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.

[Network Load Balancers and Gateway Load Balancers] The possible values are ipv4 (IPv4 addresses) and dualstack (IPv4 and IPv6 addresses).

Valid Values

"ipv4" | "dualstack" | "dualstack-without-public-ipv4"

ipam_pools()

@type ipam_pools() :: [%{ipv4_ipam_pool_id: ipv4_ipam_pool_id()}]

An IPAM pool is a collection of IP address CIDRs

IPAM pools enable you to organize your IP addresses according to your routing and security needs.

ipv4_ipam_pool_id()

@type ipv4_ipam_pool_id() :: binary()

An IPAM pool is a collection of IP address CIDRs

IPAM pools enable you to organize your IP addresses according to your routing and security needs.

Length Constraints: Maximum length of 1000. Pattern: ^(ipam-pool-)[a-zA-Z0-9]+$

listener_arn()

@type listener_arn() :: binary()

The Amazon Resource Name (ARN) of the listener

listener_attribute()

@type listener_attribute() ::
  [key: listener_attribute_key(), value: listener_attribute_value()]
  | %{
      optional(:key) => listener_attribute_key(),
      optional(:value) => listener_attribute_value()
    }

Information about a listener attribute.

listener_attribute_key()

@type listener_attribute_key() :: binary()

The name of the attribute.

The following attribute is supported by Network Load Balancers, and Gateway Load Balancers.

  • "tcp.idle_timeout.seconds" - The tcp idle timeout value, in seconds. The valid range is 60-6000 seconds. The default is 350 seconds.

The following attributes are only supported by Application Load Balancers.

  • "routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Serial-Number HTTP request header.
  • "routing.http.request.x_amzn_mtls_clientcert_issuer.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Issuer HTTP request header.
  • "routing.http.request.x_amzn_mtls_clientcert_subject.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Subject HTTP request header.
  • "routing.http.request.x_amzn_mtls_clientcert_validity.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Validity HTTP request header.
  • "routing.http.request.x_amzn_mtls_clientcert_leaf.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert-Leaf HTTP request header.
  • "routing.http.request.x_amzn_mtls_clientcert.header_name" - Enables you to modify the header name of the X-Amzn-Mtls-Clientcert HTTP request header.
  • "routing.http.request.x_amzn_tls_version.header_name" - Enables you to modify the header name of the X-Amzn-Tls-Version HTTP request header.
  • "routing.http.request.x_amzn_tls_cipher_suite.header_name" - Enables you to modify the header name of the X-Amzn-Tls-Cipher-Suite HTTP request header.
  • "routing.http.response.server.enabled" - Enables you to allow or remove the HTTP response server header.
  • "routing.http.response.strict_transport_security.header_value" - Informs browsers that the site should only be accessed using HTTPS, and that any future attempts to access it using HTTP should automatically be converted to HTTPS.
  • "routing.http.response.access_control_allow_origin.header_value" - Specifies which origins are allowed to access the server.
  • "routing.http.response.access_control_allow_methods.header_value" - Returns which HTTP methods are allowed when accessing the server from a different origin.
  • "routing.http.response.access_control_allow_headers.header_value" - Specifies which headers can be used during the request.
  • "routing.http.response.access_control_allow_credentials.header_value" - Indicates whether the browser should include credentials such as cookies or authentication when making requests.
  • "routing.http.response.access_control_expose_headers.header_value" - Returns which headers the browser can expose to the requesting client.
  • "routing.http.response.access_control_max_age.header_value" - Specifies how long the results of a preflight request can be cached, in seconds.
  • "routing.http.response.content_security_policy.header_value" - Specifies restrictions enforced by the browser to help minimize the risk of certain types of security threats.
  • "routing.http.response.x_content_type_options.header_value" - Indicates whether the MIME types advertised in the Content-Type headers should be followed and not be changed.
  • "routing.http.response.x_frame_options.header_value" - Indicates whether the browser is allowed to render a page in a frame, iframe, embed or object.

Length Constraints: Maximum length of 256 Pattern: ^[a-zA-Z0-9._]+$

listener_attribute_value()

@type listener_attribute_value() :: binary()

The value of the attribute.

load_balancer_arn()

@type load_balancer_arn() :: binary()

The Amazon Resource Name (ARN) of the load balancer

load_balancer_arns()

@type load_balancer_arns() :: [load_balancer_arn(), ...]

A list of load_balancer_arn/0

load_balancer_attribute()

@type load_balancer_attribute() :: %{
  optional(:key) => binary(),
  optional(:value) => binary()
}

Information about a load balancer attribute.

load_balancer_name()

@type load_balancer_name() :: binary()

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-".

load_balancer_scheme()

@type load_balancer_scheme() :: binary()

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 can't specify a scheme for a Gateway Load Balancer.

Valid Values

"internet-facing" | "internal"

load_balancer_type()

@type load_balancer_type() :: binary()

The type of load balancer. The default is "application".

Valid Values

"application" | "network" | "gateway"

marker()

@type marker() :: binary()

The marker for the next set of results

You received this marker from a previous call.

matcher()

@type matcher() ::
  [grpc_code: grpc_code(), http_code: http_code()]
  | %{optional(:grpc_code) => grpc_code(), optional(:http_code) => http_code()}

The codes to use when checking for a successful response from a target

If the protocol version is gRPC, these are gRPC codes. Otherwise, these are HTTP codes.

minimum_load_balancer_capacity()

@type minimum_load_balancer_capacity() ::
  [{:capacity_units, integer()}] | %{optional(:capacity_units) => integer()}

The minimum capacity for a load balancer.

mode()

@type mode() :: binary()

The client certificate handling method

Valid Values:

"off" | "passthrough" | "verify"

modify_capacity_reservation_opts()

@type modify_capacity_reservation_opts() ::
  [
    minimum_load_balancer_capacity: minimum_load_balancer_capacity(),
    reset_capacity_reservation: boolean()
  ]
  | %{
      optional(:minimum_load_balancer_capacity) =>
        minimum_load_balancer_capacity(),
      optional(:reset_capacity_reservation) => boolean()
    }

Optional parameters for modify_capacity_reservation/2.

modify_ip_pools_opts()

@type modify_ip_pools_opts() ::
  [ipam_pools: ipam_pools(), remove_ipam_pools: binary_list()]
  | %{
      optional(:ipam_pools) => ipam_pools(),
      optional(:remove_ipam_pools) => binary_list()
    }

Optional parameters for modify_ip_pools/2.

modify_listener_opts()

@type modify_listener_opts() ::
  [
    alpn_policy: [alpn_policy()],
    certificates: certificates(),
    default_actions: actions(),
    mutual_authentication: mutual_authentication_attributes(),
    port: port_num(),
    protocol: protocol(),
    ssl_policy: ssl_policy()
  ]
  | %{
      optional(:alpn_policy) => [alpn_policy()],
      optional(:certificates) => certificates(),
      optional(:default_actions) => actions(),
      optional(:mutual_authentication) => mutual_authentication_attributes(),
      optional(:port) => port_num(),
      optional(:protocol) => protocol(),
      optional(:ssl_policy) => ssl_policy()
    }

Optional parameters for modify_listener/2.

modify_rule_opts()

@type modify_rule_opts() ::
  [
    actions: actions(),
    conditions: conditions(),
    reset_transforms: boolean(),
    transforms: rule_transforms()
  ]
  | %{
      optional(:actions) => actions(),
      optional(:conditions) => conditions(),
      optional(:reset_transforms) => boolean(),
      optional(:transforms) => rule_transforms()
    }

Optional parameters for modify_rule/2.

modify_target_group_opts()

@type modify_target_group_opts() ::
  [
    health_check_enabled: health_check_enabled(),
    health_check_interval_seconds: health_check_interval_seconds(),
    health_check_path: health_check_path(),
    health_check_port: health_check_port(),
    health_check_protocol: health_check_protocol(),
    health_check_timeout_seconds: health_check_timeout_seconds(),
    healthy_threshold_count: healthy_threshold_count(),
    matcher: matcher(),
    unhealthy_threshold_count: unhealthy_threshold_count()
  ]
  | %{
      optional(:health_check_enabled) => health_check_enabled(),
      optional(:health_check_interval_seconds) =>
        health_check_interval_seconds(),
      optional(:health_check_path) => health_check_path(),
      optional(:health_check_port) => health_check_port(),
      optional(:health_check_protocol) => health_check_protocol(),
      optional(:health_check_timeout_seconds) => health_check_timeout_seconds(),
      optional(:healthy_threshold_count) => healthy_threshold_count(),
      optional(:matcher) => matcher(),
      optional(:unhealthy_threshold_count) => unhealthy_threshold_count()
    }

Optional parameters for modify_target_group/2.

modify_trust_store_opts()

@type modify_trust_store_opts() ::
  [
    {:ca_certificates_bundle_s3_object_version,
     ca_certificates_bundle_s3_object_version()}
  ]
  | %{
      optional(:ca_certificates_bundle_s3_object_version) =>
        ca_certificates_bundle_s3_object_version()
    }

Optional parameters for modify_trust_store/4.

mutual_authentication_attributes()

@type mutual_authentication_attributes() :: %{
  optional(:advertise_trust_store_ca_names) => on_or_off(),
  optional(:ignore_client_certificate_expiry) => boolean(),
  optional(:mode) => mode(),
  optional(:trust_store_arn) => trust_store_arn(),
  optional(:trust_store_association_status) => trust_store_association_status()
}

Information about the mutual authentication attributes of a listener

on_or_off()

@type on_or_off() :: binary()

The values "on" and "off"

Valid Values:

"on" | "off"

order_action()

@type order_action() :: pos_integer()

The order for the action

This value is required for rules with multiple actions. The action with the lowest value for order is performed first.

Valid Range: Minimum value of 1. Maximum value of 50000.

page_size()

@type page_size() :: pos_integer()

The maximum number of results to return with this call

Valid Range: Minimum value of 1. Maximum value of 400.

paging()

@type paging() ::
  [marker: marker(), page_size: page_size()]
  | %{optional(:marker) => marker(), optional(:page_size) => page_size()}

Optional pagination parameters

port_num()

@type port_num() :: pos_integer()

The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer.

Valid Range: Minimum value of 1. Maximum value of 65535.

priority()

@type priority() :: pos_integer()

The rule priority

A listener can't have multiple rules with the same priority.

Valid Range: Minimum value of 1. Maximum value of 50000.

protocol()

@type protocol() :: binary()

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 can't specify a protocol for a Gateway Load Balancer.

Valid Values

"HTTP" | "HTTPS" | "TCP" | "TLS" | "UDP" | "TCP_UDP" | "GENEVE"

protocol_version()

@type protocol_version() :: binary()

[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.

redirect_action_config()

@type redirect_action_config() :: %{
  optional(:protocol) => binary(),
  optional(:port) => binary(),
  optional(:host) => binary(),
  optional(:path) => binary(),
  optional(:query) => binary(),
  status_code: binary()
}

Information about a redirect action

A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.

You can reuse URI components using the following reserved keywords:

  • "#{protocol}"
  • "#{host}"
  • "#{port}"
  • "#{path}" (the leading "/" is removed)
  • "#{query}"

For example, you can change the path to "/new/#{path}", the hostname to "example.#{host}", or the query to "#{query}&value=xyz".

regex()

@type regex() :: binary()

The regular expression to match in the input string

The maximum length of the string is 1,024 characters.

replace()

@type replace() :: binary()

The replacement string to use when rewriting the matched input

The maximum length of the string is 1,024 characters. You can specify capture groups in the regular expression (for example, $1 and $2).

resource_arn()

@type resource_arn() :: binary()

A single Amazon Resource Name (ARN)

resource_arns()

@type resource_arns() :: [resource_arn(), ...]

A list of resource_arn/0

revocation_content()

@type revocation_content() ::
  [
    revocation_type: revocation_type(),
    s3_bucket: s3_bucket(),
    s3_key: s3_key(),
    s3_object_version: s3_object_version()
  ]
  | %{
      optional(:revocation_type) => revocation_type(),
      optional(:s3_bucket) => s3_bucket(),
      optional(:s3_key) => s3_key(),
      optional(:s3_object_version) => s3_object_version()
    }

Information about a revocation file.

revocation_contents()

@type revocation_contents() :: [revocation_content(), ...]

A list of revocation_content/0

revocation_id()

@type revocation_id() :: integer()

The revocation ID of the revocation file

revocation_ids()

@type revocation_ids() :: [revocation_id(), ...]

A list of revocation_id/0

revocation_type()

@type revocation_type() :: binary()

The type of revocation file.

Valid Values:

"CRL"

rewrite_config()

@type rewrite_config() :: %{regex: regex(), replace: replace()}

Information about a rewrite transform to match a pattern and replace it with the specified string.

rule_arn()

@type rule_arn() :: binary()

The Amazon Resource Name (ARN) of the rule

rule_arns()

@type rule_arns() :: [rule_arn(), ...]

A list of rule_arn/0

rule_condition()

@type rule_condition() ::
  [
    field: binary(),
    values: binary_list(),
    host_header_config: host_header_config()
  ]
  | %{
      optional(:field) => binary(),
      optional(:values) => binary_list(),
      optional(:host_header_config) => host_header_config()
    }

Information about a condition for a rule.

Each rule can optionally include up to one of each of the following conditions: http-request-method, host-header, path-pattern, and source-ip. Each rule can also optionally include one or more of each of the following conditions: http-header and query-string. Note that the value for a condition can't be empty.

For more information, see Quotas for your Application Load Balancers.

rule_priorities()

@type rule_priorities() :: [rule_priority_pair(), ...]

A list of rule_priority_pair/0

rule_priority_pair()

@type rule_priority_pair() ::
  [rule_arn: rule_arn(), priority: priority()]
  | %{optional(:rule_arn) => rule_arn(), optional(:priority) => priority()}

Information about the priorities for the rules for a listener

rule_transform()

@type rule_transform() :: %{
  :type => rule_transform_type(),
  optional(:host_header_rewrite_config) => host_header_rewrite_config(),
  optional(:url_rewrite_config) => url_rewrite_config()
}

Information about a transform to apply to requests that match a rule

Transforms are applied to requests before they are sent to targets. The :type is required and is set to "host-header-rewrite" or "url-rewrite". Based on the type of transform, specify either :host_header_rewrite_config or :url_rewrite_config.

rule_transform_type()

@type rule_transform_type() :: binary()

The type of transform.

  • "host-header-rewrite" - Rewrite the host header.
  • "url-rewrite" - Rewrite the request URL.

Valid Values

"host-header-rewrite" | "url-rewrite"

rule_transforms()

@type rule_transforms() :: [rule_transform(), ...]

A list of rule_transform/0

s3_bucket()

@type s3_bucket() :: binary()

The Amazon S3 bucket

s3_key()

@type s3_key() :: binary()

The Amazon S3 path

s3_object_version()

@type s3_object_version() :: binary()

The Amazon S3 object version

security_groups()

@type security_groups() :: binary_list()

The IDs of the security groups.

set_security_groups_opts()

@type set_security_groups_opts() ::
  [
    {:enforce_security_group_inbound_rules_on_private_link_traffic,
     enforce_security_group_inbound_rules_on_private_link_traffic()}
  ]
  | %{
      optional(:enforce_security_group_inbound_rules_on_private_link_traffic) =>
        enforce_security_group_inbound_rules_on_private_link_traffic()
    }

Optional parameters for set_security_groups/3.

set_subnets_opts()

@type set_subnets_opts() ::
  [
    enable_prefix_for_ipv6_source_nat: enable_prefix_for_ipv6_source_nat(),
    ip_address_type: ip_address_type(),
    subnet_mappings: subnet_mappings(),
    subnets: subnets()
  ]
  | %{
      optional(:enable_prefix_for_ipv6_source_nat) =>
        enable_prefix_for_ipv6_source_nat(),
      optional(:ip_address_type) => ip_address_type(),
      optional(:subnet_mappings) => subnet_mappings(),
      optional(:subnets) => subnets()
    }

Optional parameters for set_subnets/3.

ssl_policy()

@type ssl_policy() :: binary()

[HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported.

For more information, see Security policies in the Application Load Balancers Guide and Security policies in the Network Load Balancers Guide.

subnet_mapping()

@type subnet_mapping() ::
  [
    allocation_id: binary(),
    ipv6_address: binary(),
    private_ipv4_address: binary(),
    source_native_ipv6_prefix: binary(),
    subnet_id: binary()
  ]
  | %{
      optional(:allocation_id) => binary(),
      optional(:ipv6_address) => binary(),
      optional(:private_ipv4_address) => binary(),
      optional(:source_native_ipv6_prefix) => binary(),
      optional(:subnet_id) => binary()
    }

Information about a subnet mapping

  • allocation_id - [Network Load Balancer] The allocation ID of the Elastic IP address for an internet-facing load balancer.
  • ipv6_address - [Network Load Balancer] The IPv6 address.
  • private_ipv4_address - [Network Load Balancer] The private IPv4 address for an internal load balancer.
  • source_native_ipv6_prefix - [Network Load Balancer with UDP listeners] The ID of the IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or "auto_assigned" to use an IPv6 prefix selected at random from the subnet CIDR block.
  • subnet_id - The ID of the subnet.

subnet_mappings()

@type subnet_mappings() :: [subnet_mapping(), ...]

A list of subnet_mapping/0

subnets()

@type subnets() :: binary_list()

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 can't 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.

tag()

@type tag() :: {atom(), binary()} | %{key: binary(), value: binary()}

Information about a tag

tag_keys()

@type tag_keys() :: [binary(), ...]

The tag keys for the tags to remove.

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: ^([p{L}p{Z}p{N}_.:/=+-@]*)$

tags()

@type tags() :: [tag(), ...]

A list of tag/0

target_description()

@type target_description() :: %{
  :id => binary(),
  optional(:port) => port_num(),
  optional(:availability_zone) => binary()
}

Information about a target.

target_descriptions()

@type target_descriptions() :: [target_description()]

A list of target_description/0

target_group_arn()

@type target_group_arn() :: binary()

The Amazon Resource Name (ARN) of the target group

target_group_attribute()

@type target_group_attribute() ::
  {atom(), binary()} | %{key: binary(), value: binary()}

Information about a target group attribute.

target_group_attributes()

@type target_group_attributes() :: [target_group_attribute(), ...]

A list of target_group_attribute/0

target_group_name()

@type target_group_name() :: binary()

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.

target_group_stickiness_config()

@type target_group_stickiness_config() :: %{
  optional(:enabled) => boolean(),
  optional(:duration_seconds) => integer()
}

Information about the target group stickiness for a rule.

target_group_tuple()

@type target_group_tuple() :: %{
  optional(:target_group_arn) => target_group_arn(),
  optional(:weight) => integer()
}

Information about how traffic will be distributed between multiple target groups in a forward rule

target_health_include_option()

@type target_health_include_option() :: binary()

Used to include anomaly detection information.

Valid Values

"AnomalyDetection" | "All"

target_health_include_options()

@type target_health_include_options() :: [target_health_include_option(), ...]

List of target_health_include_option/0

target_type()

@type target_type() :: binary()

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.
  • "alb" - Register a single Application Load Balancer as a target.

Valid Values

"instance" | "ip" | "lambda" | "alb"

trust_store_arn()

@type trust_store_arn() :: binary()

The Amazon Resource Name (ARN) of the trust store.

trust_store_association_status()

@type trust_store_association_status() :: binary()

Indicates a shared trust stores association status.

Valid Values:

"active" | "removed"

trust_store_name()

@type trust_store_name() :: binary()

The name of the trust store.

Length Constraints: Minimum length of 1. Maximum length of 32. Pattern: ^([a-zA-Z0-9]+-)*[a-zA-Z0-9]+$

unhealthy_threshold_count()

@type unhealthy_threshold_count() :: pos_integer()

The number of consecutive health check failures required before considering the target unhealthy.

Valid Range: Minimum value of 2. Maximum value of 10.

url_rewrite_config()

@type url_rewrite_config() :: [{:rewrites, [rewrite_config()]}]

Information about a URL rewrite transform

This transform modifies the request URL.

Specify only when :type in rule_transform/0 is "url-rewrite".

vpc_id()

@type vpc_id() :: binary()

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.

Functions

add_listener_certificates(listener_arn, certificates)

@spec add_listener_certificates(listener_arn(), certificates()) ::
  ExAws.Operation.Query.t()

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.

To list the certificates for your listener, use describe_listener_certificates/1. To remove certificates from your listener, use remove_listener_certificates/2.

Examples:

iex> certificates = [
...>   %{certificate_arn: "certificate1_arn", is_default: true},
...>   %{certificate_arn: "certificate2_arn"}
...> ]
[
  %{certificate_arn: "certificate1_arn", is_default: true},
  %{certificate_arn: "certificate2_arn"}
]
iex> ExAws.ElasticLoadBalancingV2.add_listener_certificates("listener_arn", certificates)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "AddListenerCertificates",
    "Certificates.member.1.CertificateArn" => "certificate1_arn",
    "Certificates.member.1.IsDefault" => true,
    "Certificates.member.2.CertificateArn" => "certificate2_arn",
    "ListenerArn" => "listener_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :add_listener_certificates,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

add_tags(resource_arns, tags)

@spec add_tags(resource_arns(), tags()) :: ExAws.Operation.Query.t()

Adds the specified tags to the specified Elastic Load Balancing resource.

You can tag your Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, trust stores, listeners, and rules.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, add_tags/2 updates its value.

To list the current tags for your resources, use describe_tags/1. To remove tags from your resources, use remove_tags/2.

Examples:

iex> tags = [%{key: "hello", value: "test"}, %{key: "foo", value: "bar"}]
iex> ExAws.ElasticLoadBalancingV2.add_tags(["resource_arn1", "resource_arn2"], tags)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "AddTags",
    "ResourceArns.member.1" => "resource_arn1",
    "ResourceArns.member.2" => "resource_arn2",
    "Tags.member.1.Key" => "hello",
    "Tags.member.1.Value" => "test",
    "Tags.member.2.Key" => "foo",
    "Tags.member.2.Value" => "bar",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :add_tags,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> tags = [hello: "test", foo: "bar"]
iex> ExAws.ElasticLoadBalancingV2.add_tags(["resource_arn1", "resource_arn2"], tags)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "AddTags",
    "ResourceArns.member.1" => "resource_arn1",
    "ResourceArns.member.2" => "resource_arn2",
    "Tags.member.1.Key" => "hello",
    "Tags.member.1.Value" => "test",
    "Tags.member.2.Key" => "foo",
    "Tags.member.2.Value" => "bar",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :add_tags,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

add_trust_store_revocations(trust_store_arn, opts \\ [])

@spec add_trust_store_revocations(
  trust_store_arn(),
  add_trust_store_revocations_opts()
) ::
  ExAws.Operation.Query.t()

Adds the specified revocation file to the specified trust store.

Examples:

iex> revocation1 = %{revocation_type: "CRL", s3_bucket: "test_bucket"}
iex> revocation2 = %{revocation_type: "CRL", s3_bucket: "test_bucket2"}
iex> opts = [{:revocation_contents, [revocation1, revocation2]}]
iex> trust_store_arn = "trust_store_arn"
iex> ExAws.ElasticLoadBalancingV2.add_trust_store_revocations(trust_store_arn, opts)
%ExAws.Operation.Query{
        action: :add_trust_store_revocations,
        content_encoding: "identity",
        params: %{
          "Action" => "AddTrustStoreRevocations",
          "RevocationContents.member.1.RevocationType" => "CRL",
          "RevocationContents.member.1.S3Bucket" => "test_bucket",
          "RevocationContents.member.2.RevocationType" => "CRL",
          "RevocationContents.member.2.S3Bucket" => "test_bucket2",
          "TrustStoreArn" => "trust_store_arn",
          "Version" => "2015-12-01"
        },
        parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2,
        path: "/",
        service: :elasticloadbalancing
      }

create_listener(load_balancer_arn, default_actions, opts \\ [])

@spec create_listener(load_balancer_arn(), [action(), ...], create_listener_opts()) ::
  ExAws.Operation.Query.t()

Creates a listener for the specified Application Load Balancer or Network Load Balancer.

You can create up to 10 listeners per load balancer.

To update a listener, use modify_listener/1. When you are finished with a listener, you can delete it using delete_listener/1. If you are finished with both the listener and the load balancer, you can delete them both using delete_load_balancer/1.

More information:

Examples:

iex> default_actions = [%{type: "forward", target_group_arn: "target_arn"}]
iex> load_balancer_arn = "load_balancer_arn"
iex> opts = [protocol: "HTTP", port: 80,
...>         alpn_policy: ["HTTP1Only"],
...>         mutual_authentication: %{trust_store_arn: "trust_store_arn"}]
iex> ExAws.ElasticLoadBalancingV2.create_listener(load_balancer_arn, default_actions, opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateListener",
    "AlpnPolicy.member.1" => "HTTP1Only",
    "DefaultActions.member.1.TargetGroupArn" => "target_arn",
    "DefaultActions.member.1.Type" => "forward",
    "LoadBalancerArn" => "load_balancer_arn",
    "MutualAuthentication.TrustStoreArn" => "trust_store_arn",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_listener,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = %{protocol: "HTTP", port: 80}
iex> ExAws.ElasticLoadBalancingV2.create_listener(load_balancer_arn, default_actions, opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateListener",
    "DefaultActions.member.1.TargetGroupArn" => "target_arn",
    "DefaultActions.member.1.Type" => "forward",
    "LoadBalancerArn" => "load_balancer_arn",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_listener,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

create_listener(load_balancer_arn, protocol, port_num, default_actions, opts \\ [])

This function is deprecated. Use `create_listener/3` instead.

Creates a listener for the specified Application Load Balancer

Examples:

iex> default_actions = [%{type: "forward", target_group_arn: "target_arn"}]
iex> protocol = "HTTP"
iex> port = 80
iex> ExAws.ElasticLoadBalancingV2.create_listener("load_balancer_arn", protocol, port, default_actions)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateListener",
    "DefaultActions.member.1.TargetGroupArn" => "target_arn",
    "DefaultActions.member.1.Type" => "forward",
    "LoadBalancerArn" => "load_balancer_arn",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_listener,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

create_load_balancer(load_balancer_name, opts \\ [])

Creates an Application Load Balancer or a Network Load Balancer.

When you create a load balancer, you can specify security groups, subnets, IP address type, and tags. Otherwise, you could do so later using set_security_groups/3, set_subnets/3, set_ip_address_type/2, and add_tags/2.

To create listeners for your load balancer, use create_listener/3. To describe your current load balancers, see describe_load_balancers/1. When you are finished with a load balancer, you can delete it using delete_load_balancer/1.

You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account.

For more information, see the following:

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.

Examples:

iex> ExAws.ElasticLoadBalancingV2.create_load_balancer("Loader")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateLoadBalancer",
    "Name" => "Loader",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_load_balancer,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> opts = [
...> scheme: "internet-facing",
...> subnet_mappings: [
...>   %{subnet_id: "1.2.3.4", allocation_id: "i2234342"}
...> ],
...> subnets: ["1.2.3.4", "5.6.7.8"],
...> security_groups: ["Secure123", "Secure456"],
...> type: "application", ip_address_type: "ipv4"]
iex> ExAws.ElasticLoadBalancingV2.create_load_balancer("Loader", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateLoadBalancer",
    "IpAddressType" => "ipv4",
    "Name" => "Loader",
    "Scheme" => "internet-facing",
    "SecurityGroups.member.1" => "Secure123",
    "SecurityGroups.member.2" => "Secure456",
    "SubnetMappings.member.1.AllocationId" => "i2234342",
    "SubnetMappings.member.1.SubnetId" => "1.2.3.4",
    "Subnets.member.1" => "1.2.3.4",
    "Subnets.member.2" => "5.6.7.8",
    "Type" => "application",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_load_balancer,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

create_rule(listener_arn, conditions, priority, actions, opts \\ [])

Creates a rule for the specified listener.

The listener must be associated with an Application Load Balancer. Rules are evaluated in priority order, from the lowest value to the highest value. When the condition for a rule is met, the specified action is taken. If no conditions are met, the action for the default rule is taken.

More information:

To view your current rules, use describe_rules/1. To update a rule, use modify_rule/1. To set the priorities of your rules, use set_rule_priorities/1. To delete a rule, use delete_rule/1.

Examples

iex> conditions = [%{field: "path-pattern", values: ["/images/*", "/videos/*"]}]
iex> actions = [%{type: "forward", target_group_arn: "target_arn"}]
iex> priority = 10
iex> listener_arn = "arn:aws:test_arn"
iex> ExAws.ElasticLoadBalancingV2.create_rule(listener_arn, conditions, priority, actions)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateRule",
    "Actions.member.1.TargetGroupArn" => "target_arn",
    "Actions.member.1.Type" => "forward",
    "Conditions.member.1.Field" => "path-pattern",
    "Conditions.member.1.Values.member.1" => "/images/*",
    "Conditions.member.1.Values.member.2" => "/videos/*",
    "ListenerArn" => "arn:aws:test_arn",
    "Priority" => 10,
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_rule,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

create_target_group(name, opts \\ [])

Creates a target group.

To register targets with the target group, use register_targets/2. To update the health check settings for the target group, use modify_target_group/1. To monitor the health of targets in the target group, use describe_target_health/1. To route traffic to the targets in a target group, specify the target group in an action using create_listener/3 or create_rule/5. To delete a target group, use delete_target_group/1.

More information:

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.

Examples:

iex> opts = [protocol: "HTTP", port: 80, health_check_path: "/health", vpc_id: "vpc_id"]
iex> ExAws.ElasticLoadBalancingV2.create_target_group("target_group_name", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateTargetGroup",
    "HealthCheckPath" => "/health",
    "Name" => "target_group_name",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01",
    "VpcId" => "vpc_id"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_target_group,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> # Demonstrate passing opts as a map
iex> opts = %{protocol: "HTTP", port: 80, health_check_path: "/health", vpc_id: "vpc_id"}
iex> ExAws.ElasticLoadBalancingV2.create_target_group("target_group_name", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateTargetGroup",
    "HealthCheckPath" => "/health",
    "Name" => "target_group_name",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01",
    "VpcId" => "vpc_id"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_target_group,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

create_trust_store(trust_store_name, ca_certs_bundle_s3_bucket, ca_certs_bundle_s3_key, opts \\ [])

Creates a trust store.

For more information, see Mutual TLS for Application Load Balancers.

Examples:

iex> trust_store_name = "my-trust-store"
iex> ca_certificates_bundle_s3_bucket = "amzn-s3-demo-bucket"
iex> ca_certificates_bundle_s3_key = "CACertBundle.pem"
iex> ExAws.ElasticLoadBalancingV2.create_trust_store(trust_store_name, ca_certificates_bundle_s3_bucket, ca_certificates_bundle_s3_key)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "CreateTrustStore",
    "CaCertificatesBundleS3Bucket" => "amzn-s3-demo-bucket",
    "CaCertificatesBundleS3Key" => "CACertBundle.pem",
    "TrustStoreName" => "my-trust-store",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :create_trust_store,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

delete_listener(listener_arn)

@spec delete_listener(listener_arn()) :: ExAws.Operation.Query.t()

Deletes the specified listener.

Alternatively, your listener is deleted when you delete the load balancer it is attached to using delete_load_balancer/1.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_listener("listener_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteListener",
      "ListenerArn" => "listener_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_listener,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

delete_load_balancer(load_balancer_arn)

@spec delete_load_balancer(load_balancer_arn()) :: ExAws.Operation.Query.t()

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.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_load_balancer("load_balancer_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteLoadBalancer",
      "LoadBalancerArn" => "load_balancer_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_load_balancer,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

delete_rule(rule_arn)

@spec delete_rule(rule_arn()) :: ExAws.Operation.Query.t()

Deletes the specified rule

You can't delete the default rule.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_rule("rule_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteRule",
      "RuleArn" => "rule_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_rule,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

delete_shared_trust_store_association(resource_arn, trust_store_arn)

@spec delete_shared_trust_store_association(resource_arn(), trust_store_arn()) ::
  ExAws.Operation.Query.t()

Deletes a shared trust store association

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_shared_trust_store_association("resource_arn", "trust_store_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteSharedTrustStoreAssociation",
      "ResourceArn" => "resource_arn",
      "TrustStoreArn" => "trust_store_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_shared_trust_store_association,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

delete_target_group(target_group_arn)

@spec delete_target_group(target_group_arn()) :: ExAws.Operation.Query.t()

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.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_target_group("target_group_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteTargetGroup",
      "TargetGroupArn" => "target_group_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_target_group,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

delete_trust_store(trust_store_arn)

Deletes the specified trust store.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.delete_trust_store("trust_store_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeleteTrustStore",
      "TrustStoreArn" => "trust_store_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :delete_trust_store,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

deregister_targets(target_group_arn, targets)

@spec deregister_targets(target_group_arn(), target_descriptions()) ::
  ExAws.Operation.Query.t()

Deregisters the specified targets from the specified target group

After the targets are deregistered, they no longer receive traffic from the load balancer.

The load balancer stops sending requests to targets that are deregistering, but uses connection draining to ensure that in-flight traffic completes on the existing connections. This deregistration delay is configured by default but can be updated for each target group.

For more information, see the following:

Note: If the specified target does not exist, the action returns successfully.

Examples:

  iex>  targets = [%{id: "test"}, %{id: "test2", port: 8088, availability_zone: "us-east-1"}]
  [%{id: "test"}, %{id: "test2", port: 8088, availability_zone: "us-east-1"}]
  iex> ExAws.ElasticLoadBalancingV2.deregister_targets("target_group_arn", targets)
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeregisterTargets",
      "TargetGroupArn" => "target_group_arn",
      "Targets.member.1.Id" => "test",
      "Targets.member.2.AvailabilityZone" => "us-east-1",
      "Targets.member.2.Id" => "test2",
      "Targets.member.2.Port" => 8088,
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :deregister_targets,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

  iex> ExAws.ElasticLoadBalancingV2.deregister_targets("target_group_arn", [%{id: "i-0f76fade435676abd"}])
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DeregisterTargets",
      "TargetGroupArn" => "target_group_arn",
      "Targets.member.1.Id" => "i-0f76fade435676abd",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :deregister_targets,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_account_limits(opts \\ [])

@spec describe_account_limits(describe_account_limits_opts()) ::
  ExAws.Operation.Query.t()

Describes the current Elastic Load Balancing resource limits for your AWS account.

For more information, see the following:

Examples:

  iex> ExAws.ElasticLoadBalancingV2.describe_account_limits()
  %ExAws.Operation.Query{
    path: "/",
    params: %{"Action" => "DescribeAccountLimits", "Version" => "2015-12-01"},
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :describe_account_limits,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_capacity_reservation(load_balancer_arn)

Describes the capacity reservation status for the specified load balancer.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.describe_capacity_reservation("load_balancer_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DescribeCapacityReservation",
      "LoadBalancerArn" => "load_balancer_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :describe_capacity_reservation,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_listener_attributes(listener_arn)

Describes the attributes for the specified listener

Examples:

  iex> ExAws.ElasticLoadBalancingV2.describe_listener_attributes("listener_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DescribeListenerAttributes",
      "ListenerArn" => "listener_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :describe_listener_attributes,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_listener_certificates(listener_arn, opts \\ [])

@spec describe_listener_certificates(
  listener_arn(),
  describe_listener_certificates_opts()
) ::
  ExAws.Operation.Query.t()

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 is_default set to true and once with is_default set to false).

For more information, see SSL certificates in the Application Load Balancers Guide or Server certificates in the Network Load Balancers Guide.

Examples:

  iex> ExAws.ElasticLoadBalancingV2.describe_listener_certificates("listener_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DescribeListenerCertificates",
      "ListenerArn" => "listener_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :describe_listener_certificates,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_listeners(opts \\ [])

@spec describe_listeners(describe_listeners_opts()) :: ExAws.Operation.Query.t()

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.

For an HTTPS or TLS listener, the output includes the default certificate for the listener. To describe the certificate list for the listener, use describe_listener_certificates/2.

Example

iex> ExAws.ElasticLoadBalancingV2.describe_listeners()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeListeners", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_listeners,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_load_balancer_attributes(load_balancer_arn)

@spec describe_load_balancer_attributes(load_balancer_arn()) ::
  ExAws.Operation.Query.t()

Describes the attributes for the specified Application Load Balancer, Network Load Balancer, or Gateway Load Balancer.

For more information, see the following:

Examples:

  iex> ExAws.ElasticLoadBalancingV2.describe_load_balancer_attributes("load_balancer_arn")
  %ExAws.Operation.Query{
    path: "/",
    params: %{
      "Action" => "DescribeLoadBalancerAttributes",
      "LoadBalancerArn" => "load_balancer_arn",
      "Version" => "2015-12-01"
    },
    content_encoding: "identity",
    service: :elasticloadbalancing,
    action: :describe_load_balancer_attributes,
    parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
  }

describe_load_balancers(opts \\ [])

@spec describe_load_balancers(describe_load_balancers_opts()) ::
  ExAws.Operation.Query.t()

Describes the specified load balancers or all of your load balancers.

To describe the listeners for a load balancer, use describe_listeners/1. To describe the attributes for a load balancer, use describe_load_balancer_attributes/1.

Examples:

iex> # Describe all load balancers
iex> ExAws.ElasticLoadBalancingV2.describe_load_balancers()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeLoadBalancers", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_load_balancers,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_rules(opts \\ [])

@spec describe_rules(describe_rules_opts()) :: ExAws.Operation.Query.t()

Describes the specified rules or the rules for the specified listener.

You must specify either a listener or one or more rules.

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_rules()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeRules", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_rules,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> ExAws.ElasticLoadBalancingV2.describe_rules([listener_arn: "listener_arn", rule_arns: ["rule_arns"]])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeRules",
    "ListenerArn" => "listener_arn",
    "RuleArns.member.1" => "rule_arns",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_rules,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_ssl_policies(opts \\ [])

@spec describe_ssl_policies(describe_ssl_policies_opts()) :: ExAws.Operation.Query.t()

Describes the specified policies or all policies used for SSL negotiation.

For more information, see:

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_ssl_policies()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeSslPolicies", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_ssl_policies,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> ExAws.ElasticLoadBalancingV2.describe_ssl_policies([ssl_policy_names: ["policy1", "policy2"]])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeSslPolicies",
    "Names.member.1" => "policy1",
    "Names.member.2" => "policy2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_ssl_policies,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_tags(resource_arns)

@spec describe_tags(resource_arns()) :: ExAws.Operation.Query.t()

Describes the tags for the specified Elastic Load Balancing resources

You can describe the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. You can specify up to 20 resources in a single call.

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_tags(["resource_arn1", "resource_arn2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTags",
    "ResourceArns.member.1" => "resource_arn1",
    "ResourceArns.member.2" => "resource_arn2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_tags,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_target_group_attributes(target_group_arn)

@spec describe_target_group_attributes(target_group_arn()) ::
  ExAws.Operation.Query.t()

Describes the attributes for the specified target group.

For more information, see the following:

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_target_group_attributes(["target_group_arn1", "target_group_arn2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTargetGroupAttributes",
    "TargetGroupArn.1" => "target_group_arn1",
    "TargetGroupArn.2" => "target_group_arn2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_group_attributes,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_target_groups(opts \\ [])

@spec describe_target_groups(describe_target_groups_opts()) ::
  ExAws.Operation.Query.t()

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. To describe the targets for a target group, use describe_target_health/1. To describe the attributes of a target group, use describe_target_group_attributes/1.

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_target_groups()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeTargetGroups", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_groups,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = [load_balancer_arn: "load_balancer_arn", target_group_arns: ["target_group_arn1", "target_group_arn2"]]
iex> ExAws.ElasticLoadBalancingV2.describe_target_groups(opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTargetGroups",
    "LoadBalancerArn" => "load_balancer_arn",
    "TargetGroupArns.member.1" => "target_group_arn1",
    "TargetGroupArns.member.2" => "target_group_arn2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_groups,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = %{load_balancer_arn: "load_balancer_arn", target_group_arns: ["target_group_arn1", "target_group_arn2"]}
iex> ExAws.ElasticLoadBalancingV2.describe_target_groups(opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTargetGroups",
    "LoadBalancerArn" => "load_balancer_arn",
    "TargetGroupArns.member.1" => "target_group_arn1",
    "TargetGroupArns.member.2" => "target_group_arn2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_groups,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_target_health(target_group_arn, opts \\ [])

@spec describe_target_health(target_group_arn(), describe_target_health_opts()) ::
  ExAws.Operation.Query.t()

Describes the health of the specified targets or all of your targets

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_target_health("target_group_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTargetHealth",
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_health,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = [include: ["AnomalyDetection"]]
iex> ExAws.ElasticLoadBalancingV2.describe_target_health("target_group_arn", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTargetHealth",
    "Include.member.1" => "AnomalyDetection",
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_target_health,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_trust_store_associations(trust_store_arn, opts \\ [])

@spec describe_trust_store_associations(
  trust_store_arn(),
  describe_trust_store_associations_opts()
) ::
  ExAws.Operation.Query.t()

Describes all resources associated with the specified trust store

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_trust_store_associations("trust_store_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTrustStoreAssociations",
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_store_associations,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_trust_store_revocations(trust_store_arn, opts \\ [])

@spec describe_trust_store_revocations(
  trust_store_arn(),
  describe_trust_store_revocations_opts()
) ::
  ExAws.Operation.Query.t()

Describes the revocation files in use by the specified trust store or revocation files

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_trust_store_revocations("trust_store_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTrustStoreRevocations",
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_store_revocations,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> ExAws.ElasticLoadBalancingV2.describe_trust_store_revocations("trust_store_arn", %{revocation_ids: [3423, 12423]})
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTrustStoreRevocations",
    "RevocationIds.member.1" => 3423,
    "RevocationIds.member.2" => 12423,
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_store_revocations,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

describe_trust_stores(opts \\ [])

@spec describe_trust_stores(describe_trust_stores_opts()) :: ExAws.Operation.Query.t()

Describes all trust stores for the specified account

Examples:

iex> ExAws.ElasticLoadBalancingV2.describe_trust_stores()
%ExAws.Operation.Query{
  path: "/",
  params: %{"Action" => "DescribeTrustStores", "Version" => "2015-12-01"},
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_stores,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = %{trust_store_names: ["trust_store1", "trust_store2"]}
iex> ExAws.ElasticLoadBalancingV2.describe_trust_stores(opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTrustStores",
    "TrustStoreNames.1" => "trust_store1",
    "TrustStoreNames.2" => "trust_store2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_stores,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> opts = %{trust_store_arns: ["arn1", "arn2"]}
iex> ExAws.ElasticLoadBalancingV2.describe_trust_stores(opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "DescribeTrustStores",
    "TrustStoreArns.member.1" => "arn1",
    "TrustStoreArns.member.2" => "arn2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :describe_trust_stores,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

get_resource_policy(resource_arn)

@spec get_resource_policy(resource_arn()) :: ExAws.Operation.Query.t()

Retrieves the resource policy for a specified resource

Examples:

iex> ExAws.ElasticLoadBalancingV2.get_resource_policy("resource_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "GetResourcePolicy",
    "ResourceArn" => "resource_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :get_resource_policy,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

get_trust_store_ca_certificates_bundle(trust_store_arn)

@spec get_trust_store_ca_certificates_bundle(trust_store_arn()) ::
  ExAws.Operation.Query.t()

Retrieves the CA certificates bundle for the specified trust store

This action returns a pre-signed S3 URI which is active for ten minutes.

Examples:

iex> ExAws.ElasticLoadBalancingV2.get_trust_store_ca_certificates_bundle("trust_store_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "GetTrustStoreCaCertificatesBundle",
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :get_trust_store_ca_certificates_bundle,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

get_trust_store_revocation_content(trust_store_arn, revocation_id)

@spec get_trust_store_revocation_content(trust_store_arn(), revocation_id()) ::
  ExAws.Operation.Query.t()

Retrieves the specified revocation file.

This action returns a pre-signed S3 URI which is active for ten minutes.

Examples:

iex> ExAws.ElasticLoadBalancingV2.get_trust_store_revocation_content("trust_store_arn", 2134342)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "GetTrustStoreRevocationContent",
    "RevocationId" => 2134342,
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :get_trust_store_revocation_content,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_capacity_reservation(load_balancer_arn, opts \\ [])

@spec modify_capacity_reservation(
  load_balancer_arn(),
  modify_capacity_reservation_opts()
) ::
  ExAws.Operation.Query.t()

Modifies the capacity reservation of the specified load balancer.

When modifying capacity reservation, you must include at least one :minimum_load_balancer_capacity or :reset_capacity_reservation.

Examples:

iex> ExAws.ElasticLoadBalancingV2.modify_capacity_reservation("load_balancer_arn", minimum_load_balancer_capacity: 5)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyCapacityReservation",
    "LoadBalancerArn" => "load_balancer_arn",
    "MinimumLoadBalancerCapacity" => 5,
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_capacity_reservation,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_ip_pools(load_balancer_arn, opts \\ [])

[Application Load Balancers] Modify the IP pool associated to a load balancer.

Examples:

iex> ExAws.ElasticLoadBalancingV2.modify_ip_pools("load_balancer_arn", ipam_pools: [%{ipv4_ipam_pool_id: "pool1"}])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyIpPools",
    "IpamPools.member.1.Ipv4IpamPoolId" => "pool1",
    "LoadBalancerArn" => "load_balancer_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_ip_pools,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_listener(listener_arn, opts \\ [])

@spec modify_listener(listener_arn(), modify_listener_opts()) ::
  ExAws.Operation.Query.t()

Modifies the specified properties of the specified listener.

Any properties that you do not specify retain their current values. However, changing the protocol from HTTPS to HTTP removes the security policy and SSL certificate properties. If you change the protocol from HTTP to HTTPS, you must add the security policy and server certificate.

Examples:

iex> ExAws.ElasticLoadBalancingV2.modify_listener("listener_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyListener",
    "ListenerArn" => "listener_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_listener,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> opts = [port: 80, protocol: "HTTP", certificates: ["certificate1", "certificate2"]]
iex> ExAws.ElasticLoadBalancingV2.modify_listener("listener_arn", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyListener",
    "Certificates.member.1" => "certificate1",
    "Certificates.member.2" => "certificate2",
    "ListenerArn" => "listener_arn",
    "Port" => 80,
    "Protocol" => "HTTP",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_listener,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_listener_attributes(listener_arn, attributes)

@spec modify_listener_attributes(listener_arn(), [listener_attribute(), ...]) ::
  ExAws.Operation.Query.t()

Modifies the specified attributes of the specified listener.

modify_load_balancer_attributes(load_balancer_arn, attributes)

@spec modify_load_balancer_attributes(load_balancer_arn(), [
  load_balancer_attribute(),
  ...
]) ::
  ExAws.Operation.Query.t()

Modifies the specified attributes of the specified Application Load Balancer or Network 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.

modify_rule(rule_arn, opts \\ [])

@spec modify_rule(rule_arn(), modify_rule_opts()) :: ExAws.Operation.Query.t()

Modifies the specified rule.

Any existing properties that you do not modify retain their current values. To modify the actions for the default rule, use modify_listener/1.

modify_target_group(target_group_arn, opts \\ [])

Modifies the health checks used when evaluating the health state of the targets in the specified target group.

To monitor the health of the targets, use describe_target_health/1.

Examples:

iex> ExAws.ElasticLoadBalancingV2.modify_target_group("target_group_arn")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyTargetGroup",
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_target_group,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

iex> opts = [heath_check_port: 8088, health_check_protocol: "HTTP", health_check_path: "/"]
[heath_check_port: 8088, health_check_protocol: "HTTP", health_check_path: "/"]
iex> ExAws.ElasticLoadBalancingV2.modify_target_group("target_group_arn", opts)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyTargetGroup",
    "HealthCheckPath" => "/",
    "HealthCheckProtocol" => "HTTP",
    "HeathCheckPort" => 8088,
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_target_group,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_target_group_attributes(target_group_arn, attributes)

@spec modify_target_group_attributes(target_group_arn(), target_group_attributes()) ::
  ExAws.Operation.Query.t()

Modifies the specified attributes of the specified target group.

Examples:

iex> attributes = [{:hello, "test"}]
iex> ExAws.ElasticLoadBalancingV2.modify_target_group_attributes("target_group_arn", attributes)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyTargetGroupAttributes",
    "Attributes.member.1.Key" => "hello",
    "Attributes.member.1.Value" => "test",
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_target_group_attributes,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}
iex> attributes = [%{key: "hello", value: "test"}, %{key: "goodbye", value: "farewell"}]
iex> ExAws.ElasticLoadBalancingV2.modify_target_group_attributes("target_group_arn", attributes)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyTargetGroupAttributes",
    "Attributes.member.1.Key" => "hello",
    "Attributes.member.1.Value" => "test",
    "Attributes.member.2.Key" => "goodbye",
    "Attributes.member.2.Value" => "farewell",
    "TargetGroupArn" => "target_group_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_target_group_attributes,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

modify_trust_store(trust_store_arn, ca_certificates_bundle_s3_bucket, ca_certificates_bundle_s3_key, opts \\ [])

Update the ca certificate bundle for the specified trust store.

Examples:

iex> ExAws.ElasticLoadBalancingV2.modify_trust_store("trust_store_arn", "s3_bucket", "s3_key")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "ModifyTrustStore",
    "CaCertificatesBundleS3Bucket" => "s3_bucket",
    "CaCertificatesBundleS3Key" => "s3_key",
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :modify_trust_store,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

register_targets(target_group_arn, targets)

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.

For more information, see the following:

  • Register targets for your Application Load Balancer
  • Register targets for your Network Load Balancer
  • Register targets for your Gateway Load Balancer

To remove a target from a target group, use deregister_targets/2.

Examples:

iex> ExAws.ElasticLoadBalancingV2.register_targets("target_group_arn", ["target1", "target2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "RegisterTargets",
    "TargetGroupArn" => "target_group_arn",
    "Targets.member.1" => "target1",
    "Targets.member.2" => "target2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :register_targets,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

remove_listener_certificates(listener_arn, certificates)

@spec remove_listener_certificates(listener_arn(), certificates()) ::
  ExAws.Operation.Query.t()

Removes the specified certificate from the specified secure listener.

You can't remove the default certificate for a listener. To replace the default certificate, call modify_listener/1. To list the certificates for your listener, use describe_listener_certificates/1.

Examples:

iex> certificates = [%{certificate_arn: "certificate1_arn", is_default: true}, %{certificate_arn: "certificate2_arn"}]
[
  %{certificate_arn: "certificate1_arn", is_default: true},
  %{certificate_arn: "certificate2_arn"}
]
iex> ExAws.ElasticLoadBalancingV2.remove_listener_certificates("listener_arn", certificates)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "RemoveListenerCertificates",
    "Certificates.member.1.CertificateArn" => "certificate1_arn",
    "Certificates.member.1.IsDefault" => true,
    "Certificates.member.2.CertificateArn" => "certificate2_arn",
    "ListenerArn" => "listener_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :remove_listener_certificates,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

remove_tags(resource_arns, tag_keys)

@spec remove_tags(resource_arns(), tag_keys()) :: ExAws.Operation.Query.t()

Removes the specified tags from the specified Elastic Load Balancing resources

You can remove the tags for one or more Application Load Balancers, Network Load Balancers, Gateway Load Balancers, target groups, listeners, or rules.

To list the current tags for your resources, use describe_tags/1.

Examples:

iex> ExAws.ElasticLoadBalancingV2.remove_tags(["resource_arn1", "resource_arn2"], ["tag1", "tag2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "RemoveTags",
    "ResourceArns.member.1" => "resource_arn1",
    "ResourceArns.member.2" => "resource_arn2",
    "TagsKeys.1" => "tag1",
    "TagsKeys.2" => "tag2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :remove_tags,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

remove_trust_store_revocations(trust_store_arn, revocation_ids)

@spec remove_trust_store_revocations(trust_store_arn(), revocation_ids()) ::
  ExAws.Operation.Query.t()

Removes the specified revocation files from the specified trust store

Examples:

iex> ExAws.ElasticLoadBalancingV2.remove_trust_store_revocations("trust_store_arn", [1234, 5678])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "RemoveTrustStoreRevocations",
    "RevocationIds.member.1" => 1234,
    "RevocationIds.member.2" => 5678,
    "TrustStoreArn" => "trust_store_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :remove_trust_store_revocations,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

set_ip_address_type(load_balancer_arn, ip_address_type)

@spec set_ip_address_type(load_balancer_arn(), ip_address_type()) ::
  ExAws.Operation.Query.t()

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

Note: Network Load Balancers must use ipv4.

Examples:

iex> ExAws.ElasticLoadBalancingV2.set_ip_address_type("load_balancer_arn", "ipv4")
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "SetIpAddressType",
    "IpAddressType" => "ipv4",
    "LoadBalancerArn" => "load_balancer_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :set_ip_address_type,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

set_rule_priorities(rule_priorities)

@spec set_rule_priorities(rule_priorities()) :: ExAws.Operation.Query.t()

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.

Examples:

iex> rule_priorities = [%{rule_arn: "rule1_arn", priority: 1}, %{rule_arn: "rule2_arn", priority: 2}]
iex> ExAws.ElasticLoadBalancingV2.set_rule_priorities(rule_priorities)
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "SetRulePriorities",
    "RulePriorities.member.1.Priority" => 1,
    "RulePriorities.member.1.RuleArn" => "rule1_arn",
    "RulePriorities.member.2.Priority" => 2,
    "RulePriorities.member.2.RuleArn" => "rule2_arn",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :set_rule_priorities,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

set_security_groups(load_balancer_arn, security_groups, opts \\ [])

Associates the specified security groups with the specified Application Load Balancer.

The specified security groups override the previously associated security groups.

Note: You can't specify a security group for a Network Load Balancer.

Examples:

iex>  ExAws.ElasticLoadBalancingV2.set_security_groups("load_balancer_arn", ["security_group1", "security_group2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "SetSecurityGroups",
    "LoadBalancerArn" => "load_balancer_arn",
    "SecurityGroups.member.1" => "security_group1",
    "SecurityGroups.member.2" => "security_group2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :set_security_groups,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}

set_subnets(load_balancer_arn, subnets, opts \\ [])

Enables the Availability Zones for the specified public subnets for the specified Application Load Balancer, Network Load Balancer or Gateway Load Balancer

The specified subnets replace the previously enabled subnets.

Examples:

iex>  ExAws.ElasticLoadBalancingV2.set_subnets("load_balancer_arn", ["subnet1", "subnet2"])
%ExAws.Operation.Query{
  path: "/",
  params: %{
    "Action" => "SetSubnets",
    "LoadBalancerArn" => "load_balancer_arn",
    "Subnets.member.1" => "subnet1",
    "Subnets.member.2" => "subnet2",
    "Version" => "2015-12-01"
  },
  content_encoding: "identity",
  service: :elasticloadbalancing,
  action: :set_subnets,
  parser: &ExAws.ElasticLoadBalancingV2.Parsers.parse/2
}