packages feed

stratosphere-0.54.0: library-gen/Stratosphere/ResourceProperties/EC2ClientVpnEndpointClientAuthenticationRequest.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html

module Stratosphere.ResourceProperties.EC2ClientVpnEndpointClientAuthenticationRequest where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointFederatedAuthenticationRequest
import Stratosphere.ResourceProperties.EC2ClientVpnEndpointCertificateAuthenticationRequest

-- | Full data type definition for
-- EC2ClientVpnEndpointClientAuthenticationRequest. See
-- 'ec2ClientVpnEndpointClientAuthenticationRequest' for a more convenient
-- constructor.
data EC2ClientVpnEndpointClientAuthenticationRequest =
  EC2ClientVpnEndpointClientAuthenticationRequest
  { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory :: Maybe EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest
  , _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication :: Maybe EC2ClientVpnEndpointFederatedAuthenticationRequest
  , _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication :: Maybe EC2ClientVpnEndpointCertificateAuthenticationRequest
  , _eC2ClientVpnEndpointClientAuthenticationRequestType :: Val Text
  } deriving (Show, Eq)

instance ToJSON EC2ClientVpnEndpointClientAuthenticationRequest where
  toJSON EC2ClientVpnEndpointClientAuthenticationRequest{..} =
    object $
    catMaybes
    [ fmap (("ActiveDirectory",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory
    , fmap (("FederatedAuthentication",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication
    , fmap (("MutualAuthentication",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication
    , (Just . ("Type",) . toJSON) _eC2ClientVpnEndpointClientAuthenticationRequestType
    ]

-- | Constructor for 'EC2ClientVpnEndpointClientAuthenticationRequest'
-- containing required fields as arguments.
ec2ClientVpnEndpointClientAuthenticationRequest
  :: Val Text -- ^ 'eccvecarType'
  -> EC2ClientVpnEndpointClientAuthenticationRequest
ec2ClientVpnEndpointClientAuthenticationRequest typearg =
  EC2ClientVpnEndpointClientAuthenticationRequest
  { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory = Nothing
  , _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication = Nothing
  , _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication = Nothing
  , _eC2ClientVpnEndpointClientAuthenticationRequestType = typearg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-activedirectory
eccvecarActiveDirectory :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointDirectoryServiceAuthenticationRequest)
eccvecarActiveDirectory = lens _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestActiveDirectory = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-federatedauthentication
eccvecarFederatedAuthentication :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointFederatedAuthenticationRequest)
eccvecarFederatedAuthentication = lens _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestFederatedAuthentication = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-mutualauthentication
eccvecarMutualAuthentication :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Maybe EC2ClientVpnEndpointCertificateAuthenticationRequest)
eccvecarMutualAuthentication = lens _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestMutualAuthentication = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-clientvpnendpoint-clientauthenticationrequest.html#cfn-ec2-clientvpnendpoint-clientauthenticationrequest-type
eccvecarType :: Lens' EC2ClientVpnEndpointClientAuthenticationRequest (Val Text)
eccvecarType = lens _eC2ClientVpnEndpointClientAuthenticationRequestType (\s a -> s { _eC2ClientVpnEndpointClientAuthenticationRequestType = a })