{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.CloudSearch.DefineExpression
(
defineExpression
, DefineExpression
, dDomainName
, dExpression
, defineExpressionResponse
, DefineExpressionResponse
, dersResponseStatus
, dersExpression
) where
import Network.AWS.CloudSearch.Types
import Network.AWS.CloudSearch.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DefineExpression = DefineExpression'
{ _dDomainName :: !Text
, _dExpression :: !Expression
} deriving (Eq, Read, Show, Data, Typeable, Generic)
defineExpression
:: Text
-> Expression
-> DefineExpression
defineExpression pDomainName_ pExpression_ =
DefineExpression' {_dDomainName = pDomainName_, _dExpression = pExpression_}
dDomainName :: Lens' DefineExpression Text
dDomainName = lens _dDomainName (\ s a -> s{_dDomainName = a})
dExpression :: Lens' DefineExpression Expression
dExpression = lens _dExpression (\ s a -> s{_dExpression = a})
instance AWSRequest DefineExpression where
type Rs DefineExpression = DefineExpressionResponse
request = postQuery cloudSearch
response
= receiveXMLWrapper "DefineExpressionResult"
(\ s h x ->
DefineExpressionResponse' <$>
(pure (fromEnum s)) <*> (x .@ "Expression"))
instance Hashable DefineExpression where
instance NFData DefineExpression where
instance ToHeaders DefineExpression where
toHeaders = const mempty
instance ToPath DefineExpression where
toPath = const "/"
instance ToQuery DefineExpression where
toQuery DefineExpression'{..}
= mconcat
["Action" =: ("DefineExpression" :: ByteString),
"Version" =: ("2013-01-01" :: ByteString),
"DomainName" =: _dDomainName,
"Expression" =: _dExpression]
data DefineExpressionResponse = DefineExpressionResponse'
{ _dersResponseStatus :: !Int
, _dersExpression :: !ExpressionStatus
} deriving (Eq, Read, Show, Data, Typeable, Generic)
defineExpressionResponse
:: Int
-> ExpressionStatus
-> DefineExpressionResponse
defineExpressionResponse pResponseStatus_ pExpression_ =
DefineExpressionResponse'
{_dersResponseStatus = pResponseStatus_, _dersExpression = pExpression_}
dersResponseStatus :: Lens' DefineExpressionResponse Int
dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a})
dersExpression :: Lens' DefineExpressionResponse ExpressionStatus
dersExpression = lens _dersExpression (\ s a -> s{_dersExpression = a})
instance NFData DefineExpressionResponse where