import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ClientConnectOptions { LambdaFunctionArn ? : Value < string > ; Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DirectoryServiceAuthenticationRequest { DirectoryId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TagSpecification { ResourceType ! : Value < string > ; Tags ! : List < ResourceTag > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ClientAuthenticationRequest { MutualAuthentication ? : CertificateAuthenticationRequest ; Type ! : Value < string > ; FederatedAuthentication ? : FederatedAuthenticationRequest ; ActiveDirectory ? : DirectoryServiceAuthenticationRequest ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FederatedAuthenticationRequest { SelfServiceSAMLProviderArn ? : Value < string > ; SAMLProviderArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ConnectionLogOptions { CloudwatchLogStream ? : Value < string > ; Enabled ! : Value < boolean > ; CloudwatchLogGroup ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CertificateAuthenticationRequest { ClientRootCertificateChainArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ClientVpnEndpointProperties { ClientCidrBlock : Value < string > ; ClientConnectOptions ? : ClientConnectOptions ; Description ? : Value < string > ; TagSpecifications ? : List < TagSpecification > ; AuthenticationOptions : List < ClientAuthenticationRequest > ; ServerCertificateArn : Value < string > ; DnsServers ? : List < Value < string > > ; SecurityGroupIds ? : List < Value < string > > ; ConnectionLogOptions : ConnectionLogOptions ; SplitTunnel ? : Value < boolean > ; VpcId ? : Value < string > ; SelfServicePortal ? : Value < string > ; TransportProtocol ? : Value < string > ; VpnPort ? : Value < number > ; } export default class ClientVpnEndpoint extends ResourceBase < ClientVpnEndpointProperties > { static ClientConnectOptions = ClientConnectOptions ; static DirectoryServiceAuthenticationRequest = DirectoryServiceAuthenticationRequest ; static TagSpecification = TagSpecification ; static ClientAuthenticationRequest = ClientAuthenticationRequest ; static FederatedAuthenticationRequest = FederatedAuthenticationRequest ; static ConnectionLogOptions = ConnectionLogOptions ; static CertificateAuthenticationRequest = CertificateAuthenticationRequest ; constructor ( properties ) { super ( 'AWS::EC2::ClientVpnEndpoint' , properties ) ; } }