stratosphere-0.51.0: library-gen/Stratosphere/Resources/EC2ClientVpnEndpoint.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html
module Stratosphere.Resources.EC2ClientVpnEndpoint where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointClientAuthenticationRequest
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointConnectionLogOptions
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointTagSpecification
-- | Full data type definition for EC2ClientVpnEndpoint. See
-- 'ec2ClientVpnEndpoint' for a more convenient constructor.
data EC2ClientVpnEndpoint =
EC2ClientVpnEndpoint
{ _eC2ClientVpnEndpointAuthenticationOptions :: [EC2ClientVpnEndpointClientAuthenticationRequest]
, _eC2ClientVpnEndpointClientCidrBlock :: Val Text
, _eC2ClientVpnEndpointConnectionLogOptions :: EC2ClientVpnEndpointConnectionLogOptions
, _eC2ClientVpnEndpointDescription :: Maybe (Val Text)
, _eC2ClientVpnEndpointDnsServers :: Maybe (ValList Text)
, _eC2ClientVpnEndpointSecurityGroupIds :: Maybe (ValList Text)
, _eC2ClientVpnEndpointServerCertificateArn :: Val Text
, _eC2ClientVpnEndpointSplitTunnel :: Maybe (Val Bool)
, _eC2ClientVpnEndpointTagSpecifications :: Maybe [EC2ClientVpnEndpointTagSpecification]
, _eC2ClientVpnEndpointTransportProtocol :: Maybe (Val Text)
, _eC2ClientVpnEndpointVpcId :: Maybe (Val Text)
, _eC2ClientVpnEndpointVpnPort :: Maybe (Val Integer)
} deriving (Show, Eq)
instance ToResourceProperties EC2ClientVpnEndpoint where
toResourceProperties EC2ClientVpnEndpoint{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::EC2::ClientVpnEndpoint"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ (Just . ("AuthenticationOptions",) . toJSON) _eC2ClientVpnEndpointAuthenticationOptions
, (Just . ("ClientCidrBlock",) . toJSON) _eC2ClientVpnEndpointClientCidrBlock
, (Just . ("ConnectionLogOptions",) . toJSON) _eC2ClientVpnEndpointConnectionLogOptions
, fmap (("Description",) . toJSON) _eC2ClientVpnEndpointDescription
, fmap (("DnsServers",) . toJSON) _eC2ClientVpnEndpointDnsServers
, fmap (("SecurityGroupIds",) . toJSON) _eC2ClientVpnEndpointSecurityGroupIds
, (Just . ("ServerCertificateArn",) . toJSON) _eC2ClientVpnEndpointServerCertificateArn
, fmap (("SplitTunnel",) . toJSON) _eC2ClientVpnEndpointSplitTunnel
, fmap (("TagSpecifications",) . toJSON) _eC2ClientVpnEndpointTagSpecifications
, fmap (("TransportProtocol",) . toJSON) _eC2ClientVpnEndpointTransportProtocol
, fmap (("VpcId",) . toJSON) _eC2ClientVpnEndpointVpcId
, fmap (("VpnPort",) . toJSON) _eC2ClientVpnEndpointVpnPort
]
}
-- | Constructor for 'EC2ClientVpnEndpoint' containing required fields as
-- arguments.
ec2ClientVpnEndpoint
:: [EC2ClientVpnEndpointClientAuthenticationRequest] -- ^ 'eccveAuthenticationOptions'
-> Val Text -- ^ 'eccveClientCidrBlock'
-> EC2ClientVpnEndpointConnectionLogOptions -- ^ 'eccveConnectionLogOptions'
-> Val Text -- ^ 'eccveServerCertificateArn'
-> EC2ClientVpnEndpoint
ec2ClientVpnEndpoint authenticationOptionsarg clientCidrBlockarg connectionLogOptionsarg serverCertificateArnarg =
EC2ClientVpnEndpoint
{ _eC2ClientVpnEndpointAuthenticationOptions = authenticationOptionsarg
, _eC2ClientVpnEndpointClientCidrBlock = clientCidrBlockarg
, _eC2ClientVpnEndpointConnectionLogOptions = connectionLogOptionsarg
, _eC2ClientVpnEndpointDescription = Nothing
, _eC2ClientVpnEndpointDnsServers = Nothing
, _eC2ClientVpnEndpointSecurityGroupIds = Nothing
, _eC2ClientVpnEndpointServerCertificateArn = serverCertificateArnarg
, _eC2ClientVpnEndpointSplitTunnel = Nothing
, _eC2ClientVpnEndpointTagSpecifications = Nothing
, _eC2ClientVpnEndpointTransportProtocol = Nothing
, _eC2ClientVpnEndpointVpcId = Nothing
, _eC2ClientVpnEndpointVpnPort = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-authenticationoptions
eccveAuthenticationOptions :: Lens' EC2ClientVpnEndpoint [EC2ClientVpnEndpointClientAuthenticationRequest]
eccveAuthenticationOptions = lens _eC2ClientVpnEndpointAuthenticationOptions (\s a -> s { _eC2ClientVpnEndpointAuthenticationOptions = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-clientcidrblock
eccveClientCidrBlock :: Lens' EC2ClientVpnEndpoint (Val Text)
eccveClientCidrBlock = lens _eC2ClientVpnEndpointClientCidrBlock (\s a -> s { _eC2ClientVpnEndpointClientCidrBlock = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-connectionlogoptions
eccveConnectionLogOptions :: Lens' EC2ClientVpnEndpoint EC2ClientVpnEndpointConnectionLogOptions
eccveConnectionLogOptions = lens _eC2ClientVpnEndpointConnectionLogOptions (\s a -> s { _eC2ClientVpnEndpointConnectionLogOptions = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-description
eccveDescription :: Lens' EC2ClientVpnEndpoint (Maybe (Val Text))
eccveDescription = lens _eC2ClientVpnEndpointDescription (\s a -> s { _eC2ClientVpnEndpointDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-dnsservers
eccveDnsServers :: Lens' EC2ClientVpnEndpoint (Maybe (ValList Text))
eccveDnsServers = lens _eC2ClientVpnEndpointDnsServers (\s a -> s { _eC2ClientVpnEndpointDnsServers = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-securitygroupids
eccveSecurityGroupIds :: Lens' EC2ClientVpnEndpoint (Maybe (ValList Text))
eccveSecurityGroupIds = lens _eC2ClientVpnEndpointSecurityGroupIds (\s a -> s { _eC2ClientVpnEndpointSecurityGroupIds = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-servercertificatearn
eccveServerCertificateArn :: Lens' EC2ClientVpnEndpoint (Val Text)
eccveServerCertificateArn = lens _eC2ClientVpnEndpointServerCertificateArn (\s a -> s { _eC2ClientVpnEndpointServerCertificateArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-splittunnel
eccveSplitTunnel :: Lens' EC2ClientVpnEndpoint (Maybe (Val Bool))
eccveSplitTunnel = lens _eC2ClientVpnEndpointSplitTunnel (\s a -> s { _eC2ClientVpnEndpointSplitTunnel = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-tagspecifications
eccveTagSpecifications :: Lens' EC2ClientVpnEndpoint (Maybe [EC2ClientVpnEndpointTagSpecification])
eccveTagSpecifications = lens _eC2ClientVpnEndpointTagSpecifications (\s a -> s { _eC2ClientVpnEndpointTagSpecifications = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-transportprotocol
eccveTransportProtocol :: Lens' EC2ClientVpnEndpoint (Maybe (Val Text))
eccveTransportProtocol = lens _eC2ClientVpnEndpointTransportProtocol (\s a -> s { _eC2ClientVpnEndpointTransportProtocol = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpcid
eccveVpcId :: Lens' EC2ClientVpnEndpoint (Maybe (Val Text))
eccveVpcId = lens _eC2ClientVpnEndpointVpcId (\s a -> s { _eC2ClientVpnEndpointVpcId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html#cfn-ec2-clientvpnendpoint-vpnport
eccveVpnPort :: Lens' EC2ClientVpnEndpoint (Maybe (Val Integer))
eccveVpnPort = lens _eC2ClientVpnEndpointVpnPort (\s a -> s { _eC2ClientVpnEndpointVpnPort = a })