/** * 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 namespace Aws { namespace EC2 { namespace Model { /** */ class AWS_EC2_API CreateClientVpnEndpointRequest : public EC2Request { public: 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::String SerializePayload() const override; protected: 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

*/ 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. * The CIDR block should be /22 or greater.

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

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

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

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

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

The ARN of the server certificate. For more information, see the AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS 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 AWS Client VPN endpoint.

*

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

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

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

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

*

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

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

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

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

*

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

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

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

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

*

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

For * information about split-tunnel VPN endpoints, see Split-Tunnel * AWS Client VPN Endpoint in the AWS 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;} private: Aws::String m_clientCidrBlock; bool m_clientCidrBlockHasBeenSet; Aws::String m_serverCertificateArn; bool m_serverCertificateArnHasBeenSet; Aws::Vector m_authenticationOptions; bool m_authenticationOptionsHasBeenSet; ConnectionLogOptions m_connectionLogOptions; bool m_connectionLogOptionsHasBeenSet; Aws::Vector m_dnsServers; bool m_dnsServersHasBeenSet; TransportProtocol m_transportProtocol; bool m_transportProtocolHasBeenSet; int m_vpnPort; bool m_vpnPortHasBeenSet; Aws::String m_description; bool m_descriptionHasBeenSet; bool m_splitTunnel; bool m_splitTunnelHasBeenSet; bool m_dryRun; bool m_dryRunHasBeenSet; Aws::String m_clientToken; bool m_clientTokenHasBeenSet; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet; Aws::String m_vpcId; bool m_vpcIdHasBeenSet; }; } // namespace Model } // namespace EC2 } // namespace Aws