module Network.AWS.RDS.ModifyOptionGroup
(
ModifyOptionGroup
, modifyOptionGroup
, mogApplyImmediately
, mogOptionGroupName
, mogOptionsToInclude
, mogOptionsToRemove
, ModifyOptionGroupResponse
, modifyOptionGroupResponse
, mogrOptionGroup
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data ModifyOptionGroup = ModifyOptionGroup
{ _mogApplyImmediately :: Maybe Bool
, _mogOptionGroupName :: Text
, _mogOptionsToInclude :: List "member" OptionConfiguration
, _mogOptionsToRemove :: List "member" Text
} deriving (Eq, Read, Show)
modifyOptionGroup :: Text
-> ModifyOptionGroup
modifyOptionGroup p1 = ModifyOptionGroup
{ _mogOptionGroupName = p1
, _mogOptionsToInclude = mempty
, _mogOptionsToRemove = mempty
, _mogApplyImmediately = Nothing
}
mogApplyImmediately :: Lens' ModifyOptionGroup (Maybe Bool)
mogApplyImmediately =
lens _mogApplyImmediately (\s a -> s { _mogApplyImmediately = a })
mogOptionGroupName :: Lens' ModifyOptionGroup Text
mogOptionGroupName =
lens _mogOptionGroupName (\s a -> s { _mogOptionGroupName = a })
mogOptionsToInclude :: Lens' ModifyOptionGroup [OptionConfiguration]
mogOptionsToInclude =
lens _mogOptionsToInclude (\s a -> s { _mogOptionsToInclude = a })
. _List
mogOptionsToRemove :: Lens' ModifyOptionGroup [Text]
mogOptionsToRemove =
lens _mogOptionsToRemove (\s a -> s { _mogOptionsToRemove = a })
. _List
newtype ModifyOptionGroupResponse = ModifyOptionGroupResponse
{ _mogrOptionGroup :: Maybe OptionGroup
} deriving (Eq, Read, Show)
modifyOptionGroupResponse :: ModifyOptionGroupResponse
modifyOptionGroupResponse = ModifyOptionGroupResponse
{ _mogrOptionGroup = Nothing
}
mogrOptionGroup :: Lens' ModifyOptionGroupResponse (Maybe OptionGroup)
mogrOptionGroup = lens _mogrOptionGroup (\s a -> s { _mogrOptionGroup = a })
instance ToPath ModifyOptionGroup where
toPath = const "/"
instance ToQuery ModifyOptionGroup where
toQuery ModifyOptionGroup{..} = mconcat
[ "ApplyImmediately" =? _mogApplyImmediately
, "OptionGroupName" =? _mogOptionGroupName
, "OptionsToInclude" =? _mogOptionsToInclude
, "OptionsToRemove" =? _mogOptionsToRemove
]
instance ToHeaders ModifyOptionGroup
instance AWSRequest ModifyOptionGroup where
type Sv ModifyOptionGroup = RDS
type Rs ModifyOptionGroup = ModifyOptionGroupResponse
request = post "ModifyOptionGroup"
response = xmlResponse
instance FromXML ModifyOptionGroupResponse where
parseXML = withElement "ModifyOptionGroupResult" $ \x -> ModifyOptionGroupResponse
<$> x .@? "OptionGroup"