/** * 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 namespace Aws { namespace GlobalAccelerator { namespace Model { /** */ class CreateEndpointGroupRequest : public GlobalAcceleratorRequest { public: AWS_GLOBALACCELERATOR_API CreateEndpointGroupRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateEndpointGroup"; } AWS_GLOBALACCELERATOR_API Aws::String SerializePayload() const override; AWS_GLOBALACCELERATOR_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline const Aws::String& GetListenerArn() const{ return m_listenerArn; } /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline bool ListenerArnHasBeenSet() const { return m_listenerArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline void SetListenerArn(const Aws::String& value) { m_listenerArnHasBeenSet = true; m_listenerArn = value; } /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline void SetListenerArn(Aws::String&& value) { m_listenerArnHasBeenSet = true; m_listenerArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline void SetListenerArn(const char* value) { m_listenerArnHasBeenSet = true; m_listenerArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline CreateEndpointGroupRequest& WithListenerArn(const Aws::String& value) { SetListenerArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline CreateEndpointGroupRequest& WithListenerArn(Aws::String&& value) { SetListenerArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the listener.

*/ inline CreateEndpointGroupRequest& WithListenerArn(const char* value) { SetListenerArn(value); return *this;} /** *

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

*/ 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. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The Amazon Web Services Region where the endpoint group is located. A * listener can have only one endpoint group in a specific Region.

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

The list of endpoint objects.

*/ inline const Aws::Vector& GetEndpointConfigurations() const{ return m_endpointConfigurations; } /** *

The list of endpoint objects.

*/ inline bool EndpointConfigurationsHasBeenSet() const { return m_endpointConfigurationsHasBeenSet; } /** *

The list of endpoint objects.

*/ inline void SetEndpointConfigurations(const Aws::Vector& value) { m_endpointConfigurationsHasBeenSet = true; m_endpointConfigurations = value; } /** *

The list of endpoint objects.

*/ inline void SetEndpointConfigurations(Aws::Vector&& value) { m_endpointConfigurationsHasBeenSet = true; m_endpointConfigurations = std::move(value); } /** *

The list of endpoint objects.

*/ inline CreateEndpointGroupRequest& WithEndpointConfigurations(const Aws::Vector& value) { SetEndpointConfigurations(value); return *this;} /** *

The list of endpoint objects.

*/ inline CreateEndpointGroupRequest& WithEndpointConfigurations(Aws::Vector&& value) { SetEndpointConfigurations(std::move(value)); return *this;} /** *

The list of endpoint objects.

*/ inline CreateEndpointGroupRequest& AddEndpointConfigurations(const EndpointConfiguration& value) { m_endpointConfigurationsHasBeenSet = true; m_endpointConfigurations.push_back(value); return *this; } /** *

The list of endpoint objects.

*/ inline CreateEndpointGroupRequest& AddEndpointConfigurations(EndpointConfiguration&& value) { m_endpointConfigurationsHasBeenSet = true; m_endpointConfigurations.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 CreateEndpointGroupRequest& WithTrafficDialPercentage(double value) { SetTrafficDialPercentage(value); return *this;} /** *

The port that Global Accelerator uses to check the health of endpoints that * are part of this endpoint group. The default port is the listener port that this * endpoint group is associated with. If listener port is a list of ports, Global * Accelerator uses the first port in the list.

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

The port that Global Accelerator uses to check the health of endpoints that * are part of this endpoint group. The default port is the listener port that this * endpoint group is associated with. If listener port is a list of ports, Global * Accelerator uses the first port in the list.

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

The port that Global Accelerator uses to check the health of endpoints that * are part of this endpoint group. The default port is the listener port that this * endpoint group is associated with. If listener port is a list of ports, Global * Accelerator uses the first port in the list.

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

The port that Global Accelerator uses to check the health of endpoints that * are part of this endpoint group. The default port is the listener port that this * endpoint group is associated with. If listener port is a list of ports, Global * Accelerator uses the first port in the list.

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

The protocol that Global Accelerator uses to check the health of 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 check the health of 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 check the health of 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 check the health of 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 check the health of endpoints * that are part of this endpoint group. The default value is TCP.

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

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

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

If the protocol is HTTP/S, then this specifies the path that is the * destination for health check targets. The default value is slash (/).

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

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

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

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

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

The time—10 seconds or 30 seconds—between each health check for an 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 each health check for an endpoint. * The default value is 30.

*/ inline CreateEndpointGroupRequest& 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 CreateEndpointGroupRequest& WithThresholdCount(int value) { SetThresholdCount(value); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline const Aws::String& GetIdempotencyToken() const{ return m_idempotencyToken; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline bool IdempotencyTokenHasBeenSet() const { return m_idempotencyTokenHasBeenSet; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline void SetIdempotencyToken(const Aws::String& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = value; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline void SetIdempotencyToken(Aws::String&& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = std::move(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline void SetIdempotencyToken(const char* value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken.assign(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline CreateEndpointGroupRequest& WithIdempotencyToken(const Aws::String& value) { SetIdempotencyToken(value); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline CreateEndpointGroupRequest& WithIdempotencyToken(Aws::String&& value) { SetIdempotencyToken(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency—that is, the uniqueness—of the request.

*/ inline CreateEndpointGroupRequest& WithIdempotencyToken(const char* value) { SetIdempotencyToken(value); return *this;} /** *

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

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

Override specific listener ports used to route traffic to endpoints that are * part of this endpoint group. For example, you can create a port override in * which the listener receives user traffic on ports 80 and 443, but your * accelerator routes that traffic to ports 1080 and 1443, respectively, on the * endpoints.

For more information, see * Overriding listener ports in the Global Accelerator Developer * Guide.

*/ inline CreateEndpointGroupRequest& AddPortOverrides(PortOverride&& value) { m_portOverridesHasBeenSet = true; m_portOverrides.push_back(std::move(value)); return *this; } private: Aws::String m_listenerArn; bool m_listenerArnHasBeenSet = false; Aws::String m_endpointGroupRegion; bool m_endpointGroupRegionHasBeenSet = false; Aws::Vector m_endpointConfigurations; bool m_endpointConfigurationsHasBeenSet = 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::String m_idempotencyToken; bool m_idempotencyTokenHasBeenSet = false; Aws::Vector m_portOverrides; bool m_portOverridesHasBeenSet = false; }; } // namespace Model } // namespace GlobalAccelerator } // namespace Aws