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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ID of the Client VPN endpoint to modify.

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

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

The ARN of the server certificate to be used. The server certificate must be * provisioned in AWS Certificate Manager (ACM).

*/ inline ModifyClientVpnEndpointRequest& WithServerCertificateArn(const char* value) { SetServerCertificateArn(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 ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& WithConnectionLogOptions(ConnectionLogOptions&& value) { SetConnectionLogOptions(std::move(value)); return *this;} /** *

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

*/ inline const DnsServersOptionsModifyStructure& GetDnsServers() const{ return m_dnsServers; } /** *

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

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

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

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

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

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

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

*/ inline ModifyClientVpnEndpointRequest& WithDnsServers(const DnsServersOptionsModifyStructure& value) { SetDnsServers(value); return *this;} /** *

Information about the DNS servers to be used by Client VPN connections. A * Client VPN endpoint can have up to two DNS servers.

*/ inline ModifyClientVpnEndpointRequest& WithDnsServers(DnsServersOptionsModifyStructure&& value) { SetDnsServers(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 ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A brief description of the Client VPN endpoint.

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

A brief description of the Client VPN endpoint.

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

Indicates whether the VPN is split-tunnel.

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 the VPN is split-tunnel.

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 the VPN is split-tunnel.

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 the VPN is split-tunnel.

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

*/ inline ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

The IDs of one or more security groups to apply to the target network.

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

The IDs of one or more security groups to apply to the target network.

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

The IDs of one or more security groups to apply to the target network.

*/ 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.

*/ 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.

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

The IDs of one or more security groups to apply to the target network.

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

The IDs of one or more security groups to apply to the target network.

*/ inline ModifyClientVpnEndpointRequest& 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.

*/ inline ModifyClientVpnEndpointRequest& 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.

*/ inline ModifyClientVpnEndpointRequest& 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.

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

The ID of the VPC to associate with the Client VPN endpoint.

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

The ID of the VPC to associate with the Client VPN endpoint.

*/ 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.

*/ 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.

*/ 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.

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

The ID of the VPC to associate with the Client VPN endpoint.

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

The ID of the VPC to associate with the Client VPN endpoint.

*/ inline ModifyClientVpnEndpointRequest& WithVpcId(const char* value) { SetVpcId(value); return *this;} private: Aws::String m_clientVpnEndpointId; bool m_clientVpnEndpointIdHasBeenSet; Aws::String m_serverCertificateArn; bool m_serverCertificateArnHasBeenSet; ConnectionLogOptions m_connectionLogOptions; bool m_connectionLogOptionsHasBeenSet; DnsServersOptionsModifyStructure m_dnsServers; bool m_dnsServersHasBeenSet; 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::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet; Aws::String m_vpcId; bool m_vpcIdHasBeenSet; }; } // namespace Model } // namespace EC2 } // namespace Aws