/** * 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 EC2 { namespace Model { /** */ class CreateClientVpnEndpointRequest : public EC2Request { public: AWS_EC2_API CreateClientVpnEndpointRequest(); // 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 "CreateClientVpnEndpoint"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The IPv4 address range, in CIDR notation, from which to assign client IP * addresses. The address range cannot overlap with the local CIDR of the VPC in * which the associated subnet is located, or the routes that you add manually. The * address range cannot be changed after the Client VPN endpoint has been created. * Client CIDR range must have a size of at least /22 and must not be greater than * /12.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

The ARN of the server certificate. For more information, see the Certificate Manager * User Guide.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the authentication method to be used to authenticate * clients.

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

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

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

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

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

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

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

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

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

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

*/ inline CreateClientVpnEndpointRequest& WithConnectionLogOptions(const ConnectionLogOptions& value) { SetConnectionLogOptions(value); return *this;} /** *

Information about the client connection logging options.

If you enable * client connection logging, data about client connections is sent to a Cloudwatch * Logs log stream. The following information is logged:

  • Client * connection requests

  • Client connection results (successful and * unsuccessful)

  • Reasons for unsuccessful client connection * requests

  • Client connection termination time

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

*/ 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. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

Information about the DNS servers to be used for DNS resolution. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

*/ inline CreateClientVpnEndpointRequest& 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. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

*/ inline CreateClientVpnEndpointRequest& 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. A Client VPN * endpoint can have up to two DNS servers. If no DNS server is specified, the DNS * address configured on the device is used for the DNS server.

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The transport protocol to be used by the VPN session.

Default value: * udp

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

The port number to assign to the Client VPN endpoint for TCP and UDP * traffic.

Valid Values: 443 | 1194

*

Default Value: 443

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

The port number to assign to the Client VPN endpoint for TCP and UDP * traffic.

Valid Values: 443 | 1194

*

Default Value: 443

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

The port number to assign to the Client VPN endpoint for TCP and UDP * traffic.

Valid Values: 443 | 1194

*

Default Value: 443

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

The port number to assign to the Client VPN endpoint for TCP and UDP * traffic.

Valid Values: 443 | 1194

*

Default Value: 443

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

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

*

By default, split-tunnel on a VPN endpoint is disabled.

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 on the Client VPN endpoint.

*

By default, split-tunnel on a VPN endpoint is disabled.

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 on the Client VPN endpoint.

*

By default, split-tunnel on a VPN endpoint is disabled.

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 on the Client VPN endpoint.

*

By default, split-tunnel on a VPN endpoint is disabled.

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

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

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline CreateClientVpnEndpointRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateClientVpnEndpointRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateClientVpnEndpointRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateClientVpnEndpointRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline const Aws::Vector& GetTagSpecifications() const{ return m_tagSpecifications; } /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline void SetTagSpecifications(const Aws::Vector& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline void SetTagSpecifications(Aws::Vector&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline CreateClientVpnEndpointRequest& WithTagSpecifications(const Aws::Vector& value) { SetTagSpecifications(value); return *this;} /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline CreateClientVpnEndpointRequest& WithTagSpecifications(Aws::Vector&& value) { SetTagSpecifications(std::move(value)); return *this;} /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline CreateClientVpnEndpointRequest& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } /** *

The tags to apply to the Client VPN endpoint during creation.

*/ inline CreateClientVpnEndpointRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } /** *

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The IDs of one or more security groups to apply to the target network. You * must also specify the ID of the VPC that contains the security groups.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

The ID of the VPC to associate with the Client VPN endpoint. If no security * group IDs are specified in the request, the default security group for the VPC * is applied.

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

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline const SelfServicePortal& GetSelfServicePortal() const{ return m_selfServicePortal; } /** *

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline bool SelfServicePortalHasBeenSet() const { return m_selfServicePortalHasBeenSet; } /** *

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline void SetSelfServicePortal(const SelfServicePortal& value) { m_selfServicePortalHasBeenSet = true; m_selfServicePortal = value; } /** *

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline void SetSelfServicePortal(SelfServicePortal&& value) { m_selfServicePortalHasBeenSet = true; m_selfServicePortal = std::move(value); } /** *

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline CreateClientVpnEndpointRequest& WithSelfServicePortal(const SelfServicePortal& value) { SetSelfServicePortal(value); return *this;} /** *

Specify whether to enable the self-service portal for the Client VPN * endpoint.

Default Value: enabled

*/ inline CreateClientVpnEndpointRequest& WithSelfServicePortal(SelfServicePortal&& value) { SetSelfServicePortal(std::move(value)); return *this;} /** *

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

*/ inline const ClientConnectOptions& 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 ClientConnectOptions& value) { m_clientConnectOptionsHasBeenSet = true; m_clientConnectOptions = value; } /** *

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

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

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

*/ inline CreateClientVpnEndpointRequest& WithClientConnectOptions(const ClientConnectOptions& value) { SetClientConnectOptions(value); return *this;} /** *

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

*/ inline CreateClientVpnEndpointRequest& WithClientConnectOptions(ClientConnectOptions&& 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 CreateClientVpnEndpointRequest& 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 ClientLoginBannerOptions& 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 ClientLoginBannerOptions& 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(ClientLoginBannerOptions&& 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 CreateClientVpnEndpointRequest& WithClientLoginBannerOptions(const ClientLoginBannerOptions& 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 CreateClientVpnEndpointRequest& WithClientLoginBannerOptions(ClientLoginBannerOptions&& value) { SetClientLoginBannerOptions(std::move(value)); return *this;} private: Aws::String m_clientCidrBlock; bool m_clientCidrBlockHasBeenSet = false; Aws::String m_serverCertificateArn; bool m_serverCertificateArnHasBeenSet = false; Aws::Vector m_authenticationOptions; bool m_authenticationOptionsHasBeenSet = false; ConnectionLogOptions m_connectionLogOptions; bool m_connectionLogOptionsHasBeenSet = false; Aws::Vector m_dnsServers; bool m_dnsServersHasBeenSet = false; TransportProtocol m_transportProtocol; bool m_transportProtocolHasBeenSet = false; int m_vpnPort; bool m_vpnPortHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_splitTunnel; bool m_splitTunnelHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; SelfServicePortal m_selfServicePortal; bool m_selfServicePortalHasBeenSet = false; ClientConnectOptions m_clientConnectOptions; bool m_clientConnectOptionsHasBeenSet = false; int m_sessionTimeoutHours; bool m_sessionTimeoutHoursHasBeenSet = false; ClientLoginBannerOptions m_clientLoginBannerOptions; bool m_clientLoginBannerOptionsHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws