/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace ElasticLoadBalancingv2 { namespace Model { class AddListenerCertificatesRequest; class AddTagsRequest; class CreateListenerRequest; class CreateLoadBalancerRequest; class CreateRuleRequest; class CreateTargetGroupRequest; class DeleteListenerRequest; class DeleteLoadBalancerRequest; class DeleteRuleRequest; class DeleteTargetGroupRequest; class DeregisterTargetsRequest; class DescribeAccountLimitsRequest; class DescribeListenerCertificatesRequest; class DescribeListenersRequest; class DescribeLoadBalancerAttributesRequest; class DescribeLoadBalancersRequest; class DescribeRulesRequest; class DescribeSSLPoliciesRequest; class DescribeTagsRequest; class DescribeTargetGroupAttributesRequest; class DescribeTargetGroupsRequest; class DescribeTargetHealthRequest; class ModifyListenerRequest; class ModifyLoadBalancerAttributesRequest; class ModifyRuleRequest; class ModifyTargetGroupRequest; class ModifyTargetGroupAttributesRequest; class RegisterTargetsRequest; class RemoveListenerCertificatesRequest; class RemoveTagsRequest; class SetIpAddressTypeRequest; class SetRulePrioritiesRequest; class SetSecurityGroupsRequest; class SetSubnetsRequest; typedef Aws::Utils::Outcome AddListenerCertificatesOutcome; typedef Aws::Utils::Outcome AddTagsOutcome; typedef Aws::Utils::Outcome CreateListenerOutcome; typedef Aws::Utils::Outcome CreateLoadBalancerOutcome; typedef Aws::Utils::Outcome CreateRuleOutcome; typedef Aws::Utils::Outcome CreateTargetGroupOutcome; typedef Aws::Utils::Outcome DeleteListenerOutcome; typedef Aws::Utils::Outcome DeleteLoadBalancerOutcome; typedef Aws::Utils::Outcome DeleteRuleOutcome; typedef Aws::Utils::Outcome DeleteTargetGroupOutcome; typedef Aws::Utils::Outcome DeregisterTargetsOutcome; typedef Aws::Utils::Outcome DescribeAccountLimitsOutcome; typedef Aws::Utils::Outcome DescribeListenerCertificatesOutcome; typedef Aws::Utils::Outcome DescribeListenersOutcome; typedef Aws::Utils::Outcome DescribeLoadBalancerAttributesOutcome; typedef Aws::Utils::Outcome DescribeLoadBalancersOutcome; typedef Aws::Utils::Outcome DescribeRulesOutcome; typedef Aws::Utils::Outcome DescribeSSLPoliciesOutcome; typedef Aws::Utils::Outcome DescribeTagsOutcome; typedef Aws::Utils::Outcome DescribeTargetGroupAttributesOutcome; typedef Aws::Utils::Outcome DescribeTargetGroupsOutcome; typedef Aws::Utils::Outcome DescribeTargetHealthOutcome; typedef Aws::Utils::Outcome ModifyListenerOutcome; typedef Aws::Utils::Outcome ModifyLoadBalancerAttributesOutcome; typedef Aws::Utils::Outcome ModifyRuleOutcome; typedef Aws::Utils::Outcome ModifyTargetGroupOutcome; typedef Aws::Utils::Outcome ModifyTargetGroupAttributesOutcome; typedef Aws::Utils::Outcome RegisterTargetsOutcome; typedef Aws::Utils::Outcome RemoveListenerCertificatesOutcome; typedef Aws::Utils::Outcome RemoveTagsOutcome; typedef Aws::Utils::Outcome SetIpAddressTypeOutcome; typedef Aws::Utils::Outcome SetRulePrioritiesOutcome; typedef Aws::Utils::Outcome SetSecurityGroupsOutcome; typedef Aws::Utils::Outcome SetSubnetsOutcome; typedef std::future AddListenerCertificatesOutcomeCallable; typedef std::future AddTagsOutcomeCallable; typedef std::future CreateListenerOutcomeCallable; typedef std::future CreateLoadBalancerOutcomeCallable; typedef std::future CreateRuleOutcomeCallable; typedef std::future CreateTargetGroupOutcomeCallable; typedef std::future DeleteListenerOutcomeCallable; typedef std::future DeleteLoadBalancerOutcomeCallable; typedef std::future DeleteRuleOutcomeCallable; typedef std::future DeleteTargetGroupOutcomeCallable; typedef std::future DeregisterTargetsOutcomeCallable; typedef std::future DescribeAccountLimitsOutcomeCallable; typedef std::future DescribeListenerCertificatesOutcomeCallable; typedef std::future DescribeListenersOutcomeCallable; typedef std::future DescribeLoadBalancerAttributesOutcomeCallable; typedef std::future DescribeLoadBalancersOutcomeCallable; typedef std::future DescribeRulesOutcomeCallable; typedef std::future DescribeSSLPoliciesOutcomeCallable; typedef std::future DescribeTagsOutcomeCallable; typedef std::future DescribeTargetGroupAttributesOutcomeCallable; typedef std::future DescribeTargetGroupsOutcomeCallable; typedef std::future DescribeTargetHealthOutcomeCallable; typedef std::future ModifyListenerOutcomeCallable; typedef std::future ModifyLoadBalancerAttributesOutcomeCallable; typedef std::future ModifyRuleOutcomeCallable; typedef std::future ModifyTargetGroupOutcomeCallable; typedef std::future ModifyTargetGroupAttributesOutcomeCallable; typedef std::future RegisterTargetsOutcomeCallable; typedef std::future RemoveListenerCertificatesOutcomeCallable; typedef std::future RemoveTagsOutcomeCallable; typedef std::future SetIpAddressTypeOutcomeCallable; typedef std::future SetRulePrioritiesOutcomeCallable; typedef std::future SetSecurityGroupsOutcomeCallable; typedef std::future SetSubnetsOutcomeCallable; } // namespace Model class ElasticLoadBalancingv2Client; typedef std::function&) > AddListenerCertificatesResponseReceivedHandler; typedef std::function&) > AddTagsResponseReceivedHandler; typedef std::function&) > CreateListenerResponseReceivedHandler; typedef std::function&) > CreateLoadBalancerResponseReceivedHandler; typedef std::function&) > CreateRuleResponseReceivedHandler; typedef std::function&) > CreateTargetGroupResponseReceivedHandler; typedef std::function&) > DeleteListenerResponseReceivedHandler; typedef std::function&) > DeleteLoadBalancerResponseReceivedHandler; typedef std::function&) > DeleteRuleResponseReceivedHandler; typedef std::function&) > DeleteTargetGroupResponseReceivedHandler; typedef std::function&) > DeregisterTargetsResponseReceivedHandler; typedef std::function&) > DescribeAccountLimitsResponseReceivedHandler; typedef std::function&) > DescribeListenerCertificatesResponseReceivedHandler; typedef std::function&) > DescribeListenersResponseReceivedHandler; typedef std::function&) > DescribeLoadBalancerAttributesResponseReceivedHandler; typedef std::function&) > DescribeLoadBalancersResponseReceivedHandler; typedef std::function&) > DescribeRulesResponseReceivedHandler; typedef std::function&) > DescribeSSLPoliciesResponseReceivedHandler; typedef std::function&) > DescribeTagsResponseReceivedHandler; typedef std::function&) > DescribeTargetGroupAttributesResponseReceivedHandler; typedef std::function&) > DescribeTargetGroupsResponseReceivedHandler; typedef std::function&) > DescribeTargetHealthResponseReceivedHandler; typedef std::function&) > ModifyListenerResponseReceivedHandler; typedef std::function&) > ModifyLoadBalancerAttributesResponseReceivedHandler; typedef std::function&) > ModifyRuleResponseReceivedHandler; typedef std::function&) > ModifyTargetGroupResponseReceivedHandler; typedef std::function&) > ModifyTargetGroupAttributesResponseReceivedHandler; typedef std::function&) > RegisterTargetsResponseReceivedHandler; typedef std::function&) > RemoveListenerCertificatesResponseReceivedHandler; typedef std::function&) > RemoveTagsResponseReceivedHandler; typedef std::function&) > SetIpAddressTypeResponseReceivedHandler; typedef std::function&) > SetRulePrioritiesResponseReceivedHandler; typedef std::function&) > SetSecurityGroupsResponseReceivedHandler; typedef std::function&) > SetSubnetsResponseReceivedHandler; /** * Elastic Load Balancing

A load balancer distributes * incoming traffic across targets, such as your EC2 instances. This enables you to * increase the availability of your application. The load balancer also monitors * the health of its registered targets and ensures that it routes traffic only to * healthy targets. 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. You configure a target * group with a protocol and port number for connections from the load balancer to * the targets, and with health check settings to be used when checking the health * status of the targets.

Elastic Load Balancing supports the following * types of load balancers: Application Load Balancers, Network Load Balancers, and * Classic Load Balancers. This reference covers Application Load Balancers and * Network Load Balancers.

An Application Load Balancer makes routing and * load balancing decisions at the application layer (HTTP/HTTPS). A Network Load * Balancer makes routing and load balancing decisions at the transport layer * (TCP/TLS). Both Application Load Balancers and Network Load Balancers can route * requests to one or more ports on each EC2 instance or container instance in your * virtual private cloud (VPC). For more information, see the Elastic * Load Balancing User Guide.

All Elastic Load Balancing operations are * idempotent, which means that they complete at most one time. If you repeat an * operation, it succeeds.

*/ class AWS_ELASTICLOADBALANCINGV2_API ElasticLoadBalancingv2Client : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElasticLoadBalancingv2Client(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ElasticLoadBalancingv2Client(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ElasticLoadBalancingv2Client(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~ElasticLoadBalancingv2Client(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

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 get the certificate list for a listener, use * DescribeListenerCertificates. To remove certificates from the certificate * list for a listener, use RemoveListenerCertificates. To replace the * default certificate for a listener, use ModifyListener.

For more * information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

*/ virtual Model::AddListenerCertificatesOutcome AddListenerCertificates(const Model::AddListenerCertificatesRequest& request) const; /** *

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 get the certificate list for a listener, use * DescribeListenerCertificates. To remove certificates from the certificate * list for a listener, use RemoveListenerCertificates. To replace the * default certificate for a listener, use ModifyListener.

For more * information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddListenerCertificatesOutcomeCallable AddListenerCertificatesCallable(const Model::AddListenerCertificatesRequest& request) const; /** *

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 get the certificate list for a listener, use * DescribeListenerCertificates. To remove certificates from the certificate * list for a listener, use RemoveListenerCertificates. To replace the * default certificate for a listener, use ModifyListener.

For more * information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddListenerCertificatesAsync(const Model::AddListenerCertificatesRequest& request, const AddListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds the specified tags to the specified Elastic Load Balancing resource. You * can tag your Application Load Balancers, Network Load Balancers, and your target * groups.

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

*

To list the current tags for your resources, use DescribeTags. To * remove tags from your resources, use RemoveTags.

See Also:

* AWS * API Reference

*/ virtual Model::AddTagsOutcome AddTags(const Model::AddTagsRequest& request) const; /** *

Adds the specified tags to the specified Elastic Load Balancing resource. You * can tag your Application Load Balancers, Network Load Balancers, and your target * groups.

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

*

To list the current tags for your resources, use DescribeTags. To * remove tags from your resources, use RemoveTags.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddTagsOutcomeCallable AddTagsCallable(const Model::AddTagsRequest& request) const; /** *

Adds the specified tags to the specified Elastic Load Balancing resource. You * can tag your Application Load Balancers, Network Load Balancers, and your target * groups.

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

*

To list the current tags for your resources, use DescribeTags. To * remove tags from your resources, use RemoveTags.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddTagsAsync(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

To update a listener, use ModifyListener. When you * are finished with a listener, you can delete it using DeleteListener. If * you are finished with both the listener and the load balancer, you can delete * them both using DeleteLoadBalancer.

This operation is idempotent, * which means that it completes at most one time. If you attempt to create * multiple listeners with the same settings, each call succeeds.

For more * information, see Listeners * for Your Application Load Balancers in the Application Load Balancers * Guide and Listeners * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateListenerOutcome CreateListener(const Model::CreateListenerRequest& request) const; /** *

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

To update a listener, use ModifyListener. When you * are finished with a listener, you can delete it using DeleteListener. If * you are finished with both the listener and the load balancer, you can delete * them both using DeleteLoadBalancer.

This operation is idempotent, * which means that it completes at most one time. If you attempt to create * multiple listeners with the same settings, each call succeeds.

For more * information, see Listeners * for Your Application Load Balancers in the Application Load Balancers * Guide and Listeners * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateListenerOutcomeCallable CreateListenerCallable(const Model::CreateListenerRequest& request) const; /** *

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

To update a listener, use ModifyListener. When you * are finished with a listener, you can delete it using DeleteListener. If * you are finished with both the listener and the load balancer, you can delete * them both using DeleteLoadBalancer.

This operation is idempotent, * which means that it completes at most one time. If you attempt to create * multiple listeners with the same settings, each call succeeds.

For more * information, see Listeners * for Your Application Load Balancers in the Application Load Balancers * Guide and Listeners * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateListenerAsync(const Model::CreateListenerRequest& request, const CreateListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an Application Load Balancer or a Network Load Balancer.

When * you create a load balancer, you can specify security groups, public subnets, IP * address type, and tags. Otherwise, you could do so later using * SetSecurityGroups, SetSubnets, SetIpAddressType, and * AddTags.

To create listeners for your load balancer, use * CreateListener. To describe your current load balancers, see * DescribeLoadBalancers. When you are finished with a load balancer, you * can delete it using DeleteLoadBalancer.

For limit information, see * Limits * for Your Application Load Balancer in the Application Load Balancers * Guide and Limits * for Your Network Load Balancer in the Network Load Balancers * Guide.

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.

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

See * Also:

AWS * API Reference

*/ virtual Model::CreateLoadBalancerOutcome CreateLoadBalancer(const Model::CreateLoadBalancerRequest& request) const; /** *

Creates an Application Load Balancer or a Network Load Balancer.

When * you create a load balancer, you can specify security groups, public subnets, IP * address type, and tags. Otherwise, you could do so later using * SetSecurityGroups, SetSubnets, SetIpAddressType, and * AddTags.

To create listeners for your load balancer, use * CreateListener. To describe your current load balancers, see * DescribeLoadBalancers. When you are finished with a load balancer, you * can delete it using DeleteLoadBalancer.

For limit information, see * Limits * for Your Application Load Balancer in the Application Load Balancers * Guide and Limits * for Your Network Load Balancer in the Network Load Balancers * Guide.

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.

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

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateLoadBalancerOutcomeCallable CreateLoadBalancerCallable(const Model::CreateLoadBalancerRequest& request) const; /** *

Creates an Application Load Balancer or a Network Load Balancer.

When * you create a load balancer, you can specify security groups, public subnets, IP * address type, and tags. Otherwise, you could do so later using * SetSecurityGroups, SetSubnets, SetIpAddressType, and * AddTags.

To create listeners for your load balancer, use * CreateListener. To describe your current load balancers, see * DescribeLoadBalancers. When you are finished with a load balancer, you * can delete it using DeleteLoadBalancer.

For limit information, see * Limits * for Your Application Load Balancer in the Application Load Balancers * Guide and Limits * for Your Network Load Balancer in the Network Load Balancers * Guide.

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.

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

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateLoadBalancerAsync(const Model::CreateLoadBalancerRequest& request, const CreateLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a rule for the specified listener. The listener must be associated * with an Application Load Balancer.

Each rule consists of a priority, one * or more actions, and one or more conditions. Rules are evaluated in priority * order, from the lowest value to the highest value. When the conditions for a * rule are met, its actions are performed. If the conditions for no rules are met, * the actions for the default rule are performed. For more information, see Listener * Rules in the Application Load Balancers Guide.

To view your * current rules, use DescribeRules. To update a rule, use * ModifyRule. To set the priorities of your rules, use * SetRulePriorities. To delete a rule, use DeleteRule.

See * Also:

AWS * API Reference

*/ virtual Model::CreateRuleOutcome CreateRule(const Model::CreateRuleRequest& request) const; /** *

Creates a rule for the specified listener. The listener must be associated * with an Application Load Balancer.

Each rule consists of a priority, one * or more actions, and one or more conditions. Rules are evaluated in priority * order, from the lowest value to the highest value. When the conditions for a * rule are met, its actions are performed. If the conditions for no rules are met, * the actions for the default rule are performed. For more information, see Listener * Rules in the Application Load Balancers Guide.

To view your * current rules, use DescribeRules. To update a rule, use * ModifyRule. To set the priorities of your rules, use * SetRulePriorities. To delete a rule, use DeleteRule.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateRuleOutcomeCallable CreateRuleCallable(const Model::CreateRuleRequest& request) const; /** *

Creates a rule for the specified listener. The listener must be associated * with an Application Load Balancer.

Each rule consists of a priority, one * or more actions, and one or more conditions. Rules are evaluated in priority * order, from the lowest value to the highest value. When the conditions for a * rule are met, its actions are performed. If the conditions for no rules are met, * the actions for the default rule are performed. For more information, see Listener * Rules in the Application Load Balancers Guide.

To view your * current rules, use DescribeRules. To update a rule, use * ModifyRule. To set the priorities of your rules, use * SetRulePriorities. To delete a rule, use DeleteRule.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateRuleAsync(const Model::CreateRuleRequest& request, const CreateRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a target group.

To register targets with the target group, use * RegisterTargets. To update the health check settings for the target * group, use ModifyTargetGroup. To monitor the health of targets in the * target group, use DescribeTargetHealth.

To route traffic to the * targets in a target group, specify the target group in an action using * CreateListener or CreateRule.

To delete a target group, use * DeleteTargetGroup.

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.

For more information, see Target * Groups for Your Application Load Balancers in the Application Load * Balancers Guide or Target * Groups for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateTargetGroupOutcome CreateTargetGroup(const Model::CreateTargetGroupRequest& request) const; /** *

Creates a target group.

To register targets with the target group, use * RegisterTargets. To update the health check settings for the target * group, use ModifyTargetGroup. To monitor the health of targets in the * target group, use DescribeTargetHealth.

To route traffic to the * targets in a target group, specify the target group in an action using * CreateListener or CreateRule.

To delete a target group, use * DeleteTargetGroup.

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.

For more information, see Target * Groups for Your Application Load Balancers in the Application Load * Balancers Guide or Target * Groups for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateTargetGroupOutcomeCallable CreateTargetGroupCallable(const Model::CreateTargetGroupRequest& request) const; /** *

Creates a target group.

To register targets with the target group, use * RegisterTargets. To update the health check settings for the target * group, use ModifyTargetGroup. To monitor the health of targets in the * target group, use DescribeTargetHealth.

To route traffic to the * targets in a target group, specify the target group in an action using * CreateListener or CreateRule.

To delete a target group, use * DeleteTargetGroup.

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.

For more information, see Target * Groups for Your Application Load Balancers in the Application Load * Balancers Guide or Target * Groups for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateTargetGroupAsync(const Model::CreateTargetGroupRequest& request, const CreateTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified listener.

Alternatively, your listener is * deleted when you delete the load balancer to which it is attached, using * DeleteLoadBalancer.

See Also:

AWS * API Reference

*/ virtual Model::DeleteListenerOutcome DeleteListener(const Model::DeleteListenerRequest& request) const; /** *

Deletes the specified listener.

Alternatively, your listener is * deleted when you delete the load balancer to which it is attached, using * DeleteLoadBalancer.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteListenerOutcomeCallable DeleteListenerCallable(const Model::DeleteListenerRequest& request) const; /** *

Deletes the specified listener.

Alternatively, your listener is * deleted when you delete the load balancer to which it is attached, using * DeleteLoadBalancer.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteListenerAsync(const Model::DeleteListenerRequest& request, const DeleteListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified Application Load Balancer or Network Load Balancer and * its attached 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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteLoadBalancerOutcome DeleteLoadBalancer(const Model::DeleteLoadBalancerRequest& request) const; /** *

Deletes the specified Application Load Balancer or Network Load Balancer and * its attached 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.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteLoadBalancerOutcomeCallable DeleteLoadBalancerCallable(const Model::DeleteLoadBalancerRequest& request) const; /** *

Deletes the specified Application Load Balancer or Network Load Balancer and * its attached 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.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteLoadBalancerAsync(const Model::DeleteLoadBalancerRequest& request, const DeleteLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified rule.

You can't delete the default * rule.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRuleOutcome DeleteRule(const Model::DeleteRuleRequest& request) const; /** *

Deletes the specified rule.

You can't delete the default * rule.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteRuleOutcomeCallable DeleteRuleCallable(const Model::DeleteRuleRequest& request) const; /** *

Deletes the specified rule.

You can't delete the default * rule.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteRuleAsync(const Model::DeleteRuleRequest& request, const DeleteRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteTargetGroupOutcome DeleteTargetGroup(const Model::DeleteTargetGroupRequest& request) const; /** *

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.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteTargetGroupOutcomeCallable DeleteTargetGroupCallable(const Model::DeleteTargetGroupRequest& request) const; /** *

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.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteTargetGroupAsync(const Model::DeleteTargetGroupRequest& request, const DeleteTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deregisters the specified targets from the specified target group. After the * targets are deregistered, they no longer receive traffic from the load * balancer.

See Also:

AWS * API Reference

*/ virtual Model::DeregisterTargetsOutcome DeregisterTargets(const Model::DeregisterTargetsRequest& request) const; /** *

Deregisters the specified targets from the specified target group. After the * targets are deregistered, they no longer receive traffic from the load * balancer.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeregisterTargetsOutcomeCallable DeregisterTargetsCallable(const Model::DeregisterTargetsRequest& request) const; /** *

Deregisters the specified targets from the specified target group. After the * targets are deregistered, they no longer receive traffic from the load * balancer.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeregisterTargetsAsync(const Model::DeregisterTargetsRequest& request, const DeregisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

For more information, see Limits * for Your Application Load Balancers in the Application Load Balancer * Guide or Limits * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAccountLimitsOutcome DescribeAccountLimits(const Model::DescribeAccountLimitsRequest& request) const; /** *

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

For more information, see Limits * for Your Application Load Balancers in the Application Load Balancer * Guide or Limits * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAccountLimitsOutcomeCallable DescribeAccountLimitsCallable(const Model::DescribeAccountLimitsRequest& request) const; /** *

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

For more information, see Limits * for Your Application Load Balancers in the Application Load Balancer * Guide or Limits * for Your Network Load Balancers in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAccountLimitsAsync(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

If the default certificate is also in the * certificate list, it appears twice in the results (once with * IsDefault set to true and once with IsDefault set to * false).

For more information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeListenerCertificatesOutcome DescribeListenerCertificates(const Model::DescribeListenerCertificatesRequest& request) const; /** *

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

If the default certificate is also in the * certificate list, it appears twice in the results (once with * IsDefault set to true and once with IsDefault set to * false).

For more information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeListenerCertificatesOutcomeCallable DescribeListenerCertificatesCallable(const Model::DescribeListenerCertificatesRequest& request) const; /** *

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

If the default certificate is also in the * certificate list, it appears twice in the results (once with * IsDefault set to true and once with IsDefault set to * false).

For more information, see SSL * Certificates in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeListenerCertificatesAsync(const Model::DescribeListenerCertificatesRequest& request, const DescribeListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the specified listeners or the listeners for the specified * Application Load Balancer or Network 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 * DescribeListenerCertificates.

See Also:

AWS * API Reference

*/ virtual Model::DescribeListenersOutcome DescribeListeners(const Model::DescribeListenersRequest& request) const; /** *

Describes the specified listeners or the listeners for the specified * Application Load Balancer or Network 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 * DescribeListenerCertificates.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeListenersOutcomeCallable DescribeListenersCallable(const Model::DescribeListenersRequest& request) const; /** *

Describes the specified listeners or the listeners for the specified * Application Load Balancer or Network 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 * DescribeListenerCertificates.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeListenersAsync(const Model::DescribeListenersRequest& request, const DescribeListenersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the attributes for the specified Application Load Balancer or * Network Load Balancer.

For more information, see Load * Balancer Attributes in the Application Load Balancers Guide or Load * Balancer Attributes in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLoadBalancerAttributesOutcome DescribeLoadBalancerAttributes(const Model::DescribeLoadBalancerAttributesRequest& request) const; /** *

Describes the attributes for the specified Application Load Balancer or * Network Load Balancer.

For more information, see Load * Balancer Attributes in the Application Load Balancers Guide or Load * Balancer Attributes in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLoadBalancerAttributesOutcomeCallable DescribeLoadBalancerAttributesCallable(const Model::DescribeLoadBalancerAttributesRequest& request) const; /** *

Describes the attributes for the specified Application Load Balancer or * Network Load Balancer.

For more information, see Load * Balancer Attributes in the Application Load Balancers Guide or Load * Balancer Attributes in the Network Load Balancers * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLoadBalancerAttributesAsync(const Model::DescribeLoadBalancerAttributesRequest& request, const DescribeLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

*

To describe the listeners for a load balancer, use DescribeListeners. * To describe the attributes for a load balancer, use * DescribeLoadBalancerAttributes.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLoadBalancersOutcome DescribeLoadBalancers(const Model::DescribeLoadBalancersRequest& request) const; /** *

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

*

To describe the listeners for a load balancer, use DescribeListeners. * To describe the attributes for a load balancer, use * DescribeLoadBalancerAttributes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLoadBalancersOutcomeCallable DescribeLoadBalancersCallable(const Model::DescribeLoadBalancersRequest& request) const; /** *

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

*

To describe the listeners for a load balancer, use DescribeListeners. * To describe the attributes for a load balancer, use * DescribeLoadBalancerAttributes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLoadBalancersAsync(const Model::DescribeLoadBalancersRequest& request, const DescribeLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the specified rules or the rules for the specified listener. You * must specify either a listener or one or more rules.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeRulesOutcome DescribeRules(const Model::DescribeRulesRequest& request) const; /** *

Describes the specified rules or the rules for the specified listener. You * must specify either a listener or one or more rules.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeRulesOutcomeCallable DescribeRulesCallable(const Model::DescribeRulesRequest& request) const; /** *

Describes the specified rules or the rules for the specified listener. You * must specify either a listener or one or more rules.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeRulesAsync(const Model::DescribeRulesRequest& request, const DescribeRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

For more information, see Security * Policies in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeSSLPoliciesOutcome DescribeSSLPolicies(const Model::DescribeSSLPoliciesRequest& request) const; /** *

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

For more information, see Security * Policies in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeSSLPoliciesOutcomeCallable DescribeSSLPoliciesCallable(const Model::DescribeSSLPoliciesRequest& request) const; /** *

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

For more information, see Security * Policies in the Application Load Balancers Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeSSLPoliciesAsync(const Model::DescribeSSLPoliciesRequest& request, const DescribeSSLPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the tags for the specified resources. You can describe the tags for * one or more Application Load Balancers, Network Load Balancers, and target * groups.

See Also:

AWS * API Reference

*/ virtual Model::DescribeTagsOutcome DescribeTags(const Model::DescribeTagsRequest& request) const; /** *

Describes the tags for the specified resources. You can describe the tags for * one or more Application Load Balancers, Network Load Balancers, and target * groups.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTagsOutcomeCallable DescribeTagsCallable(const Model::DescribeTagsRequest& request) const; /** *

Describes the tags for the specified resources. You can describe the tags for * one or more Application Load Balancers, Network Load Balancers, and target * groups.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTagsAsync(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the attributes for the specified target group.

For more * information, see Target * Group Attributes in the Application Load Balancers Guide or Target * Group Attributes in the Network Load Balancers Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeTargetGroupAttributesOutcome DescribeTargetGroupAttributes(const Model::DescribeTargetGroupAttributesRequest& request) const; /** *

Describes the attributes for the specified target group.

For more * information, see Target * Group Attributes in the Application Load Balancers Guide or Target * Group Attributes in the Network Load Balancers Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTargetGroupAttributesOutcomeCallable DescribeTargetGroupAttributesCallable(const Model::DescribeTargetGroupAttributesRequest& request) const; /** *

Describes the attributes for the specified target group.

For more * information, see Target * Group Attributes in the Application Load Balancers Guide or Target * Group Attributes in the Network Load Balancers Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTargetGroupAttributesAsync(const Model::DescribeTargetGroupAttributesRequest& request, const DescribeTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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 DescribeTargetHealth. To * describe the attributes of a target group, use * DescribeTargetGroupAttributes.

See Also:

AWS * API Reference

*/ virtual Model::DescribeTargetGroupsOutcome DescribeTargetGroups(const Model::DescribeTargetGroupsRequest& request) const; /** *

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 DescribeTargetHealth. To * describe the attributes of a target group, use * DescribeTargetGroupAttributes.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTargetGroupsOutcomeCallable DescribeTargetGroupsCallable(const Model::DescribeTargetGroupsRequest& request) const; /** *

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 DescribeTargetHealth. To * describe the attributes of a target group, use * DescribeTargetGroupAttributes.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTargetGroupsAsync(const Model::DescribeTargetGroupsRequest& request, const DescribeTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::DescribeTargetHealthOutcome DescribeTargetHealth(const Model::DescribeTargetHealthRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTargetHealthOutcomeCallable DescribeTargetHealthCallable(const Model::DescribeTargetHealthRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTargetHealthAsync(const Model::DescribeTargetHealthRequest& request, const DescribeTargetHealthResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Replaces the specified properties of the specified listener. Any properties * that you do not specify remain unchanged.

Changing the protocol from * HTTPS to HTTP, or from TLS to TCP, removes the security policy and default * certificate properties. If you change the protocol from HTTP to HTTPS, or from * TCP to TLS, you must add the security policy and default certificate * properties.

To add an item to a list, remove an item from a list, or * update an item in a list, you must provide the entire list. For example, to add * an action, specify a list with the current actions plus the new * action.

See Also:

AWS * API Reference

*/ virtual Model::ModifyListenerOutcome ModifyListener(const Model::ModifyListenerRequest& request) const; /** *

Replaces the specified properties of the specified listener. Any properties * that you do not specify remain unchanged.

Changing the protocol from * HTTPS to HTTP, or from TLS to TCP, removes the security policy and default * certificate properties. If you change the protocol from HTTP to HTTPS, or from * TCP to TLS, you must add the security policy and default certificate * properties.

To add an item to a list, remove an item from a list, or * update an item in a list, you must provide the entire list. For example, to add * an action, specify a list with the current actions plus the new * action.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyListenerOutcomeCallable ModifyListenerCallable(const Model::ModifyListenerRequest& request) const; /** *

Replaces the specified properties of the specified listener. Any properties * that you do not specify remain unchanged.

Changing the protocol from * HTTPS to HTTP, or from TLS to TCP, removes the security policy and default * certificate properties. If you change the protocol from HTTP to HTTPS, or from * TCP to TLS, you must add the security policy and default certificate * properties.

To add an item to a list, remove an item from a list, or * update an item in a list, you must provide the entire list. For example, to add * an action, specify a list with the current actions plus the new * action.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyListenerAsync(const Model::ModifyListenerRequest& request, const ModifyListenerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ModifyLoadBalancerAttributesOutcome ModifyLoadBalancerAttributes(const Model::ModifyLoadBalancerAttributesRequest& request) const; /** *

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.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyLoadBalancerAttributesOutcomeCallable ModifyLoadBalancerAttributesCallable(const Model::ModifyLoadBalancerAttributesRequest& request) const; /** *

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.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyLoadBalancerAttributesAsync(const Model::ModifyLoadBalancerAttributesRequest& request, const ModifyLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Replaces the specified properties of the specified rule. Any properties that * you do not specify are unchanged.

To add an item to a list, remove an * item from a list, or update an item in a list, you must provide the entire list. * For example, to add an action, specify a list with the current actions plus the * new action.

To modify the actions for the default rule, use * ModifyListener.

See Also:

AWS * API Reference

*/ virtual Model::ModifyRuleOutcome ModifyRule(const Model::ModifyRuleRequest& request) const; /** *

Replaces the specified properties of the specified rule. Any properties that * you do not specify are unchanged.

To add an item to a list, remove an * item from a list, or update an item in a list, you must provide the entire list. * For example, to add an action, specify a list with the current actions plus the * new action.

To modify the actions for the default rule, use * ModifyListener.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyRuleOutcomeCallable ModifyRuleCallable(const Model::ModifyRuleRequest& request) const; /** *

Replaces the specified properties of the specified rule. Any properties that * you do not specify are unchanged.

To add an item to a list, remove an * item from a list, or update an item in a list, you must provide the entire list. * For example, to add an action, specify a list with the current actions plus the * new action.

To modify the actions for the default rule, use * ModifyListener.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyRuleAsync(const Model::ModifyRuleRequest& request, const ModifyRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

AWS * API Reference

*/ virtual Model::ModifyTargetGroupOutcome ModifyTargetGroup(const Model::ModifyTargetGroupRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyTargetGroupOutcomeCallable ModifyTargetGroupCallable(const Model::ModifyTargetGroupRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyTargetGroupAsync(const Model::ModifyTargetGroupRequest& request, const ModifyTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Modifies the specified attributes of the specified target * group.

See Also:

AWS * API Reference

*/ virtual Model::ModifyTargetGroupAttributesOutcome ModifyTargetGroupAttributes(const Model::ModifyTargetGroupAttributesRequest& request) const; /** *

Modifies the specified attributes of the specified target * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ModifyTargetGroupAttributesOutcomeCallable ModifyTargetGroupAttributesCallable(const Model::ModifyTargetGroupAttributesRequest& request) const; /** *

Modifies the specified attributes of the specified target * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ModifyTargetGroupAttributesAsync(const Model::ModifyTargetGroupAttributesRequest& request, const ModifyTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Registers the specified targets with the specified target group.

If * the target is an EC2 instance, it must be in the running state when * you register it.

By default, the load balancer routes requests to * registered targets using the protocol and port for the target group. * Alternatively, you can override the port for a target when you register it. You * can register each EC2 instance or IP address with the same target group multiple * times using different ports.

With a Network Load Balancer, you cannot * register instances by instance ID if they have the following instance types: C1, * CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can * register instances of these types by IP address.

To remove a target from * a target group, use DeregisterTargets.

See Also:

AWS * API Reference

*/ virtual Model::RegisterTargetsOutcome RegisterTargets(const Model::RegisterTargetsRequest& request) const; /** *

Registers the specified targets with the specified target group.

If * the target is an EC2 instance, it must be in the running state when * you register it.

By default, the load balancer routes requests to * registered targets using the protocol and port for the target group. * Alternatively, you can override the port for a target when you register it. You * can register each EC2 instance or IP address with the same target group multiple * times using different ports.

With a Network Load Balancer, you cannot * register instances by instance ID if they have the following instance types: C1, * CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can * register instances of these types by IP address.

To remove a target from * a target group, use DeregisterTargets.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RegisterTargetsOutcomeCallable RegisterTargetsCallable(const Model::RegisterTargetsRequest& request) const; /** *

Registers the specified targets with the specified target group.

If * the target is an EC2 instance, it must be in the running state when * you register it.

By default, the load balancer routes requests to * registered targets using the protocol and port for the target group. * Alternatively, you can override the port for a target when you register it. You * can register each EC2 instance or IP address with the same target group multiple * times using different ports.

With a Network Load Balancer, you cannot * register instances by instance ID if they have the following instance types: C1, * CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can * register instances of these types by IP address.

To remove a target from * a target group, use DeregisterTargets.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RegisterTargetsAsync(const Model::RegisterTargetsRequest& request, const RegisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified certificate from the certificate list for the specified * HTTPS or TLS listener.

You can't remove the default certificate for a * listener. To replace the default certificate, call ModifyListener.

*

To list the certificates for your listener, use * DescribeListenerCertificates.

See Also:

AWS * API Reference

*/ virtual Model::RemoveListenerCertificatesOutcome RemoveListenerCertificates(const Model::RemoveListenerCertificatesRequest& request) const; /** *

Removes the specified certificate from the certificate list for the specified * HTTPS or TLS listener.

You can't remove the default certificate for a * listener. To replace the default certificate, call ModifyListener.

*

To list the certificates for your listener, use * DescribeListenerCertificates.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveListenerCertificatesOutcomeCallable RemoveListenerCertificatesCallable(const Model::RemoveListenerCertificatesRequest& request) const; /** *

Removes the specified certificate from the certificate list for the specified * HTTPS or TLS listener.

You can't remove the default certificate for a * listener. To replace the default certificate, call ModifyListener.

*

To list the certificates for your listener, use * DescribeListenerCertificates.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveListenerCertificatesAsync(const Model::RemoveListenerCertificatesRequest& request, const RemoveListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified tags from the specified Elastic Load Balancing * resource.

To list the current tags for your resources, use * DescribeTags.

See Also:

AWS * API Reference

*/ virtual Model::RemoveTagsOutcome RemoveTags(const Model::RemoveTagsRequest& request) const; /** *

Removes the specified tags from the specified Elastic Load Balancing * resource.

To list the current tags for your resources, use * DescribeTags.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveTagsOutcomeCallable RemoveTagsCallable(const Model::RemoveTagsRequest& request) const; /** *

Removes the specified tags from the specified Elastic Load Balancing * resource.

To list the current tags for your resources, use * DescribeTags.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveTagsAsync(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

See Also:

* AWS * API Reference

*/ virtual Model::SetIpAddressTypeOutcome SetIpAddressType(const Model::SetIpAddressTypeRequest& request) const; /** *

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

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetIpAddressTypeOutcomeCallable SetIpAddressTypeCallable(const Model::SetIpAddressTypeRequest& request) const; /** *

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

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetIpAddressTypeAsync(const Model::SetIpAddressTypeRequest& request, const SetIpAddressTypeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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.

See Also:

* AWS * API Reference

*/ virtual Model::SetRulePrioritiesOutcome SetRulePriorities(const Model::SetRulePrioritiesRequest& request) const; /** *

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.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetRulePrioritiesOutcomeCallable SetRulePrioritiesCallable(const Model::SetRulePrioritiesRequest& request) const; /** *

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.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetRulePrioritiesAsync(const Model::SetRulePrioritiesRequest& request, const SetRulePrioritiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Associates the specified security groups with the specified Application Load * Balancer. The specified security groups override the previously associated * security groups.

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

See Also:

AWS * API Reference

*/ virtual Model::SetSecurityGroupsOutcome SetSecurityGroups(const Model::SetSecurityGroupsRequest& request) const; /** *

Associates the specified security groups with the specified Application Load * Balancer. The specified security groups override the previously associated * security groups.

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetSecurityGroupsOutcomeCallable SetSecurityGroupsCallable(const Model::SetSecurityGroupsRequest& request) const; /** *

Associates the specified security groups with the specified Application Load * Balancer. The specified security groups override the previously associated * security groups.

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetSecurityGroupsAsync(const Model::SetSecurityGroupsRequest& request, const SetSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Enables the Availability Zones for the specified public subnets for the * specified load balancer. The specified subnets replace the previously enabled * subnets.

When you specify subnets for a Network Load Balancer, you must * include all subnets that were enabled previously, with their existing * configurations, plus any additional subnets.

See Also:

AWS * API Reference

*/ virtual Model::SetSubnetsOutcome SetSubnets(const Model::SetSubnetsRequest& request) const; /** *

Enables the Availability Zones for the specified public subnets for the * specified load balancer. The specified subnets replace the previously enabled * subnets.

When you specify subnets for a Network Load Balancer, you must * include all subnets that were enabled previously, with their existing * configurations, plus any additional subnets.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetSubnetsOutcomeCallable SetSubnetsCallable(const Model::SetSubnetsRequest& request) const; /** *

Enables the Availability Zones for the specified public subnets for the * specified load balancer. The specified subnets replace the previously enabled * subnets.

When you specify subnets for a Network Load Balancer, you must * include all subnets that were enabled previously, with their existing * configurations, plus any additional subnets.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetSubnetsAsync(const Model::SetSubnetsRequest& request, const SetSubnetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddListenerCertificatesAsyncHelper(const Model::AddListenerCertificatesRequest& request, const AddListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddTagsAsyncHelper(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateListenerAsyncHelper(const Model::CreateListenerRequest& request, const CreateListenerResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateLoadBalancerAsyncHelper(const Model::CreateLoadBalancerRequest& request, const CreateLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateRuleAsyncHelper(const Model::CreateRuleRequest& request, const CreateRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateTargetGroupAsyncHelper(const Model::CreateTargetGroupRequest& request, const CreateTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteListenerAsyncHelper(const Model::DeleteListenerRequest& request, const DeleteListenerResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteLoadBalancerAsyncHelper(const Model::DeleteLoadBalancerRequest& request, const DeleteLoadBalancerResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRuleAsyncHelper(const Model::DeleteRuleRequest& request, const DeleteRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteTargetGroupAsyncHelper(const Model::DeleteTargetGroupRequest& request, const DeleteTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeregisterTargetsAsyncHelper(const Model::DeregisterTargetsRequest& request, const DeregisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAccountLimitsAsyncHelper(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeListenerCertificatesAsyncHelper(const Model::DescribeListenerCertificatesRequest& request, const DescribeListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeListenersAsyncHelper(const Model::DescribeListenersRequest& request, const DescribeListenersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLoadBalancerAttributesAsyncHelper(const Model::DescribeLoadBalancerAttributesRequest& request, const DescribeLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLoadBalancersAsyncHelper(const Model::DescribeLoadBalancersRequest& request, const DescribeLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeRulesAsyncHelper(const Model::DescribeRulesRequest& request, const DescribeRulesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeSSLPoliciesAsyncHelper(const Model::DescribeSSLPoliciesRequest& request, const DescribeSSLPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTagsAsyncHelper(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTargetGroupAttributesAsyncHelper(const Model::DescribeTargetGroupAttributesRequest& request, const DescribeTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTargetGroupsAsyncHelper(const Model::DescribeTargetGroupsRequest& request, const DescribeTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTargetHealthAsyncHelper(const Model::DescribeTargetHealthRequest& request, const DescribeTargetHealthResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyListenerAsyncHelper(const Model::ModifyListenerRequest& request, const ModifyListenerResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyLoadBalancerAttributesAsyncHelper(const Model::ModifyLoadBalancerAttributesRequest& request, const ModifyLoadBalancerAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyRuleAsyncHelper(const Model::ModifyRuleRequest& request, const ModifyRuleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyTargetGroupAsyncHelper(const Model::ModifyTargetGroupRequest& request, const ModifyTargetGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ModifyTargetGroupAttributesAsyncHelper(const Model::ModifyTargetGroupAttributesRequest& request, const ModifyTargetGroupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RegisterTargetsAsyncHelper(const Model::RegisterTargetsRequest& request, const RegisterTargetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveListenerCertificatesAsyncHelper(const Model::RemoveListenerCertificatesRequest& request, const RemoveListenerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveTagsAsyncHelper(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetIpAddressTypeAsyncHelper(const Model::SetIpAddressTypeRequest& request, const SetIpAddressTypeResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetRulePrioritiesAsyncHelper(const Model::SetRulePrioritiesRequest& request, const SetRulePrioritiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetSecurityGroupsAsyncHelper(const Model::SetSecurityGroupsRequest& request, const SetSecurityGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetSubnetsAsyncHelper(const Model::SetSubnetsRequest& request, const SetSubnetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace ElasticLoadBalancingv2 } // namespace Aws