{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html module Stratosphere.Resources.DAXParameterGroup where import Stratosphere.ResourceImports -- | Full data type definition for DAXParameterGroup. See 'daxParameterGroup' -- for a more convenient constructor. data DAXParameterGroup = DAXParameterGroup { _dAXParameterGroupDescription :: Maybe (Val Text) , _dAXParameterGroupParameterGroupName :: Maybe (Val Text) , _dAXParameterGroupParameterNameValues :: Maybe Object } deriving (Show, Eq) instance ToJSON DAXParameterGroup where toJSON DAXParameterGroup{..} = object $ catMaybes [ fmap (("Description",) . toJSON) _dAXParameterGroupDescription , fmap (("ParameterGroupName",) . toJSON) _dAXParameterGroupParameterGroupName , fmap (("ParameterNameValues",) . toJSON) _dAXParameterGroupParameterNameValues ] instance FromJSON DAXParameterGroup where parseJSON (Object obj) = DAXParameterGroup <$> (obj .:? "Description") <*> (obj .:? "ParameterGroupName") <*> (obj .:? "ParameterNameValues") parseJSON _ = mempty -- | Constructor for 'DAXParameterGroup' containing required fields as -- arguments. daxParameterGroup :: DAXParameterGroup daxParameterGroup = DAXParameterGroup { _dAXParameterGroupDescription = Nothing , _dAXParameterGroupParameterGroupName = Nothing , _dAXParameterGroupParameterNameValues = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-description daxpgDescription :: Lens' DAXParameterGroup (Maybe (Val Text)) daxpgDescription = lens _dAXParameterGroupDescription (\s a -> s { _dAXParameterGroupDescription = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parametergroupname daxpgParameterGroupName :: Lens' DAXParameterGroup (Maybe (Val Text)) daxpgParameterGroupName = lens _dAXParameterGroupParameterGroupName (\s a -> s { _dAXParameterGroupParameterGroupName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dax-parametergroup.html#cfn-dax-parametergroup-parameternamevalues daxpgParameterNameValues :: Lens' DAXParameterGroup (Maybe Object) daxpgParameterNameValues = lens _dAXParameterGroupParameterNameValues (\s a -> s { _dAXParameterGroupParameterNameValues = a })