stratosphere-0.54.0: library-gen/Stratosphere/Resources/RDSDBProxy.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html
module Stratosphere.Resources.RDSDBProxy where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.RDSDBProxyAuthFormat
import Stratosphere.ResourceProperties.RDSDBProxyTagFormat
-- | Full data type definition for RDSDBProxy. See 'rdsdbProxy' for a more
-- convenient constructor.
data RDSDBProxy =
RDSDBProxy
{ _rDSDBProxyAuth :: [RDSDBProxyAuthFormat]
, _rDSDBProxyDBProxyName :: Val Text
, _rDSDBProxyDebugLogging :: Maybe (Val Bool)
, _rDSDBProxyEngineFamily :: Val Text
, _rDSDBProxyIdleClientTimeout :: Maybe (Val Integer)
, _rDSDBProxyRequireTLS :: Maybe (Val Bool)
, _rDSDBProxyRoleArn :: Val Text
, _rDSDBProxyTags :: Maybe [RDSDBProxyTagFormat]
, _rDSDBProxyVpcSecurityGroupIds :: Maybe (ValList Text)
, _rDSDBProxyVpcSubnetIds :: ValList Text
} deriving (Show, Eq)
instance ToResourceProperties RDSDBProxy where
toResourceProperties RDSDBProxy{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::RDS::DBProxy"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ (Just . ("Auth",) . toJSON) _rDSDBProxyAuth
, (Just . ("DBProxyName",) . toJSON) _rDSDBProxyDBProxyName
, fmap (("DebugLogging",) . toJSON) _rDSDBProxyDebugLogging
, (Just . ("EngineFamily",) . toJSON) _rDSDBProxyEngineFamily
, fmap (("IdleClientTimeout",) . toJSON) _rDSDBProxyIdleClientTimeout
, fmap (("RequireTLS",) . toJSON) _rDSDBProxyRequireTLS
, (Just . ("RoleArn",) . toJSON) _rDSDBProxyRoleArn
, fmap (("Tags",) . toJSON) _rDSDBProxyTags
, fmap (("VpcSecurityGroupIds",) . toJSON) _rDSDBProxyVpcSecurityGroupIds
, (Just . ("VpcSubnetIds",) . toJSON) _rDSDBProxyVpcSubnetIds
]
}
-- | Constructor for 'RDSDBProxy' containing required fields as arguments.
rdsdbProxy
:: [RDSDBProxyAuthFormat] -- ^ 'rdsdbpAuth'
-> Val Text -- ^ 'rdsdbpDBProxyName'
-> Val Text -- ^ 'rdsdbpEngineFamily'
-> Val Text -- ^ 'rdsdbpRoleArn'
-> ValList Text -- ^ 'rdsdbpVpcSubnetIds'
-> RDSDBProxy
rdsdbProxy autharg dBProxyNamearg engineFamilyarg roleArnarg vpcSubnetIdsarg =
RDSDBProxy
{ _rDSDBProxyAuth = autharg
, _rDSDBProxyDBProxyName = dBProxyNamearg
, _rDSDBProxyDebugLogging = Nothing
, _rDSDBProxyEngineFamily = engineFamilyarg
, _rDSDBProxyIdleClientTimeout = Nothing
, _rDSDBProxyRequireTLS = Nothing
, _rDSDBProxyRoleArn = roleArnarg
, _rDSDBProxyTags = Nothing
, _rDSDBProxyVpcSecurityGroupIds = Nothing
, _rDSDBProxyVpcSubnetIds = vpcSubnetIdsarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-auth
rdsdbpAuth :: Lens' RDSDBProxy [RDSDBProxyAuthFormat]
rdsdbpAuth = lens _rDSDBProxyAuth (\s a -> s { _rDSDBProxyAuth = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-dbproxyname
rdsdbpDBProxyName :: Lens' RDSDBProxy (Val Text)
rdsdbpDBProxyName = lens _rDSDBProxyDBProxyName (\s a -> s { _rDSDBProxyDBProxyName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-debuglogging
rdsdbpDebugLogging :: Lens' RDSDBProxy (Maybe (Val Bool))
rdsdbpDebugLogging = lens _rDSDBProxyDebugLogging (\s a -> s { _rDSDBProxyDebugLogging = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-enginefamily
rdsdbpEngineFamily :: Lens' RDSDBProxy (Val Text)
rdsdbpEngineFamily = lens _rDSDBProxyEngineFamily (\s a -> s { _rDSDBProxyEngineFamily = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-idleclienttimeout
rdsdbpIdleClientTimeout :: Lens' RDSDBProxy (Maybe (Val Integer))
rdsdbpIdleClientTimeout = lens _rDSDBProxyIdleClientTimeout (\s a -> s { _rDSDBProxyIdleClientTimeout = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-requiretls
rdsdbpRequireTLS :: Lens' RDSDBProxy (Maybe (Val Bool))
rdsdbpRequireTLS = lens _rDSDBProxyRequireTLS (\s a -> s { _rDSDBProxyRequireTLS = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-rolearn
rdsdbpRoleArn :: Lens' RDSDBProxy (Val Text)
rdsdbpRoleArn = lens _rDSDBProxyRoleArn (\s a -> s { _rDSDBProxyRoleArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-tags
rdsdbpTags :: Lens' RDSDBProxy (Maybe [RDSDBProxyTagFormat])
rdsdbpTags = lens _rDSDBProxyTags (\s a -> s { _rDSDBProxyTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsecuritygroupids
rdsdbpVpcSecurityGroupIds :: Lens' RDSDBProxy (Maybe (ValList Text))
rdsdbpVpcSecurityGroupIds = lens _rDSDBProxyVpcSecurityGroupIds (\s a -> s { _rDSDBProxyVpcSecurityGroupIds = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbproxy.html#cfn-rds-dbproxy-vpcsubnetids
rdsdbpVpcSubnetIds :: Lens' RDSDBProxy (ValList Text)
rdsdbpVpcSubnetIds = lens _rDSDBProxyVpcSubnetIds (\s a -> s { _rDSDBProxyVpcSubnetIds = a })