/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include A complex type for an endpoint. Each endpoint group can include one or more
* endpoints, such as load balancers.See Also:
AWS
* API Reference
An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline const Aws::String& GetEndpointId() const{ return m_endpointId; } /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline bool EndpointIdHasBeenSet() const { return m_endpointIdHasBeenSet; } /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline void SetEndpointId(const Aws::String& value) { m_endpointIdHasBeenSet = true; m_endpointId = value; } /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline void SetEndpointId(Aws::String&& value) { m_endpointIdHasBeenSet = true; m_endpointId = std::move(value); } /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline void SetEndpointId(const char* value) { m_endpointIdHasBeenSet = true; m_endpointId.assign(value); } /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline EndpointDescription& WithEndpointId(const Aws::String& value) { SetEndpointId(value); return *this;} /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline EndpointDescription& WithEndpointId(Aws::String&& value) { SetEndpointId(std::move(value)); return *this;} /** *An ID for the endpoint. If the endpoint is a Network Load Balancer or * Application Load Balancer, this is the Amazon Resource Name (ARN) of the * resource. If the endpoint is an Elastic IP address, this is the Elastic IP * address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. *
An Application Load Balancer can be either internal or * internet-facing.
*/ inline EndpointDescription& WithEndpointId(const char* value) { SetEndpointId(value); return *this;} /** *The weight associated with the endpoint. When you add weights to endpoints, * you configure Global Accelerator to route traffic based on proportions that you * specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 * (sum=20). The result is that 4/20 of your traffic, on average, is routed to the * first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 * is routed to the last endpoint. For more information, see Endpoint * weights in the Global Accelerator Developer Guide.
*/ inline int GetWeight() const{ return m_weight; } /** *The weight associated with the endpoint. When you add weights to endpoints, * you configure Global Accelerator to route traffic based on proportions that you * specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 * (sum=20). The result is that 4/20 of your traffic, on average, is routed to the * first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 * is routed to the last endpoint. For more information, see Endpoint * weights in the Global Accelerator Developer Guide.
*/ inline bool WeightHasBeenSet() const { return m_weightHasBeenSet; } /** *The weight associated with the endpoint. When you add weights to endpoints, * you configure Global Accelerator to route traffic based on proportions that you * specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 * (sum=20). The result is that 4/20 of your traffic, on average, is routed to the * first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 * is routed to the last endpoint. For more information, see Endpoint * weights in the Global Accelerator Developer Guide.
*/ inline void SetWeight(int value) { m_weightHasBeenSet = true; m_weight = value; } /** *The weight associated with the endpoint. When you add weights to endpoints, * you configure Global Accelerator to route traffic based on proportions that you * specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 * (sum=20). The result is that 4/20 of your traffic, on average, is routed to the * first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 * is routed to the last endpoint. For more information, see Endpoint * weights in the Global Accelerator Developer Guide.
*/ inline EndpointDescription& WithWeight(int value) { SetWeight(value); return *this;} /** *The health status of the endpoint.
*/ inline const HealthState& GetHealthState() const{ return m_healthState; } /** *The health status of the endpoint.
*/ inline bool HealthStateHasBeenSet() const { return m_healthStateHasBeenSet; } /** *The health status of the endpoint.
*/ inline void SetHealthState(const HealthState& value) { m_healthStateHasBeenSet = true; m_healthState = value; } /** *The health status of the endpoint.
*/ inline void SetHealthState(HealthState&& value) { m_healthStateHasBeenSet = true; m_healthState = std::move(value); } /** *The health status of the endpoint.
*/ inline EndpointDescription& WithHealthState(const HealthState& value) { SetHealthState(value); return *this;} /** *The health status of the endpoint.
*/ inline EndpointDescription& WithHealthState(HealthState&& value) { SetHealthState(std::move(value)); return *this;} /** *Returns a null result.
*/ inline const Aws::String& GetHealthReason() const{ return m_healthReason; } /** *Returns a null result.
*/ inline bool HealthReasonHasBeenSet() const { return m_healthReasonHasBeenSet; } /** *Returns a null result.
*/ inline void SetHealthReason(const Aws::String& value) { m_healthReasonHasBeenSet = true; m_healthReason = value; } /** *Returns a null result.
*/ inline void SetHealthReason(Aws::String&& value) { m_healthReasonHasBeenSet = true; m_healthReason = std::move(value); } /** *Returns a null result.
*/ inline void SetHealthReason(const char* value) { m_healthReasonHasBeenSet = true; m_healthReason.assign(value); } /** *Returns a null result.
*/ inline EndpointDescription& WithHealthReason(const Aws::String& value) { SetHealthReason(value); return *this;} /** *Returns a null result.
*/ inline EndpointDescription& WithHealthReason(Aws::String&& value) { SetHealthReason(std::move(value)); return *this;} /** *Returns a null result.
*/ inline EndpointDescription& WithHealthReason(const char* value) { SetHealthReason(value); return *this;} /** *Indicates whether client IP address preservation is enabled for an endpoint. * The value is true or false. The default value is true for new accelerators.
*If the value is set to true, the client's IP address is preserved in the
* X-Forwarded-For
request header as traffic travels to applications
* on the endpoint fronted by the accelerator.
Client IP address * preservation is supported, in specific Amazon Web Services Regions, for * endpoints that are Application Load Balancers and Amazon EC2 instances.
*For more information, see * Preserve client IP addresses in Global Accelerator in the Global * Accelerator Developer Guide.
*/ inline bool GetClientIPPreservationEnabled() const{ return m_clientIPPreservationEnabled; } /** *Indicates whether client IP address preservation is enabled for an endpoint. * The value is true or false. The default value is true for new accelerators.
*If the value is set to true, the client's IP address is preserved in the
* X-Forwarded-For
request header as traffic travels to applications
* on the endpoint fronted by the accelerator.
Client IP address * preservation is supported, in specific Amazon Web Services Regions, for * endpoints that are Application Load Balancers and Amazon EC2 instances.
*For more information, see * Preserve client IP addresses in Global Accelerator in the Global * Accelerator Developer Guide.
*/ inline bool ClientIPPreservationEnabledHasBeenSet() const { return m_clientIPPreservationEnabledHasBeenSet; } /** *Indicates whether client IP address preservation is enabled for an endpoint. * The value is true or false. The default value is true for new accelerators.
*If the value is set to true, the client's IP address is preserved in the
* X-Forwarded-For
request header as traffic travels to applications
* on the endpoint fronted by the accelerator.
Client IP address * preservation is supported, in specific Amazon Web Services Regions, for * endpoints that are Application Load Balancers and Amazon EC2 instances.
*For more information, see * Preserve client IP addresses in Global Accelerator in the Global * Accelerator Developer Guide.
*/ inline void SetClientIPPreservationEnabled(bool value) { m_clientIPPreservationEnabledHasBeenSet = true; m_clientIPPreservationEnabled = value; } /** *Indicates whether client IP address preservation is enabled for an endpoint. * The value is true or false. The default value is true for new accelerators.
*If the value is set to true, the client's IP address is preserved in the
* X-Forwarded-For
request header as traffic travels to applications
* on the endpoint fronted by the accelerator.
Client IP address * preservation is supported, in specific Amazon Web Services Regions, for * endpoints that are Application Load Balancers and Amazon EC2 instances.
*For more information, see * Preserve client IP addresses in Global Accelerator in the Global * Accelerator Developer Guide.
*/ inline EndpointDescription& WithClientIPPreservationEnabled(bool value) { SetClientIPPreservationEnabled(value); return *this;} private: Aws::String m_endpointId; bool m_endpointIdHasBeenSet = false; int m_weight; bool m_weightHasBeenSet = false; HealthState m_healthState; bool m_healthStateHasBeenSet = false; Aws::String m_healthReason; bool m_healthReasonHasBeenSet = false; bool m_clientIPPreservationEnabled; bool m_clientIPPreservationEnabledHasBeenSet = false; }; } // namespace Model } // namespace GlobalAccelerator } // namespace Aws