packages feed

stratosphere-0.37.0: library-gen/Stratosphere/ResourceProperties/ApiGatewayV2DomainNameDomainNameConfiguration.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html

module Stratosphere.ResourceProperties.ApiGatewayV2DomainNameDomainNameConfiguration where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- ApiGatewayV2DomainNameDomainNameConfiguration. See
-- 'apiGatewayV2DomainNameDomainNameConfiguration' for a more convenient
-- constructor.
data ApiGatewayV2DomainNameDomainNameConfiguration =
  ApiGatewayV2DomainNameDomainNameConfiguration
  { _apiGatewayV2DomainNameDomainNameConfigurationCertificateArn :: Maybe (Val Text)
  , _apiGatewayV2DomainNameDomainNameConfigurationCertificateName :: Maybe (Val Text)
  , _apiGatewayV2DomainNameDomainNameConfigurationEndpointType :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON ApiGatewayV2DomainNameDomainNameConfiguration where
  toJSON ApiGatewayV2DomainNameDomainNameConfiguration{..} =
    object $
    catMaybes
    [ fmap (("CertificateArn",) . toJSON) _apiGatewayV2DomainNameDomainNameConfigurationCertificateArn
    , fmap (("CertificateName",) . toJSON) _apiGatewayV2DomainNameDomainNameConfigurationCertificateName
    , fmap (("EndpointType",) . toJSON) _apiGatewayV2DomainNameDomainNameConfigurationEndpointType
    ]

-- | Constructor for 'ApiGatewayV2DomainNameDomainNameConfiguration'
-- containing required fields as arguments.
apiGatewayV2DomainNameDomainNameConfiguration
  :: ApiGatewayV2DomainNameDomainNameConfiguration
apiGatewayV2DomainNameDomainNameConfiguration  =
  ApiGatewayV2DomainNameDomainNameConfiguration
  { _apiGatewayV2DomainNameDomainNameConfigurationCertificateArn = Nothing
  , _apiGatewayV2DomainNameDomainNameConfigurationCertificateName = Nothing
  , _apiGatewayV2DomainNameDomainNameConfigurationEndpointType = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn
agvdndncCertificateArn :: Lens' ApiGatewayV2DomainNameDomainNameConfiguration (Maybe (Val Text))
agvdndncCertificateArn = lens _apiGatewayV2DomainNameDomainNameConfigurationCertificateArn (\s a -> s { _apiGatewayV2DomainNameDomainNameConfigurationCertificateArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatename
agvdndncCertificateName :: Lens' ApiGatewayV2DomainNameDomainNameConfiguration (Maybe (Val Text))
agvdndncCertificateName = lens _apiGatewayV2DomainNameDomainNameConfigurationCertificateName (\s a -> s { _apiGatewayV2DomainNameDomainNameConfigurationCertificateName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-endpointtype
agvdndncEndpointType :: Lens' ApiGatewayV2DomainNameDomainNameConfiguration (Maybe (Val Text))
agvdndncEndpointType = lens _apiGatewayV2DomainNameDomainNameConfigurationEndpointType (\s a -> s { _apiGatewayV2DomainNameDomainNameConfigurationEndpointType = a })