%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE! %% See https://github.com/aws-beam/aws-codegen for more details. %% @doc Elastic Load Balancing %% %% A load balancer can distribute incoming traffic across your EC2 instances. %% %% This enables you to increase the availability of your application. The %% load balancer also monitors the health of its registered instances and %% ensures that it routes traffic only to healthy instances. You configure %% your load balancer to accept incoming traffic by specifying one or more %% listeners, which are configured with a protocol and port number for %% connections from clients to the load balancer and a protocol and port %% number for connections from the load balancer to the instances. %% %% Elastic Load Balancing supports three types of load balancers: Application %% Load Balancers, Network Load Balancers, and Classic Load Balancers. You %% can select a load balancer based on your application needs. For more %% information, see the Elastic Load Balancing User Guide. %% %% This reference covers the 2012-06-01 API, which supports Classic Load %% Balancers. The 2015-12-01 API supports Application Load Balancers and %% Network Load Balancers. %% %% To get started, create a load balancer with one or more listeners using %% `CreateLoadBalancer'. Register your instances with the load balancer using %% `RegisterInstancesWithLoadBalancer'. %% %% All Elastic Load Balancing operations are idempotent, which means that %% they complete at most one time. If you repeat an operation, it succeeds %% with a 200 OK response code. -module(aws_elastic_load_balancing). -export([add_tags/2, add_tags/3, apply_security_groups_to_load_balancer/2, apply_security_groups_to_load_balancer/3, attach_load_balancer_to_subnets/2, attach_load_balancer_to_subnets/3, configure_health_check/2, configure_health_check/3, create_app_cookie_stickiness_policy/2, create_app_cookie_stickiness_policy/3, create_lb_cookie_stickiness_policy/2, create_lb_cookie_stickiness_policy/3, create_load_balancer/2, create_load_balancer/3, create_load_balancer_listeners/2, create_load_balancer_listeners/3, create_load_balancer_policy/2, create_load_balancer_policy/3, delete_load_balancer/2, delete_load_balancer/3, delete_load_balancer_listeners/2, delete_load_balancer_listeners/3, delete_load_balancer_policy/2, delete_load_balancer_policy/3, deregister_instances_from_load_balancer/2, deregister_instances_from_load_balancer/3, describe_account_limits/2, describe_account_limits/3, describe_instance_health/2, describe_instance_health/3, describe_load_balancer_attributes/2, describe_load_balancer_attributes/3, describe_load_balancer_policies/2, describe_load_balancer_policies/3, describe_load_balancer_policy_types/2, describe_load_balancer_policy_types/3, describe_load_balancers/2, describe_load_balancers/3, describe_tags/2, describe_tags/3, detach_load_balancer_from_subnets/2, detach_load_balancer_from_subnets/3, disable_availability_zones_for_load_balancer/2, disable_availability_zones_for_load_balancer/3, enable_availability_zones_for_load_balancer/2, enable_availability_zones_for_load_balancer/3, modify_load_balancer_attributes/2, modify_load_balancer_attributes/3, register_instances_with_load_balancer/2, register_instances_with_load_balancer/3, remove_tags/2, remove_tags/3, set_load_balancer_listener_ssl_certificate/2, set_load_balancer_listener_ssl_certificate/3, set_load_balancer_policies_for_backend_server/2, set_load_balancer_policies_for_backend_server/3, set_load_balancer_policies_of_listener/2, set_load_balancer_policies_of_listener/3]). -include_lib("hackney/include/hackney_lib.hrl"). %%==================================================================== %% API %%==================================================================== %% @doc Adds the specified tags to the specified load balancer. %% %% Each load balancer can have a maximum of 10 tags. %% %% Each tag consists of a key and an optional value. If a tag with the same %% key is already associated with the load balancer, `AddTags' updates its %% value. %% %% For more information, see Tag Your Classic Load Balancer in the Classic %% Load Balancers Guide. add_tags(Client, Input) when is_map(Client), is_map(Input) -> add_tags(Client, Input, []). add_tags(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddTags">>, Input, Options). %% @doc Associates one or more security groups with your load balancer in a %% virtual private cloud (VPC). %% %% The specified security groups override the previously associated security %% groups. %% %% For more information, see Security Groups for Load Balancers in a VPC in %% the Classic Load Balancers Guide. apply_security_groups_to_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> apply_security_groups_to_load_balancer(Client, Input, []). apply_security_groups_to_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ApplySecurityGroupsToLoadBalancer">>, Input, Options). %% @doc Adds one or more subnets to the set of configured subnets for the %% specified load balancer. %% %% The load balancer evenly distributes requests across all registered %% subnets. For more information, see Add or Remove Subnets for Your Load %% Balancer in a VPC in the Classic Load Balancers Guide. attach_load_balancer_to_subnets(Client, Input) when is_map(Client), is_map(Input) -> attach_load_balancer_to_subnets(Client, Input, []). attach_load_balancer_to_subnets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AttachLoadBalancerToSubnets">>, Input, Options). %% @doc Specifies the health check settings to use when evaluating the health %% state of your EC2 instances. %% %% For more information, see Configure Health Checks for Your Load Balancer %% in the Classic Load Balancers Guide. configure_health_check(Client, Input) when is_map(Client), is_map(Input) -> configure_health_check(Client, Input, []). configure_health_check(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ConfigureHealthCheck">>, Input, Options). %% @doc Generates a stickiness policy with sticky session lifetimes that %% follow that of an application-generated cookie. %% %% This policy can be associated only with HTTP/HTTPS listeners. %% %% This policy is similar to the policy created by %% `CreateLBCookieStickinessPolicy', except that the lifetime of the special %% Elastic Load Balancing cookie, `AWSELB', follows the lifetime of the %% application-generated cookie specified in the policy configuration. The %% load balancer only inserts a new stickiness cookie when the application %% response includes a new application cookie. %% %% If the application cookie is explicitly removed or expires, the session %% stops being sticky until a new application cookie is issued. %% %% For more information, see Application-Controlled Session Stickiness in the %% Classic Load Balancers Guide. create_app_cookie_stickiness_policy(Client, Input) when is_map(Client), is_map(Input) -> create_app_cookie_stickiness_policy(Client, Input, []). create_app_cookie_stickiness_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateAppCookieStickinessPolicy">>, Input, Options). %% @doc Generates a stickiness policy with sticky session lifetimes %% controlled by the lifetime of the browser (user-agent) or a specified %% expiration period. %% %% This policy can be associated only with HTTP/HTTPS listeners. %% %% When a load balancer implements this policy, the load balancer uses a %% special cookie to track the instance for each request. When the load %% balancer receives a request, it first checks to see if this cookie is %% present in the request. If so, the load balancer sends the request to the %% application server specified in the cookie. If not, the load balancer %% sends the request to a server that is chosen based on the existing %% load-balancing algorithm. %% %% A cookie is inserted into the response for binding subsequent requests %% from the same user to that server. The validity of the cookie is based on %% the cookie expiration time, which is specified in the policy %% configuration. %% %% For more information, see Duration-Based Session Stickiness in the Classic %% Load Balancers Guide. create_lb_cookie_stickiness_policy(Client, Input) when is_map(Client), is_map(Input) -> create_lb_cookie_stickiness_policy(Client, Input, []). create_lb_cookie_stickiness_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateLBCookieStickinessPolicy">>, Input, Options). %% @doc Creates a Classic Load Balancer. %% %% You can add listeners, security groups, subnets, and tags when you create %% your load balancer, or you can add them later using %% `CreateLoadBalancerListeners', `ApplySecurityGroupsToLoadBalancer', %% `AttachLoadBalancerToSubnets', and `AddTags'. %% %% To describe your current load balancers, see `DescribeLoadBalancers'. When %% you are finished with a load balancer, you can delete it using %% `DeleteLoadBalancer'. %% %% 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 Limits for Your Classic Load Balancer in the Classic %% Load Balancers Guide. create_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> create_load_balancer(Client, Input, []). create_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateLoadBalancer">>, Input, Options). %% @doc Creates one or more listeners for the specified load balancer. %% %% If a listener with the specified port does not already exist, it is %% created; otherwise, the properties of the new listener must match the %% properties of the existing listener. %% %% For more information, see Listeners for Your Classic Load Balancer in the %% Classic Load Balancers Guide. create_load_balancer_listeners(Client, Input) when is_map(Client), is_map(Input) -> create_load_balancer_listeners(Client, Input, []). create_load_balancer_listeners(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateLoadBalancerListeners">>, Input, Options). %% @doc Creates a policy with the specified attributes for the specified load %% balancer. %% %% Policies are settings that are saved for your load balancer and that can %% be applied to the listener or the application server, depending on the %% policy type. create_load_balancer_policy(Client, Input) when is_map(Client), is_map(Input) -> create_load_balancer_policy(Client, Input, []). create_load_balancer_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateLoadBalancerPolicy">>, Input, Options). %% @doc Deletes the specified load balancer. %% %% If you are attempting to recreate a load balancer, you must reconfigure %% all settings. The DNS name associated with a deleted load balancer are no %% longer usable. The name and associated DNS record of the deleted load %% balancer no longer exist and traffic sent to any of its IP addresses is no %% longer delivered to your instances. %% %% If the load balancer does not exist or has already been deleted, the call %% to `DeleteLoadBalancer' still succeeds. delete_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> delete_load_balancer(Client, Input, []). delete_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteLoadBalancer">>, Input, Options). %% @doc Deletes the specified listeners from the specified load balancer. delete_load_balancer_listeners(Client, Input) when is_map(Client), is_map(Input) -> delete_load_balancer_listeners(Client, Input, []). delete_load_balancer_listeners(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteLoadBalancerListeners">>, Input, Options). %% @doc Deletes the specified policy from the specified load balancer. %% %% This policy must not be enabled for any listeners. delete_load_balancer_policy(Client, Input) when is_map(Client), is_map(Input) -> delete_load_balancer_policy(Client, Input, []). delete_load_balancer_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteLoadBalancerPolicy">>, Input, Options). %% @doc Deregisters the specified instances from the specified load balancer. %% %% After the instance is deregistered, it no longer receives traffic from the %% load balancer. %% %% You can use `DescribeLoadBalancers' to verify that the instance is %% deregistered from the load balancer. %% %% For more information, see Register or De-Register EC2 Instances in the %% Classic Load Balancers Guide. deregister_instances_from_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> deregister_instances_from_load_balancer(Client, Input, []). deregister_instances_from_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeregisterInstancesFromLoadBalancer">>, Input, Options). %% @doc Describes the current Elastic Load Balancing resource limits for your %% AWS account. %% %% For more information, see Limits for Your Classic Load Balancer in the %% Classic Load Balancers Guide. describe_account_limits(Client, Input) when is_map(Client), is_map(Input) -> describe_account_limits(Client, Input, []). describe_account_limits(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeAccountLimits">>, Input, Options). %% @doc Describes the state of the specified instances with respect to the %% specified load balancer. %% %% If no instances are specified, the call describes the state of all %% instances that are currently registered with the load balancer. If %% instances are specified, their state is returned even if they are no %% longer registered with the load balancer. The state of terminated %% instances is not returned. describe_instance_health(Client, Input) when is_map(Client), is_map(Input) -> describe_instance_health(Client, Input, []). describe_instance_health(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeInstanceHealth">>, Input, Options). %% @doc Describes the attributes for the specified load balancer. describe_load_balancer_attributes(Client, Input) when is_map(Client), is_map(Input) -> describe_load_balancer_attributes(Client, Input, []). describe_load_balancer_attributes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeLoadBalancerAttributes">>, Input, Options). %% @doc Describes the specified policies. %% %% If you specify a load balancer name, the action returns the descriptions %% of all policies created for the load balancer. If you specify a policy %% name associated with your load balancer, the action returns the %% description of that policy. If you don't specify a load balancer name, the %% action returns descriptions of the specified sample policies, or %% descriptions of all sample policies. The names of the sample policies have %% the `ELBSample-' prefix. describe_load_balancer_policies(Client, Input) when is_map(Client), is_map(Input) -> describe_load_balancer_policies(Client, Input, []). describe_load_balancer_policies(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeLoadBalancerPolicies">>, Input, Options). %% @doc Describes the specified load balancer policy types or all load %% balancer policy types. %% %% The description of each type indicates how it can be used. For example, %% some policies can be used only with layer 7 listeners, some policies can %% be used only with layer 4 listeners, and some policies can be used only %% with your EC2 instances. %% %% You can use `CreateLoadBalancerPolicy' to create a policy configuration %% for any of these policy types. Then, depending on the policy type, use %% either `SetLoadBalancerPoliciesOfListener' or %% `SetLoadBalancerPoliciesForBackendServer' to set the policy. describe_load_balancer_policy_types(Client, Input) when is_map(Client), is_map(Input) -> describe_load_balancer_policy_types(Client, Input, []). describe_load_balancer_policy_types(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeLoadBalancerPolicyTypes">>, Input, Options). %% @doc Describes the specified the load balancers. %% %% If no load balancers are specified, the call describes all of your load %% balancers. describe_load_balancers(Client, Input) when is_map(Client), is_map(Input) -> describe_load_balancers(Client, Input, []). describe_load_balancers(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeLoadBalancers">>, Input, Options). %% @doc Describes the tags associated with the specified load balancers. describe_tags(Client, Input) when is_map(Client), is_map(Input) -> describe_tags(Client, Input, []). describe_tags(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeTags">>, Input, Options). %% @doc Removes the specified subnets from the set of configured subnets for %% the load balancer. %% %% After a subnet is removed, all EC2 instances registered with the load %% balancer in the removed subnet go into the `OutOfService' state. Then, the %% load balancer balances the traffic among the remaining routable subnets. detach_load_balancer_from_subnets(Client, Input) when is_map(Client), is_map(Input) -> detach_load_balancer_from_subnets(Client, Input, []). detach_load_balancer_from_subnets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DetachLoadBalancerFromSubnets">>, Input, Options). %% @doc Removes the specified Availability Zones from the set of Availability %% Zones for the specified load balancer in EC2-Classic or a default VPC. %% %% For load balancers in a non-default VPC, use %% `DetachLoadBalancerFromSubnets'. %% %% There must be at least one Availability Zone registered with a load %% balancer at all times. After an Availability Zone is removed, all %% instances registered with the load balancer that are in the removed %% Availability Zone go into the `OutOfService' state. Then, the load %% balancer attempts to equally balance the traffic among its remaining %% Availability Zones. %% %% For more information, see Add or Remove Availability Zones in the Classic %% Load Balancers Guide. disable_availability_zones_for_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> disable_availability_zones_for_load_balancer(Client, Input, []). disable_availability_zones_for_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DisableAvailabilityZonesForLoadBalancer">>, Input, Options). %% @doc Adds the specified Availability Zones to the set of Availability %% Zones for the specified load balancer in EC2-Classic or a default VPC. %% %% For load balancers in a non-default VPC, use %% `AttachLoadBalancerToSubnets'. %% %% The load balancer evenly distributes requests across all its registered %% Availability Zones that contain instances. For more information, see Add %% or Remove Availability Zones in the Classic Load Balancers Guide. enable_availability_zones_for_load_balancer(Client, Input) when is_map(Client), is_map(Input) -> enable_availability_zones_for_load_balancer(Client, Input, []). enable_availability_zones_for_load_balancer(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"EnableAvailabilityZonesForLoadBalancer">>, Input, Options). %% @doc Modifies the attributes of the specified load balancer. %% %% You can modify the load balancer attributes, such as `AccessLogs', %% `ConnectionDraining', and `CrossZoneLoadBalancing' by either enabling or %% disabling them. Or, you can modify the load balancer attribute %% `ConnectionSettings' by specifying an idle connection timeout value for %% your load balancer. %% %% For more information, see the following in the Classic Load Balancers %% Guide: %% %%