module Network.AWS.CloudSearch.DefineExpression
(
DefineExpression
, defineExpression
, de1DomainName
, de1Expression
, DefineExpressionResponse
, defineExpressionResponse
, derExpression
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudSearch.Types
import qualified GHC.Exts
data DefineExpression = DefineExpression
{ _de1DomainName :: Text
, _de1Expression :: Expression
} deriving (Eq, Show)
defineExpression :: Text
-> Expression
-> DefineExpression
defineExpression p1 p2 = DefineExpression
{ _de1DomainName = p1
, _de1Expression = p2
}
de1DomainName :: Lens' DefineExpression Text
de1DomainName = lens _de1DomainName (\s a -> s { _de1DomainName = a })
de1Expression :: Lens' DefineExpression Expression
de1Expression = lens _de1Expression (\s a -> s { _de1Expression = a })
newtype DefineExpressionResponse = DefineExpressionResponse
{ _derExpression :: ExpressionStatus
} deriving (Eq, Show)
defineExpressionResponse :: ExpressionStatus
-> DefineExpressionResponse
defineExpressionResponse p1 = DefineExpressionResponse
{ _derExpression = p1
}
derExpression :: Lens' DefineExpressionResponse ExpressionStatus
derExpression = lens _derExpression (\s a -> s { _derExpression = a })
instance ToPath DefineExpression where
toPath = const "/"
instance ToQuery DefineExpression where
toQuery DefineExpression{..} = mconcat
[ "DomainName" =? _de1DomainName
, "Expression" =? _de1Expression
]
instance ToHeaders DefineExpression
instance AWSRequest DefineExpression where
type Sv DefineExpression = CloudSearch
type Rs DefineExpression = DefineExpressionResponse
request = post "DefineExpression"
response = xmlResponse
instance FromXML DefineExpressionResponse where
parseXML = withElement "DefineExpressionResult" $ \x -> DefineExpressionResponse
<$> x .@ "Expression"