/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #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 for a custom routing accelerator. An * Amazon Web Services Region can have only one endpoint group for a specific * listener.

See Also:

AWS * API Reference

*/ class CustomRoutingEndpointGroup { public: AWS_GLOBALACCELERATOR_API CustomRoutingEndpointGroup(); AWS_GLOBALACCELERATOR_API CustomRoutingEndpointGroup(Aws::Utils::Json::JsonView jsonValue); AWS_GLOBALACCELERATOR_API CustomRoutingEndpointGroup& 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 CustomRoutingEndpointGroup& WithEndpointGroupArn(const Aws::String& value) { SetEndpointGroupArn(value); return *this;} /** *

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

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

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

*/ inline CustomRoutingEndpointGroup& 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 CustomRoutingEndpointGroup& WithEndpointGroupRegion(const Aws::String& value) { SetEndpointGroupRegion(value); return *this;} /** *

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

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

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

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

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline const Aws::Vector& GetDestinationDescriptions() const{ return m_destinationDescriptions; } /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline bool DestinationDescriptionsHasBeenSet() const { return m_destinationDescriptionsHasBeenSet; } /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline void SetDestinationDescriptions(const Aws::Vector& value) { m_destinationDescriptionsHasBeenSet = true; m_destinationDescriptions = value; } /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline void SetDestinationDescriptions(Aws::Vector&& value) { m_destinationDescriptionsHasBeenSet = true; m_destinationDescriptions = std::move(value); } /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline CustomRoutingEndpointGroup& WithDestinationDescriptions(const Aws::Vector& value) { SetDestinationDescriptions(value); return *this;} /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline CustomRoutingEndpointGroup& WithDestinationDescriptions(Aws::Vector&& value) { SetDestinationDescriptions(std::move(value)); return *this;} /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline CustomRoutingEndpointGroup& AddDestinationDescriptions(const CustomRoutingDestinationDescription& value) { m_destinationDescriptionsHasBeenSet = true; m_destinationDescriptions.push_back(value); return *this; } /** *

For a custom routing accelerator, describes the port range and protocol for * all endpoints (virtual private cloud subnets) in an endpoint group to accept * client traffic on.

*/ inline CustomRoutingEndpointGroup& AddDestinationDescriptions(CustomRoutingDestinationDescription&& value) { m_destinationDescriptionsHasBeenSet = true; m_destinationDescriptions.push_back(std::move(value)); return *this; } /** *

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

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

For a custom routing accelerator, describes the endpoints (virtual private * cloud subnets) in an endpoint group to accept client traffic on.

*/ inline CustomRoutingEndpointGroup& AddEndpointDescriptions(CustomRoutingEndpointDescription&& value) { m_endpointDescriptionsHasBeenSet = true; m_endpointDescriptions.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_destinationDescriptions; bool m_destinationDescriptionsHasBeenSet = false; Aws::Vector m_endpointDescriptions; bool m_endpointDescriptionsHasBeenSet = false; }; } // namespace Model } // namespace GlobalAccelerator } // namespace Aws