stratosphere-0.15.2: library-gen/Stratosphere/Resources/RDSDBClusterParameterGroup.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html
module Stratosphere.Resources.RDSDBClusterParameterGroup where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for RDSDBClusterParameterGroup. See
-- 'rdsdbClusterParameterGroup' for a more convenient constructor.
data RDSDBClusterParameterGroup =
RDSDBClusterParameterGroup
{ _rDSDBClusterParameterGroupDescription :: Val Text
, _rDSDBClusterParameterGroupFamily :: Val Text
, _rDSDBClusterParameterGroupParameters :: Object
, _rDSDBClusterParameterGroupTags :: Maybe [Tag]
} deriving (Show, Eq)
instance ToJSON RDSDBClusterParameterGroup where
toJSON RDSDBClusterParameterGroup{..} =
object $
catMaybes
[ (Just . ("Description",) . toJSON) _rDSDBClusterParameterGroupDescription
, (Just . ("Family",) . toJSON) _rDSDBClusterParameterGroupFamily
, (Just . ("Parameters",) . toJSON) _rDSDBClusterParameterGroupParameters
, fmap (("Tags",) . toJSON) _rDSDBClusterParameterGroupTags
]
instance FromJSON RDSDBClusterParameterGroup where
parseJSON (Object obj) =
RDSDBClusterParameterGroup <$>
(obj .: "Description") <*>
(obj .: "Family") <*>
(obj .: "Parameters") <*>
(obj .:? "Tags")
parseJSON _ = mempty
-- | Constructor for 'RDSDBClusterParameterGroup' containing required fields
-- as arguments.
rdsdbClusterParameterGroup
:: Val Text -- ^ 'rdsdbcpgDescription'
-> Val Text -- ^ 'rdsdbcpgFamily'
-> Object -- ^ 'rdsdbcpgParameters'
-> RDSDBClusterParameterGroup
rdsdbClusterParameterGroup descriptionarg familyarg parametersarg =
RDSDBClusterParameterGroup
{ _rDSDBClusterParameterGroupDescription = descriptionarg
, _rDSDBClusterParameterGroupFamily = familyarg
, _rDSDBClusterParameterGroupParameters = parametersarg
, _rDSDBClusterParameterGroupTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-description
rdsdbcpgDescription :: Lens' RDSDBClusterParameterGroup (Val Text)
rdsdbcpgDescription = lens _rDSDBClusterParameterGroupDescription (\s a -> s { _rDSDBClusterParameterGroupDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-family
rdsdbcpgFamily :: Lens' RDSDBClusterParameterGroup (Val Text)
rdsdbcpgFamily = lens _rDSDBClusterParameterGroupFamily (\s a -> s { _rDSDBClusterParameterGroupFamily = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-parameters
rdsdbcpgParameters :: Lens' RDSDBClusterParameterGroup Object
rdsdbcpgParameters = lens _rDSDBClusterParameterGroupParameters (\s a -> s { _rDSDBClusterParameterGroupParameters = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbclusterparametergroup.html#cfn-rds-dbclusterparametergroup-tags
rdsdbcpgTags :: Lens' RDSDBClusterParameterGroup (Maybe [Tag])
rdsdbcpgTags = lens _rDSDBClusterParameterGroupTags (\s a -> s { _rDSDBClusterParameterGroupTags = a })