{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.CloudSearch.DefineExpression
(
DefineExpression (..),
newDefineExpression,
defineExpression_domainName,
defineExpression_expression,
DefineExpressionResponse (..),
newDefineExpressionResponse,
defineExpressionResponse_httpStatus,
defineExpressionResponse_expression,
)
where
import Amazonka.CloudSearch.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data DefineExpression = DefineExpression'
{ DefineExpression -> Text
domainName :: Prelude.Text,
DefineExpression -> Expression
expression :: Expression
}
deriving (DefineExpression -> DefineExpression -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DefineExpression -> DefineExpression -> Bool
$c/= :: DefineExpression -> DefineExpression -> Bool
== :: DefineExpression -> DefineExpression -> Bool
$c== :: DefineExpression -> DefineExpression -> Bool
Prelude.Eq, ReadPrec [DefineExpression]
ReadPrec DefineExpression
Int -> ReadS DefineExpression
ReadS [DefineExpression]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DefineExpression]
$creadListPrec :: ReadPrec [DefineExpression]
readPrec :: ReadPrec DefineExpression
$creadPrec :: ReadPrec DefineExpression
readList :: ReadS [DefineExpression]
$creadList :: ReadS [DefineExpression]
readsPrec :: Int -> ReadS DefineExpression
$creadsPrec :: Int -> ReadS DefineExpression
Prelude.Read, Int -> DefineExpression -> ShowS
[DefineExpression] -> ShowS
DefineExpression -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DefineExpression] -> ShowS
$cshowList :: [DefineExpression] -> ShowS
show :: DefineExpression -> String
$cshow :: DefineExpression -> String
showsPrec :: Int -> DefineExpression -> ShowS
$cshowsPrec :: Int -> DefineExpression -> ShowS
Prelude.Show, forall x. Rep DefineExpression x -> DefineExpression
forall x. DefineExpression -> Rep DefineExpression x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DefineExpression x -> DefineExpression
$cfrom :: forall x. DefineExpression -> Rep DefineExpression x
Prelude.Generic)
newDefineExpression ::
Prelude.Text ->
Expression ->
DefineExpression
newDefineExpression :: Text -> Expression -> DefineExpression
newDefineExpression Text
pDomainName_ Expression
pExpression_ =
DefineExpression'
{ $sel:domainName:DefineExpression' :: Text
domainName = Text
pDomainName_,
$sel:expression:DefineExpression' :: Expression
expression = Expression
pExpression_
}
defineExpression_domainName :: Lens.Lens' DefineExpression Prelude.Text
defineExpression_domainName :: Lens' DefineExpression Text
defineExpression_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefineExpression' {Text
domainName :: Text
$sel:domainName:DefineExpression' :: DefineExpression -> Text
domainName} -> Text
domainName) (\s :: DefineExpression
s@DefineExpression' {} Text
a -> DefineExpression
s {$sel:domainName:DefineExpression' :: Text
domainName = Text
a} :: DefineExpression)
defineExpression_expression :: Lens.Lens' DefineExpression Expression
defineExpression_expression :: Lens' DefineExpression Expression
defineExpression_expression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefineExpression' {Expression
expression :: Expression
$sel:expression:DefineExpression' :: DefineExpression -> Expression
expression} -> Expression
expression) (\s :: DefineExpression
s@DefineExpression' {} Expression
a -> DefineExpression
s {$sel:expression:DefineExpression' :: Expression
expression = Expression
a} :: DefineExpression)
instance Core.AWSRequest DefineExpression where
type
AWSResponse DefineExpression =
DefineExpressionResponse
request :: (Service -> Service)
-> DefineExpression -> Request DefineExpression
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DefineExpression
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DefineExpression)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"DefineExpressionResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Int -> ExpressionStatus -> DefineExpressionResponse
DefineExpressionResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Expression")
)
instance Prelude.Hashable DefineExpression where
hashWithSalt :: Int -> DefineExpression -> Int
hashWithSalt Int
_salt DefineExpression' {Text
Expression
expression :: Expression
domainName :: Text
$sel:expression:DefineExpression' :: DefineExpression -> Expression
$sel:domainName:DefineExpression' :: DefineExpression -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domainName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Expression
expression
instance Prelude.NFData DefineExpression where
rnf :: DefineExpression -> ()
rnf DefineExpression' {Text
Expression
expression :: Expression
domainName :: Text
$sel:expression:DefineExpression' :: DefineExpression -> Expression
$sel:domainName:DefineExpression' :: DefineExpression -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
domainName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Expression
expression
instance Data.ToHeaders DefineExpression where
toHeaders :: DefineExpression -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath DefineExpression where
toPath :: DefineExpression -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery DefineExpression where
toQuery :: DefineExpression -> QueryString
toQuery DefineExpression' {Text
Expression
expression :: Expression
domainName :: Text
$sel:expression:DefineExpression' :: DefineExpression -> Expression
$sel:domainName:DefineExpression' :: DefineExpression -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DefineExpression" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2013-01-01" :: Prelude.ByteString),
ByteString
"DomainName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
domainName,
ByteString
"Expression" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Expression
expression
]
data DefineExpressionResponse = DefineExpressionResponse'
{
DefineExpressionResponse -> Int
httpStatus :: Prelude.Int,
DefineExpressionResponse -> ExpressionStatus
expression :: ExpressionStatus
}
deriving (DefineExpressionResponse -> DefineExpressionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DefineExpressionResponse -> DefineExpressionResponse -> Bool
$c/= :: DefineExpressionResponse -> DefineExpressionResponse -> Bool
== :: DefineExpressionResponse -> DefineExpressionResponse -> Bool
$c== :: DefineExpressionResponse -> DefineExpressionResponse -> Bool
Prelude.Eq, ReadPrec [DefineExpressionResponse]
ReadPrec DefineExpressionResponse
Int -> ReadS DefineExpressionResponse
ReadS [DefineExpressionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DefineExpressionResponse]
$creadListPrec :: ReadPrec [DefineExpressionResponse]
readPrec :: ReadPrec DefineExpressionResponse
$creadPrec :: ReadPrec DefineExpressionResponse
readList :: ReadS [DefineExpressionResponse]
$creadList :: ReadS [DefineExpressionResponse]
readsPrec :: Int -> ReadS DefineExpressionResponse
$creadsPrec :: Int -> ReadS DefineExpressionResponse
Prelude.Read, Int -> DefineExpressionResponse -> ShowS
[DefineExpressionResponse] -> ShowS
DefineExpressionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DefineExpressionResponse] -> ShowS
$cshowList :: [DefineExpressionResponse] -> ShowS
show :: DefineExpressionResponse -> String
$cshow :: DefineExpressionResponse -> String
showsPrec :: Int -> DefineExpressionResponse -> ShowS
$cshowsPrec :: Int -> DefineExpressionResponse -> ShowS
Prelude.Show, forall x.
Rep DefineExpressionResponse x -> DefineExpressionResponse
forall x.
DefineExpressionResponse -> Rep DefineExpressionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DefineExpressionResponse x -> DefineExpressionResponse
$cfrom :: forall x.
DefineExpressionResponse -> Rep DefineExpressionResponse x
Prelude.Generic)
newDefineExpressionResponse ::
Prelude.Int ->
ExpressionStatus ->
DefineExpressionResponse
newDefineExpressionResponse :: Int -> ExpressionStatus -> DefineExpressionResponse
newDefineExpressionResponse Int
pHttpStatus_ ExpressionStatus
pExpression_ =
DefineExpressionResponse'
{ $sel:httpStatus:DefineExpressionResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:expression:DefineExpressionResponse' :: ExpressionStatus
expression = ExpressionStatus
pExpression_
}
defineExpressionResponse_httpStatus :: Lens.Lens' DefineExpressionResponse Prelude.Int
defineExpressionResponse_httpStatus :: Lens' DefineExpressionResponse Int
defineExpressionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefineExpressionResponse' {Int
httpStatus :: Int
$sel:httpStatus:DefineExpressionResponse' :: DefineExpressionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DefineExpressionResponse
s@DefineExpressionResponse' {} Int
a -> DefineExpressionResponse
s {$sel:httpStatus:DefineExpressionResponse' :: Int
httpStatus = Int
a} :: DefineExpressionResponse)
defineExpressionResponse_expression :: Lens.Lens' DefineExpressionResponse ExpressionStatus
defineExpressionResponse_expression :: Lens' DefineExpressionResponse ExpressionStatus
defineExpressionResponse_expression = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DefineExpressionResponse' {ExpressionStatus
expression :: ExpressionStatus
$sel:expression:DefineExpressionResponse' :: DefineExpressionResponse -> ExpressionStatus
expression} -> ExpressionStatus
expression) (\s :: DefineExpressionResponse
s@DefineExpressionResponse' {} ExpressionStatus
a -> DefineExpressionResponse
s {$sel:expression:DefineExpressionResponse' :: ExpressionStatus
expression = ExpressionStatus
a} :: DefineExpressionResponse)
instance Prelude.NFData DefineExpressionResponse where
rnf :: DefineExpressionResponse -> ()
rnf DefineExpressionResponse' {Int
ExpressionStatus
expression :: ExpressionStatus
httpStatus :: Int
$sel:expression:DefineExpressionResponse' :: DefineExpressionResponse -> ExpressionStatus
$sel:httpStatus:DefineExpressionResponse' :: DefineExpressionResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExpressionStatus
expression