/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the ec2-2016-11-15.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.EC2.Model
{
///
/// Container for the parameters to the CreateClientVpnEndpoint operation.
/// Creates a Client VPN endpoint. A Client VPN endpoint is the resource you create and
/// configure to enable and manage client VPN sessions. It is the destination endpoint
/// at which all client VPN sessions are terminated.
///
public partial class CreateClientVpnEndpointRequest : AmazonEC2Request
{
private List _authenticationOptions = new List();
private string _clientCidrBlock;
private ClientConnectOptions _clientConnectOptions;
private ClientLoginBannerOptions _clientLoginBannerOptions;
private string _clientToken;
private ConnectionLogOptions _connectionLogOptions;
private string _description;
private List _dnsServers = new List();
private List _securityGroupIds = new List();
private SelfServicePortal _selfServicePortal;
private string _serverCertificateArn;
private int? _sessionTimeoutHours;
private bool? _splitTunnel;
private List _tagSpecifications = new List();
private TransportProtocol _transportProtocol;
private string _vpcId;
private int? _vpnPort;
///
/// Gets and sets the property AuthenticationOptions.
///
/// Information about the authentication method to be used to authenticate clients.
///
///
[AWSProperty(Required=true)]
public List AuthenticationOptions
{
get { return this._authenticationOptions; }
set { this._authenticationOptions = value; }
}
// Check to see if AuthenticationOptions property is set
internal bool IsSetAuthenticationOptions()
{
return this._authenticationOptions != null && this._authenticationOptions.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public string ClientCidrBlock
{
get { return this._clientCidrBlock; }
set { this._clientCidrBlock = value; }
}
// Check to see if ClientCidrBlock property is set
internal bool IsSetClientCidrBlock()
{
return this._clientCidrBlock != null;
}
///
/// Gets and sets the property ClientConnectOptions.
///
/// The options for managing connection authorization for new client connections.
///
///
public ClientConnectOptions ClientConnectOptions
{
get { return this._clientConnectOptions; }
set { this._clientConnectOptions = value; }
}
// Check to see if ClientConnectOptions property is set
internal bool IsSetClientConnectOptions()
{
return this._clientConnectOptions != null;
}
///
/// Gets and sets the property ClientLoginBannerOptions.
///
/// Options for enabling a customizable text banner that will be displayed on Amazon Web
/// Services provided clients when a VPN session is established.
///
///
public ClientLoginBannerOptions ClientLoginBannerOptions
{
get { return this._clientLoginBannerOptions; }
set { this._clientLoginBannerOptions = value; }
}
// Check to see if ClientLoginBannerOptions property is set
internal bool IsSetClientLoginBannerOptions()
{
return this._clientLoginBannerOptions != null;
}
///
/// Gets and sets the property ClientToken.
///
/// Unique, case-sensitive identifier that you provide to ensure the idempotency of the
/// request. For more information, see How
/// to ensure idempotency.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property 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
///
///
///
[AWSProperty(Required=true)]
public ConnectionLogOptions ConnectionLogOptions
{
get { return this._connectionLogOptions; }
set { this._connectionLogOptions = value; }
}
// Check to see if ConnectionLogOptions property is set
internal bool IsSetConnectionLogOptions()
{
return this._connectionLogOptions != null;
}
///
/// Gets and sets the property Description.
///
/// A brief description of the Client VPN endpoint.
///
///
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property 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.
///
///
public List DnsServers
{
get { return this._dnsServers; }
set { this._dnsServers = value; }
}
// Check to see if DnsServers property is set
internal bool IsSetDnsServers()
{
return this._dnsServers != null && this._dnsServers.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property SelfServicePortal.
///
/// Specify whether to enable the self-service portal for the Client VPN endpoint.
///
///
///
/// Default Value: enabled
///
///
public SelfServicePortal SelfServicePortal
{
get { return this._selfServicePortal; }
set { this._selfServicePortal = value; }
}
// Check to see if SelfServicePortal property is set
internal bool IsSetSelfServicePortal()
{
return this._selfServicePortal != null;
}
///
/// Gets and sets the property ServerCertificateArn.
///
/// The ARN of the server certificate. For more information, see the Certificate
/// Manager User Guide.
///
///
[AWSProperty(Required=true)]
public string ServerCertificateArn
{
get { return this._serverCertificateArn; }
set { this._serverCertificateArn = value; }
}
// Check to see if ServerCertificateArn property is set
internal bool IsSetServerCertificateArn()
{
return this._serverCertificateArn != null;
}
///
/// Gets and sets the property SessionTimeoutHours.
///
/// The maximum VPN session duration time in hours.
///
///
///
/// Valid values: 8 | 10 | 12 | 24
///
///
///
/// Default value: 24
///
///
public int SessionTimeoutHours
{
get { return this._sessionTimeoutHours.GetValueOrDefault(); }
set { this._sessionTimeoutHours = value; }
}
// Check to see if SessionTimeoutHours property is set
internal bool IsSetSessionTimeoutHours()
{
return this._sessionTimeoutHours.HasValue;
}
///
/// Gets and sets the property 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.
///
///
public bool SplitTunnel
{
get { return this._splitTunnel.GetValueOrDefault(); }
set { this._splitTunnel = value; }
}
// Check to see if SplitTunnel property is set
internal bool IsSetSplitTunnel()
{
return this._splitTunnel.HasValue;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to apply to the Client VPN endpoint during creation.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
///
/// Gets and sets the property TransportProtocol.
///
/// The transport protocol to be used by the VPN session.
///
///
///
/// Default value: udp
///
///
public TransportProtocol TransportProtocol
{
get { return this._transportProtocol; }
set { this._transportProtocol = value; }
}
// Check to see if TransportProtocol property is set
internal bool IsSetTransportProtocol()
{
return this._transportProtocol != null;
}
///
/// Gets and sets the property 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.
///
///
public string VpcId
{
get { return this._vpcId; }
set { this._vpcId = value; }
}
// Check to see if VpcId property is set
internal bool IsSetVpcId()
{
return this._vpcId != null;
}
///
/// Gets and sets the property VpnPort.
///
/// The port number to assign to the Client VPN endpoint for TCP and UDP traffic.
///
///
///
/// Valid Values: 443
| 1194
///
///
///
/// Default Value: 443
///
///
public int VpnPort
{
get { return this._vpnPort.GetValueOrDefault(); }
set { this._vpnPort = value; }
}
// Check to see if VpnPort property is set
internal bool IsSetVpnPort()
{
return this._vpnPort.HasValue;
}
}
}