module Stratosphere.Resources.DBParameterGroup where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.ResourceTag
data DBParameterGroup =
DBParameterGroup
{ _dBParameterGroupDescription :: Val Text
, _dBParameterGroupFamily :: Val Text
, _dBParameterGroupParameters :: Maybe Value
, _dBParameterGroupTags :: Maybe [ResourceTag]
} deriving (Show, Generic)
instance ToJSON DBParameterGroup where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
instance FromJSON DBParameterGroup where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 17, omitNothingFields = True }
dbParameterGroup
:: Val Text
-> Val Text
-> DBParameterGroup
dbParameterGroup descriptionarg familyarg =
DBParameterGroup
{ _dBParameterGroupDescription = descriptionarg
, _dBParameterGroupFamily = familyarg
, _dBParameterGroupParameters = Nothing
, _dBParameterGroupTags = Nothing
}
dbpgDescription :: Lens' DBParameterGroup (Val Text)
dbpgDescription = lens _dBParameterGroupDescription (\s a -> s { _dBParameterGroupDescription = a })
dbpgFamily :: Lens' DBParameterGroup (Val Text)
dbpgFamily = lens _dBParameterGroupFamily (\s a -> s { _dBParameterGroupFamily = a })
dbpgParameters :: Lens' DBParameterGroup (Maybe Value)
dbpgParameters = lens _dBParameterGroupParameters (\s a -> s { _dBParameterGroupParameters = a })
dbpgTags :: Lens' DBParameterGroup (Maybe [ResourceTag])
dbpgTags = lens _dBParameterGroupTags (\s a -> s { _dBParameterGroupTags = a })