/** * 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 ModifyClientVpnEndpointRequest : public EC2Request { public: AWS_EC2_API 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_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API 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 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 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 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 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 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 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 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 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 * Client VPN endpoint in the 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 * Client VPN endpoint in the 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 * Client VPN endpoint in the 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 * Client VPN endpoint in the 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;} /** *

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

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

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

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

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

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

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

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

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

*/ inline ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& WithClientConnectOptions(const ClientConnectOptions& value) { SetClientConnectOptions(value); return *this;} /** *

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

*/ inline ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& 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 ModifyClientVpnEndpointRequest& WithClientLoginBannerOptions(ClientLoginBannerOptions&& value) { SetClientLoginBannerOptions(std::move(value)); return *this;} private: Aws::String m_clientVpnEndpointId; bool m_clientVpnEndpointIdHasBeenSet = false; Aws::String m_serverCertificateArn; bool m_serverCertificateArnHasBeenSet = false; ConnectionLogOptions m_connectionLogOptions; bool m_connectionLogOptionsHasBeenSet = false; DnsServersOptionsModifyStructure m_dnsServers; bool m_dnsServersHasBeenSet = 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::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