/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GlobalAccelerator { namespace Model { /** *

A complex type for the endpoint group. An Amazon Web Services Region can have * only one endpoint group for a specific listener.

See Also:

AWS * API Reference

*/ class EndpointGroup { public: AWS_GLOBALACCELERATOR_API EndpointGroup(); AWS_GLOBALACCELERATOR_API EndpointGroup(Aws::Utils::Json::JsonView jsonValue); AWS_GLOBALACCELERATOR_API EndpointGroup& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GLOBALACCELERATOR_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline const Aws::String& GetEndpointGroupArn() const{ return m_endpointGroupArn; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline bool EndpointGroupArnHasBeenSet() const { return m_endpointGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(const Aws::String& value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(Aws::String&& value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline void SetEndpointGroupArn(const char* value) { m_endpointGroupArnHasBeenSet = true; m_endpointGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline EndpointGroup& WithEndpointGroupArn(const Aws::String& value) { SetEndpointGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline EndpointGroup& WithEndpointGroupArn(Aws::String&& value) { SetEndpointGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint group.

*/ inline EndpointGroup& WithEndpointGroupArn(const char* value) { SetEndpointGroupArn(value); return *this;} /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline const Aws::String& GetEndpointGroupRegion() const{ return m_endpointGroupRegion; } /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline bool EndpointGroupRegionHasBeenSet() const { return m_endpointGroupRegionHasBeenSet; } /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline void SetEndpointGroupRegion(const Aws::String& value) { m_endpointGroupRegionHasBeenSet = true; m_endpointGroupRegion = value; } /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline void SetEndpointGroupRegion(Aws::String&& value) { m_endpointGroupRegionHasBeenSet = true; m_endpointGroupRegion = std::move(value); } /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline void SetEndpointGroupRegion(const char* value) { m_endpointGroupRegionHasBeenSet = true; m_endpointGroupRegion.assign(value); } /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline EndpointGroup& WithEndpointGroupRegion(const Aws::String& value) { SetEndpointGroupRegion(value); return *this;} /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline EndpointGroup& WithEndpointGroupRegion(Aws::String&& value) { SetEndpointGroupRegion(std::move(value)); return *this;} /** *

The Amazon Web Services Region where the endpoint group is located.

*/ inline EndpointGroup& WithEndpointGroupRegion(const char* value) { SetEndpointGroupRegion(value); return *this;} /** *

The list of endpoint objects.

*/ inline const Aws::Vector& GetEndpointDescriptions() const{ return m_endpointDescriptions; } /** *

The list of endpoint objects.

*/ inline bool EndpointDescriptionsHasBeenSet() const { return m_endpointDescriptionsHasBeenSet; } /** *

The list of endpoint objects.

*/ inline void SetEndpointDescriptions(const Aws::Vector& value) { m_endpointDescriptionsHasBeenSet = true; m_endpointDescriptions = value; } /** *

The list of endpoint objects.

*/ inline void SetEndpointDescriptions(Aws::Vector&& value) { m_endpointDescriptionsHasBeenSet = true; m_endpointDescriptions = std::move(value); } /** *

The list of endpoint objects.

*/ inline EndpointGroup& WithEndpointDescriptions(const Aws::Vector& value) { SetEndpointDescriptions(value); return *this;} /** *

The list of endpoint objects.

*/ inline EndpointGroup& WithEndpointDescriptions(Aws::Vector&& value) { SetEndpointDescriptions(std::move(value)); return *this;} /** *

The list of endpoint objects.

*/ inline EndpointGroup& AddEndpointDescriptions(const EndpointDescription& value) { m_endpointDescriptionsHasBeenSet = true; m_endpointDescriptions.push_back(value); return *this; } /** *

The list of endpoint objects.

*/ inline EndpointGroup& AddEndpointDescriptions(EndpointDescription&& value) { m_endpointDescriptionsHasBeenSet = true; m_endpointDescriptions.push_back(std::move(value)); return *this; } /** *

The percentage of traffic to send to an Amazon Web Services Region. * Additional traffic is distributed to other endpoint groups for this listener. *

Use this action to increase (dial up) or decrease (dial down) traffic to * a specific Region. The percentage is applied to the traffic that would otherwise * have been routed to the Region based on optimal routing.

The default * value is 100.

*/ inline double GetTrafficDialPercentage() const{ return m_trafficDialPercentage; } /** *

The percentage of traffic to send to an Amazon Web Services Region. * Additional traffic is distributed to other endpoint groups for this listener. *

Use this action to increase (dial up) or decrease (dial down) traffic to * a specific Region. The percentage is applied to the traffic that would otherwise * have been routed to the Region based on optimal routing.

The default * value is 100.

*/ inline bool TrafficDialPercentageHasBeenSet() const { return m_trafficDialPercentageHasBeenSet; } /** *

The percentage of traffic to send to an Amazon Web Services Region. * Additional traffic is distributed to other endpoint groups for this listener. *

Use this action to increase (dial up) or decrease (dial down) traffic to * a specific Region. The percentage is applied to the traffic that would otherwise * have been routed to the Region based on optimal routing.

The default * value is 100.

*/ inline void SetTrafficDialPercentage(double value) { m_trafficDialPercentageHasBeenSet = true; m_trafficDialPercentage = value; } /** *

The percentage of traffic to send to an Amazon Web Services Region. * Additional traffic is distributed to other endpoint groups for this listener. *

Use this action to increase (dial up) or decrease (dial down) traffic to * a specific Region. The percentage is applied to the traffic that would otherwise * have been routed to the Region based on optimal routing.

The default * value is 100.

*/ inline EndpointGroup& WithTrafficDialPercentage(double value) { SetTrafficDialPercentage(value); return *this;} /** *

The port that Global Accelerator uses to perform health checks on endpoints * that are part of this endpoint group.

The default port is the port for * the listener that this endpoint group is associated with. If the listener port * is a list, Global Accelerator uses the first specified port in the list of * ports.

*/ inline int GetHealthCheckPort() const{ return m_healthCheckPort; } /** *

The port that Global Accelerator uses to perform health checks on endpoints * that are part of this endpoint group.

The default port is the port for * the listener that this endpoint group is associated with. If the listener port * is a list, Global Accelerator uses the first specified port in the list of * ports.

*/ inline bool HealthCheckPortHasBeenSet() const { return m_healthCheckPortHasBeenSet; } /** *

The port that Global Accelerator uses to perform health checks on endpoints * that are part of this endpoint group.

The default port is the port for * the listener that this endpoint group is associated with. If the listener port * is a list, Global Accelerator uses the first specified port in the list of * ports.

*/ inline void SetHealthCheckPort(int value) { m_healthCheckPortHasBeenSet = true; m_healthCheckPort = value; } /** *

The port that Global Accelerator uses to perform health checks on endpoints * that are part of this endpoint group.

The default port is the port for * the listener that this endpoint group is associated with. If the listener port * is a list, Global Accelerator uses the first specified port in the list of * ports.

*/ inline EndpointGroup& WithHealthCheckPort(int value) { SetHealthCheckPort(value); return *this;} /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline const HealthCheckProtocol& GetHealthCheckProtocol() const{ return m_healthCheckProtocol; } /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline bool HealthCheckProtocolHasBeenSet() const { return m_healthCheckProtocolHasBeenSet; } /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline void SetHealthCheckProtocol(const HealthCheckProtocol& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = value; } /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline void SetHealthCheckProtocol(HealthCheckProtocol&& value) { m_healthCheckProtocolHasBeenSet = true; m_healthCheckProtocol = std::move(value); } /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline EndpointGroup& WithHealthCheckProtocol(const HealthCheckProtocol& value) { SetHealthCheckProtocol(value); return *this;} /** *

The protocol that Global Accelerator uses to perform health checks on * endpoints that are part of this endpoint group. The default value is TCP.

*/ inline EndpointGroup& WithHealthCheckProtocol(HealthCheckProtocol&& value) { SetHealthCheckProtocol(std::move(value)); return *this;} /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline const Aws::String& GetHealthCheckPath() const{ return m_healthCheckPath; } /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline bool HealthCheckPathHasBeenSet() const { return m_healthCheckPathHasBeenSet; } /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline void SetHealthCheckPath(const Aws::String& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = value; } /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline void SetHealthCheckPath(Aws::String&& value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath = std::move(value); } /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline void SetHealthCheckPath(const char* value) { m_healthCheckPathHasBeenSet = true; m_healthCheckPath.assign(value); } /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline EndpointGroup& WithHealthCheckPath(const Aws::String& value) { SetHealthCheckPath(value); return *this;} /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline EndpointGroup& WithHealthCheckPath(Aws::String&& value) { SetHealthCheckPath(std::move(value)); return *this;} /** *

If the protocol is HTTP/S, then this value provides the ping path that Global * Accelerator uses for the destination on the endpoints for health checks. The * default is slash (/).

*/ inline EndpointGroup& WithHealthCheckPath(const char* value) { SetHealthCheckPath(value); return *this;} /** *

The time—10 seconds or 30 seconds—between health checks for each endpoint. * The default value is 30.

*/ inline int GetHealthCheckIntervalSeconds() const{ return m_healthCheckIntervalSeconds; } /** *

The time—10 seconds or 30 seconds—between health checks for each endpoint. * The default value is 30.

*/ inline bool HealthCheckIntervalSecondsHasBeenSet() const { return m_healthCheckIntervalSecondsHasBeenSet; } /** *

The time—10 seconds or 30 seconds—between health checks for each endpoint. * The default value is 30.

*/ inline void SetHealthCheckIntervalSeconds(int value) { m_healthCheckIntervalSecondsHasBeenSet = true; m_healthCheckIntervalSeconds = value; } /** *

The time—10 seconds or 30 seconds—between health checks for each endpoint. * The default value is 30.

*/ inline EndpointGroup& WithHealthCheckIntervalSeconds(int value) { SetHealthCheckIntervalSeconds(value); return *this;} /** *

The number of consecutive health checks required to set the state of a * healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The * default value is 3.

*/ inline int GetThresholdCount() const{ return m_thresholdCount; } /** *

The number of consecutive health checks required to set the state of a * healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The * default value is 3.

*/ inline bool ThresholdCountHasBeenSet() const { return m_thresholdCountHasBeenSet; } /** *

The number of consecutive health checks required to set the state of a * healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The * default value is 3.

*/ inline void SetThresholdCount(int value) { m_thresholdCountHasBeenSet = true; m_thresholdCount = value; } /** *

The number of consecutive health checks required to set the state of a * healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The * default value is 3.

*/ inline EndpointGroup& WithThresholdCount(int value) { SetThresholdCount(value); return *this;} /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline const Aws::Vector& GetPortOverrides() const{ return m_portOverrides; } /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline bool PortOverridesHasBeenSet() const { return m_portOverridesHasBeenSet; } /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline void SetPortOverrides(const Aws::Vector& value) { m_portOverridesHasBeenSet = true; m_portOverrides = value; } /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline void SetPortOverrides(Aws::Vector&& value) { m_portOverridesHasBeenSet = true; m_portOverrides = std::move(value); } /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline EndpointGroup& WithPortOverrides(const Aws::Vector& value) { SetPortOverrides(value); return *this;} /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline EndpointGroup& WithPortOverrides(Aws::Vector&& value) { SetPortOverrides(std::move(value)); return *this;} /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline EndpointGroup& AddPortOverrides(const PortOverride& value) { m_portOverridesHasBeenSet = true; m_portOverrides.push_back(value); return *this; } /** *

Allows you to override the destination ports used to route traffic to an * endpoint. Using a port override lets you map a list of external destination * ports (that your users send traffic to) to a list of internal destination ports * that you want an application endpoint to receive traffic on.

*/ inline EndpointGroup& AddPortOverrides(PortOverride&& value) { m_portOverridesHasBeenSet = true; m_portOverrides.push_back(std::move(value)); return *this; } private: Aws::String m_endpointGroupArn; bool m_endpointGroupArnHasBeenSet = false; Aws::String m_endpointGroupRegion; bool m_endpointGroupRegionHasBeenSet = false; Aws::Vector m_endpointDescriptions; bool m_endpointDescriptionsHasBeenSet = false; double m_trafficDialPercentage; bool m_trafficDialPercentageHasBeenSet = false; int m_healthCheckPort; bool m_healthCheckPortHasBeenSet = false; HealthCheckProtocol m_healthCheckProtocol; bool m_healthCheckProtocolHasBeenSet = false; Aws::String m_healthCheckPath; bool m_healthCheckPathHasBeenSet = false; int m_healthCheckIntervalSeconds; bool m_healthCheckIntervalSecondsHasBeenSet = false; int m_thresholdCount; bool m_thresholdCountHasBeenSet = false; Aws::Vector m_portOverrides; bool m_portOverridesHasBeenSet = false; }; } // namespace Model } // namespace GlobalAccelerator } // namespace Aws