/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes a Client VPN endpoint.

See Also:

AWS * API Reference

*/ class ClientVpnEndpoint { public: AWS_EC2_API ClientVpnEndpoint(); AWS_EC2_API ClientVpnEndpoint(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API ClientVpnEndpoint& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The ID of the Client VPN endpoint.

*/ inline const Aws::String& GetClientVpnEndpointId() const{ return m_clientVpnEndpointId; } /** *

The ID of the Client VPN endpoint.

*/ inline bool ClientVpnEndpointIdHasBeenSet() const { return m_clientVpnEndpointIdHasBeenSet; } /** *

The ID of the Client VPN endpoint.

*/ inline void SetClientVpnEndpointId(const Aws::String& value) { m_clientVpnEndpointIdHasBeenSet = true; m_clientVpnEndpointId = value; } /** *

The ID of the Client VPN endpoint.

*/ inline void SetClientVpnEndpointId(Aws::String&& value) { m_clientVpnEndpointIdHasBeenSet = true; m_clientVpnEndpointId = std::move(value); } /** *

The ID of the Client VPN endpoint.

*/ inline void SetClientVpnEndpointId(const char* value) { m_clientVpnEndpointIdHasBeenSet = true; m_clientVpnEndpointId.assign(value); } /** *

The ID of the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithClientVpnEndpointId(const Aws::String& value) { SetClientVpnEndpointId(value); return *this;} /** *

The ID of the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithClientVpnEndpointId(Aws::String&& value) { SetClientVpnEndpointId(std::move(value)); return *this;} /** *

The ID of the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithClientVpnEndpointId(const char* value) { SetClientVpnEndpointId(value); return *this;} /** *

A brief description of the endpoint.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A brief description of the endpoint.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A brief description of the endpoint.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A brief description of the endpoint.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A brief description of the endpoint.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A brief description of the endpoint.

*/ inline ClientVpnEndpoint& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A brief description of the endpoint.

*/ inline ClientVpnEndpoint& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A brief description of the endpoint.

*/ inline ClientVpnEndpoint& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The current state of the Client VPN endpoint.

*/ inline const ClientVpnEndpointStatus& GetStatus() const{ return m_status; } /** *

The current state of the Client VPN endpoint.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current state of the Client VPN endpoint.

*/ inline void SetStatus(const ClientVpnEndpointStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current state of the Client VPN endpoint.

*/ inline void SetStatus(ClientVpnEndpointStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current state of the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithStatus(const ClientVpnEndpointStatus& value) { SetStatus(value); return *this;} /** *

The current state of the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithStatus(ClientVpnEndpointStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The date and time the Client VPN endpoint was created.

*/ inline const Aws::String& GetCreationTime() const{ return m_creationTime; } /** *

The date and time the Client VPN endpoint was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The date and time the Client VPN endpoint was created.

*/ inline void SetCreationTime(const Aws::String& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The date and time the Client VPN endpoint was created.

*/ inline void SetCreationTime(Aws::String&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The date and time the Client VPN endpoint was created.

*/ inline void SetCreationTime(const char* value) { m_creationTimeHasBeenSet = true; m_creationTime.assign(value); } /** *

The date and time the Client VPN endpoint was created.

*/ inline ClientVpnEndpoint& WithCreationTime(const Aws::String& value) { SetCreationTime(value); return *this;} /** *

The date and time the Client VPN endpoint was created.

*/ inline ClientVpnEndpoint& WithCreationTime(Aws::String&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The date and time the Client VPN endpoint was created.

*/ inline ClientVpnEndpoint& WithCreationTime(const char* value) { SetCreationTime(value); return *this;} /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline const Aws::String& GetDeletionTime() const{ return m_deletionTime; } /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline bool DeletionTimeHasBeenSet() const { return m_deletionTimeHasBeenSet; } /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline void SetDeletionTime(const Aws::String& value) { m_deletionTimeHasBeenSet = true; m_deletionTime = value; } /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline void SetDeletionTime(Aws::String&& value) { m_deletionTimeHasBeenSet = true; m_deletionTime = std::move(value); } /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline void SetDeletionTime(const char* value) { m_deletionTimeHasBeenSet = true; m_deletionTime.assign(value); } /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline ClientVpnEndpoint& WithDeletionTime(const Aws::String& value) { SetDeletionTime(value); return *this;} /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline ClientVpnEndpoint& WithDeletionTime(Aws::String&& value) { SetDeletionTime(std::move(value)); return *this;} /** *

The date and time the Client VPN endpoint was deleted, if applicable.

*/ inline ClientVpnEndpoint& WithDeletionTime(const char* value) { SetDeletionTime(value); return *this;} /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline const Aws::String& GetDnsName() const{ return m_dnsName; } /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline bool DnsNameHasBeenSet() const { return m_dnsNameHasBeenSet; } /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline void SetDnsName(const Aws::String& value) { m_dnsNameHasBeenSet = true; m_dnsName = value; } /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline void SetDnsName(Aws::String&& value) { m_dnsNameHasBeenSet = true; m_dnsName = std::move(value); } /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline void SetDnsName(const char* value) { m_dnsNameHasBeenSet = true; m_dnsName.assign(value); } /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithDnsName(const Aws::String& value) { SetDnsName(value); return *this;} /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithDnsName(Aws::String&& value) { SetDnsName(std::move(value)); return *this;} /** *

The DNS name to be used by clients when connecting to the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithDnsName(const char* value) { SetDnsName(value); return *this;} /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline const Aws::String& GetClientCidrBlock() const{ return m_clientCidrBlock; } /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline bool ClientCidrBlockHasBeenSet() const { return m_clientCidrBlockHasBeenSet; } /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline void SetClientCidrBlock(const Aws::String& value) { m_clientCidrBlockHasBeenSet = true; m_clientCidrBlock = value; } /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline void SetClientCidrBlock(Aws::String&& value) { m_clientCidrBlockHasBeenSet = true; m_clientCidrBlock = std::move(value); } /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline void SetClientCidrBlock(const char* value) { m_clientCidrBlockHasBeenSet = true; m_clientCidrBlock.assign(value); } /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline ClientVpnEndpoint& WithClientCidrBlock(const Aws::String& value) { SetClientCidrBlock(value); return *this;} /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline ClientVpnEndpoint& WithClientCidrBlock(Aws::String&& value) { SetClientCidrBlock(std::move(value)); return *this;} /** *

The IPv4 address range, in CIDR notation, from which client IP addresses are * assigned.

*/ inline ClientVpnEndpoint& WithClientCidrBlock(const char* value) { SetClientCidrBlock(value); return *this;} /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline const Aws::Vector& GetDnsServers() const{ return m_dnsServers; } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline bool DnsServersHasBeenSet() const { return m_dnsServersHasBeenSet; } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline void SetDnsServers(const Aws::Vector& value) { m_dnsServersHasBeenSet = true; m_dnsServers = value; } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline void SetDnsServers(Aws::Vector&& value) { m_dnsServersHasBeenSet = true; m_dnsServers = std::move(value); } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline ClientVpnEndpoint& WithDnsServers(const Aws::Vector& value) { SetDnsServers(value); return *this;} /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline ClientVpnEndpoint& WithDnsServers(Aws::Vector&& value) { SetDnsServers(std::move(value)); return *this;} /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline ClientVpnEndpoint& AddDnsServers(const Aws::String& value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(value); return *this; } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline ClientVpnEndpoint& AddDnsServers(Aws::String&& value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(std::move(value)); return *this; } /** *

Information about the DNS servers to be used for DNS resolution.

*/ inline ClientVpnEndpoint& AddDnsServers(const char* value) { m_dnsServersHasBeenSet = true; m_dnsServers.push_back(value); return *this; } /** *

Indicates whether split-tunnel is enabled in the Client VPN endpoint.

*

For information about split-tunnel VPN endpoints, see Split-Tunnel * Client VPN endpoint in the Client VPN Administrator Guide.

*/ inline bool GetSplitTunnel() const{ return m_splitTunnel; } /** *

Indicates whether split-tunnel is enabled in the Client VPN endpoint.

*

For information about split-tunnel VPN endpoints, see Split-Tunnel * Client VPN endpoint in the Client VPN Administrator Guide.

*/ inline bool SplitTunnelHasBeenSet() const { return m_splitTunnelHasBeenSet; } /** *

Indicates whether split-tunnel is enabled in the Client VPN endpoint.

*

For information about split-tunnel VPN endpoints, see Split-Tunnel * Client VPN endpoint in the Client VPN Administrator Guide.

*/ inline void SetSplitTunnel(bool value) { m_splitTunnelHasBeenSet = true; m_splitTunnel = value; } /** *

Indicates whether split-tunnel is enabled in the Client VPN endpoint.

*

For information about split-tunnel VPN endpoints, see Split-Tunnel * Client VPN endpoint in the Client VPN Administrator Guide.

*/ inline ClientVpnEndpoint& WithSplitTunnel(bool value) { SetSplitTunnel(value); return *this;} /** *

The protocol used by the VPN session.

*/ inline const VpnProtocol& GetVpnProtocol() const{ return m_vpnProtocol; } /** *

The protocol used by the VPN session.

*/ inline bool VpnProtocolHasBeenSet() const { return m_vpnProtocolHasBeenSet; } /** *

The protocol used by the VPN session.

*/ inline void SetVpnProtocol(const VpnProtocol& value) { m_vpnProtocolHasBeenSet = true; m_vpnProtocol = value; } /** *

The protocol used by the VPN session.

*/ inline void SetVpnProtocol(VpnProtocol&& value) { m_vpnProtocolHasBeenSet = true; m_vpnProtocol = std::move(value); } /** *

The protocol used by the VPN session.

*/ inline ClientVpnEndpoint& WithVpnProtocol(const VpnProtocol& value) { SetVpnProtocol(value); return *this;} /** *

The protocol used by the VPN session.

*/ inline ClientVpnEndpoint& WithVpnProtocol(VpnProtocol&& value) { SetVpnProtocol(std::move(value)); return *this;} /** *

The transport protocol used by the Client VPN endpoint.

*/ inline const TransportProtocol& GetTransportProtocol() const{ return m_transportProtocol; } /** *

The transport protocol used by the Client VPN endpoint.

*/ inline bool TransportProtocolHasBeenSet() const { return m_transportProtocolHasBeenSet; } /** *

The transport protocol used by the Client VPN endpoint.

*/ inline void SetTransportProtocol(const TransportProtocol& value) { m_transportProtocolHasBeenSet = true; m_transportProtocol = value; } /** *

The transport protocol used by the Client VPN endpoint.

*/ inline void SetTransportProtocol(TransportProtocol&& value) { m_transportProtocolHasBeenSet = true; m_transportProtocol = std::move(value); } /** *

The transport protocol used by the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithTransportProtocol(const TransportProtocol& value) { SetTransportProtocol(value); return *this;} /** *

The transport protocol used by the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithTransportProtocol(TransportProtocol&& value) { SetTransportProtocol(std::move(value)); return *this;} /** *

The port number for the Client VPN endpoint.

*/ inline int GetVpnPort() const{ return m_vpnPort; } /** *

The port number for the Client VPN endpoint.

*/ inline bool VpnPortHasBeenSet() const { return m_vpnPortHasBeenSet; } /** *

The port number for the Client VPN endpoint.

*/ inline void SetVpnPort(int value) { m_vpnPortHasBeenSet = true; m_vpnPort = value; } /** *

The port number for the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithVpnPort(int value) { SetVpnPort(value); return *this;} /** *

The ARN of the server certificate.

*/ inline const Aws::String& GetServerCertificateArn() const{ return m_serverCertificateArn; } /** *

The ARN of the server certificate.

*/ inline bool ServerCertificateArnHasBeenSet() const { return m_serverCertificateArnHasBeenSet; } /** *

The ARN of the server certificate.

*/ inline void SetServerCertificateArn(const Aws::String& value) { m_serverCertificateArnHasBeenSet = true; m_serverCertificateArn = value; } /** *

The ARN of the server certificate.

*/ inline void SetServerCertificateArn(Aws::String&& value) { m_serverCertificateArnHasBeenSet = true; m_serverCertificateArn = std::move(value); } /** *

The ARN of the server certificate.

*/ inline void SetServerCertificateArn(const char* value) { m_serverCertificateArnHasBeenSet = true; m_serverCertificateArn.assign(value); } /** *

The ARN of the server certificate.

*/ inline ClientVpnEndpoint& WithServerCertificateArn(const Aws::String& value) { SetServerCertificateArn(value); return *this;} /** *

The ARN of the server certificate.

*/ inline ClientVpnEndpoint& WithServerCertificateArn(Aws::String&& value) { SetServerCertificateArn(std::move(value)); return *this;} /** *

The ARN of the server certificate.

*/ inline ClientVpnEndpoint& WithServerCertificateArn(const char* value) { SetServerCertificateArn(value); return *this;} /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline const Aws::Vector& GetAuthenticationOptions() const{ return m_authenticationOptions; } /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline bool AuthenticationOptionsHasBeenSet() const { return m_authenticationOptionsHasBeenSet; } /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline void SetAuthenticationOptions(const Aws::Vector& value) { m_authenticationOptionsHasBeenSet = true; m_authenticationOptions = value; } /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline void SetAuthenticationOptions(Aws::Vector&& value) { m_authenticationOptionsHasBeenSet = true; m_authenticationOptions = std::move(value); } /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithAuthenticationOptions(const Aws::Vector& value) { SetAuthenticationOptions(value); return *this;} /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithAuthenticationOptions(Aws::Vector&& value) { SetAuthenticationOptions(std::move(value)); return *this;} /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& AddAuthenticationOptions(const ClientVpnAuthentication& value) { m_authenticationOptionsHasBeenSet = true; m_authenticationOptions.push_back(value); return *this; } /** *

Information about the authentication method used by the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& AddAuthenticationOptions(ClientVpnAuthentication&& value) { m_authenticationOptionsHasBeenSet = true; m_authenticationOptions.push_back(std::move(value)); return *this; } /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline const ConnectionLogResponseOptions& GetConnectionLogOptions() const{ return m_connectionLogOptions; } /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline bool ConnectionLogOptionsHasBeenSet() const { return m_connectionLogOptionsHasBeenSet; } /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline void SetConnectionLogOptions(const ConnectionLogResponseOptions& value) { m_connectionLogOptionsHasBeenSet = true; m_connectionLogOptions = value; } /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline void SetConnectionLogOptions(ConnectionLogResponseOptions&& value) { m_connectionLogOptionsHasBeenSet = true; m_connectionLogOptions = std::move(value); } /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithConnectionLogOptions(const ConnectionLogResponseOptions& value) { SetConnectionLogOptions(value); return *this;} /** *

Information about the client connection logging options for the Client VPN * endpoint.

*/ inline ClientVpnEndpoint& WithConnectionLogOptions(ConnectionLogResponseOptions&& value) { SetConnectionLogOptions(std::move(value)); return *this;} /** *

Any tags assigned to the Client VPN endpoint.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Any tags assigned to the Client VPN endpoint.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Any tags assigned to the Client VPN endpoint.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Any tags assigned to the Client VPN endpoint.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Any tags assigned to the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Any tags assigned to the Client VPN endpoint.

*/ inline ClientVpnEndpoint& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Any tags assigned to the Client VPN endpoint.

*/ inline ClientVpnEndpoint& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Any tags assigned to the Client VPN endpoint.

*/ inline ClientVpnEndpoint& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The IDs of the security groups for the target network.

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

The IDs of the security groups for the target network.

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

The IDs of the security groups for the target network.

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

The IDs of the security groups for the target network.

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

The IDs of the security groups for the target network.

*/ inline ClientVpnEndpoint& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

The IDs of the security groups for the target network.

*/ inline ClientVpnEndpoint& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

The IDs of the security groups for the target network.

*/ inline ClientVpnEndpoint& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

The IDs of the security groups for the target network.

*/ inline ClientVpnEndpoint& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

The IDs of the security groups for the target network.

*/ inline ClientVpnEndpoint& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

The ID of the VPC.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the VPC.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the VPC.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the VPC.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the VPC.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the VPC.

*/ inline ClientVpnEndpoint& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the VPC.

*/ inline ClientVpnEndpoint& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the VPC.

*/ inline ClientVpnEndpoint& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The URL of the self-service portal.

*/ inline const Aws::String& GetSelfServicePortalUrl() const{ return m_selfServicePortalUrl; } /** *

The URL of the self-service portal.

*/ inline bool SelfServicePortalUrlHasBeenSet() const { return m_selfServicePortalUrlHasBeenSet; } /** *

The URL of the self-service portal.

*/ inline void SetSelfServicePortalUrl(const Aws::String& value) { m_selfServicePortalUrlHasBeenSet = true; m_selfServicePortalUrl = value; } /** *

The URL of the self-service portal.

*/ inline void SetSelfServicePortalUrl(Aws::String&& value) { m_selfServicePortalUrlHasBeenSet = true; m_selfServicePortalUrl = std::move(value); } /** *

The URL of the self-service portal.

*/ inline void SetSelfServicePortalUrl(const char* value) { m_selfServicePortalUrlHasBeenSet = true; m_selfServicePortalUrl.assign(value); } /** *

The URL of the self-service portal.

*/ inline ClientVpnEndpoint& WithSelfServicePortalUrl(const Aws::String& value) { SetSelfServicePortalUrl(value); return *this;} /** *

The URL of the self-service portal.

*/ inline ClientVpnEndpoint& WithSelfServicePortalUrl(Aws::String&& value) { SetSelfServicePortalUrl(std::move(value)); return *this;} /** *

The URL of the self-service portal.

*/ inline ClientVpnEndpoint& WithSelfServicePortalUrl(const char* value) { SetSelfServicePortalUrl(value); return *this;} /** *

The options for managing connection authorization for new client * connections.

*/ inline const ClientConnectResponseOptions& GetClientConnectOptions() const{ return m_clientConnectOptions; } /** *

The options for managing connection authorization for new client * connections.

*/ inline bool ClientConnectOptionsHasBeenSet() const { return m_clientConnectOptionsHasBeenSet; } /** *

The options for managing connection authorization for new client * connections.

*/ inline void SetClientConnectOptions(const ClientConnectResponseOptions& value) { m_clientConnectOptionsHasBeenSet = true; m_clientConnectOptions = value; } /** *

The options for managing connection authorization for new client * connections.

*/ inline void SetClientConnectOptions(ClientConnectResponseOptions&& value) { m_clientConnectOptionsHasBeenSet = true; m_clientConnectOptions = std::move(value); } /** *

The options for managing connection authorization for new client * connections.

*/ inline ClientVpnEndpoint& WithClientConnectOptions(const ClientConnectResponseOptions& value) { SetClientConnectOptions(value); return *this;} /** *

The options for managing connection authorization for new client * connections.

*/ inline ClientVpnEndpoint& WithClientConnectOptions(ClientConnectResponseOptions&& value) { SetClientConnectOptions(std::move(value)); return *this;} /** *

The maximum VPN session duration time in hours.

Valid values: 8 * | 10 | 12 | 24

Default value: 24

*/ inline int GetSessionTimeoutHours() const{ return m_sessionTimeoutHours; } /** *

The maximum VPN session duration time in hours.

Valid values: 8 * | 10 | 12 | 24

Default value: 24

*/ inline bool SessionTimeoutHoursHasBeenSet() const { return m_sessionTimeoutHoursHasBeenSet; } /** *

The maximum VPN session duration time in hours.

Valid values: 8 * | 10 | 12 | 24

Default value: 24

*/ inline void SetSessionTimeoutHours(int value) { m_sessionTimeoutHoursHasBeenSet = true; m_sessionTimeoutHours = value; } /** *

The maximum VPN session duration time in hours.

Valid values: 8 * | 10 | 12 | 24

Default value: 24

*/ inline ClientVpnEndpoint& WithSessionTimeoutHours(int value) { SetSessionTimeoutHours(value); return *this;} /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline const ClientLoginBannerResponseOptions& GetClientLoginBannerOptions() const{ return m_clientLoginBannerOptions; } /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline bool ClientLoginBannerOptionsHasBeenSet() const { return m_clientLoginBannerOptionsHasBeenSet; } /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline void SetClientLoginBannerOptions(const ClientLoginBannerResponseOptions& value) { m_clientLoginBannerOptionsHasBeenSet = true; m_clientLoginBannerOptions = value; } /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline void SetClientLoginBannerOptions(ClientLoginBannerResponseOptions&& value) { m_clientLoginBannerOptionsHasBeenSet = true; m_clientLoginBannerOptions = std::move(value); } /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline ClientVpnEndpoint& WithClientLoginBannerOptions(const ClientLoginBannerResponseOptions& value) { SetClientLoginBannerOptions(value); return *this;} /** *

Options for enabling a customizable text banner that will be displayed on * Amazon Web Services provided clients when a VPN session is established.

*/ inline ClientVpnEndpoint& WithClientLoginBannerOptions(ClientLoginBannerResponseOptions&& value) { SetClientLoginBannerOptions(std::move(value)); return *this;} private: Aws::String m_clientVpnEndpointId; bool m_clientVpnEndpointIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; ClientVpnEndpointStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::String m_deletionTime; bool m_deletionTimeHasBeenSet = false; Aws::String m_dnsName; bool m_dnsNameHasBeenSet = false; Aws::String m_clientCidrBlock; bool m_clientCidrBlockHasBeenSet = false; Aws::Vector m_dnsServers; bool m_dnsServersHasBeenSet = false; bool m_splitTunnel; bool m_splitTunnelHasBeenSet = false; VpnProtocol m_vpnProtocol; bool m_vpnProtocolHasBeenSet = false; TransportProtocol m_transportProtocol; bool m_transportProtocolHasBeenSet = false; int m_vpnPort; bool m_vpnPortHasBeenSet = false; Aws::String m_serverCertificateArn; bool m_serverCertificateArnHasBeenSet = false; Aws::Vector m_authenticationOptions; bool m_authenticationOptionsHasBeenSet = false; ConnectionLogResponseOptions m_connectionLogOptions; bool m_connectionLogOptionsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::String m_selfServicePortalUrl; bool m_selfServicePortalUrlHasBeenSet = false; ClientConnectResponseOptions m_clientConnectOptions; bool m_clientConnectOptionsHasBeenSet = false; int m_sessionTimeoutHours; bool m_sessionTimeoutHoursHasBeenSet = false; ClientLoginBannerResponseOptions m_clientLoginBannerOptions; bool m_clientLoginBannerOptionsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws