{-# 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.CloudSearchDomains.Suggest
(
Suggest (..),
newSuggest,
suggest_size,
suggest_query,
suggest_suggester,
SuggestResponse (..),
newSuggestResponse,
suggestResponse_status,
suggestResponse_suggest,
suggestResponse_httpStatus,
)
where
import Amazonka.CloudSearchDomains.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 Suggest = Suggest'
{
Suggest -> Maybe Integer
size :: Prelude.Maybe Prelude.Integer,
Suggest -> Text
query :: Prelude.Text,
Suggest -> Text
suggester :: Prelude.Text
}
deriving (Suggest -> Suggest -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Suggest -> Suggest -> Bool
$c/= :: Suggest -> Suggest -> Bool
== :: Suggest -> Suggest -> Bool
$c== :: Suggest -> Suggest -> Bool
Prelude.Eq, ReadPrec [Suggest]
ReadPrec Suggest
Int -> ReadS Suggest
ReadS [Suggest]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Suggest]
$creadListPrec :: ReadPrec [Suggest]
readPrec :: ReadPrec Suggest
$creadPrec :: ReadPrec Suggest
readList :: ReadS [Suggest]
$creadList :: ReadS [Suggest]
readsPrec :: Int -> ReadS Suggest
$creadsPrec :: Int -> ReadS Suggest
Prelude.Read, Int -> Suggest -> ShowS
[Suggest] -> ShowS
Suggest -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Suggest] -> ShowS
$cshowList :: [Suggest] -> ShowS
show :: Suggest -> String
$cshow :: Suggest -> String
showsPrec :: Int -> Suggest -> ShowS
$cshowsPrec :: Int -> Suggest -> ShowS
Prelude.Show, forall x. Rep Suggest x -> Suggest
forall x. Suggest -> Rep Suggest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Suggest x -> Suggest
$cfrom :: forall x. Suggest -> Rep Suggest x
Prelude.Generic)
newSuggest ::
Prelude.Text ->
Prelude.Text ->
Suggest
newSuggest :: Text -> Text -> Suggest
newSuggest Text
pQuery_ Text
pSuggester_ =
Suggest'
{ $sel:size:Suggest' :: Maybe Integer
size = forall a. Maybe a
Prelude.Nothing,
$sel:query:Suggest' :: Text
query = Text
pQuery_,
$sel:suggester:Suggest' :: Text
suggester = Text
pSuggester_
}
suggest_size :: Lens.Lens' Suggest (Prelude.Maybe Prelude.Integer)
suggest_size :: Lens' Suggest (Maybe Integer)
suggest_size = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Suggest' {Maybe Integer
size :: Maybe Integer
$sel:size:Suggest' :: Suggest -> Maybe Integer
size} -> Maybe Integer
size) (\s :: Suggest
s@Suggest' {} Maybe Integer
a -> Suggest
s {$sel:size:Suggest' :: Maybe Integer
size = Maybe Integer
a} :: Suggest)
suggest_query :: Lens.Lens' Suggest Prelude.Text
suggest_query :: Lens' Suggest Text
suggest_query = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Suggest' {Text
query :: Text
$sel:query:Suggest' :: Suggest -> Text
query} -> Text
query) (\s :: Suggest
s@Suggest' {} Text
a -> Suggest
s {$sel:query:Suggest' :: Text
query = Text
a} :: Suggest)
suggest_suggester :: Lens.Lens' Suggest Prelude.Text
suggest_suggester :: Lens' Suggest Text
suggest_suggester = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Suggest' {Text
suggester :: Text
$sel:suggester:Suggest' :: Suggest -> Text
suggester} -> Text
suggester) (\s :: Suggest
s@Suggest' {} Text
a -> Suggest
s {$sel:suggester:Suggest' :: Text
suggester = Text
a} :: Suggest)
instance Core.AWSRequest Suggest where
type AWSResponse Suggest = SuggestResponse
request :: (Service -> Service) -> Suggest -> Request Suggest
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy Suggest
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse Suggest)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe SuggestStatus -> Maybe SuggestModel -> Int -> SuggestResponse
SuggestResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"suggest")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance Prelude.Hashable Suggest where
hashWithSalt :: Int -> Suggest -> Int
hashWithSalt Int
_salt Suggest' {Maybe Integer
Text
suggester :: Text
query :: Text
size :: Maybe Integer
$sel:suggester:Suggest' :: Suggest -> Text
$sel:query:Suggest' :: Suggest -> Text
$sel:size:Suggest' :: Suggest -> Maybe Integer
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
size
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
query
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
suggester
instance Prelude.NFData Suggest where
rnf :: Suggest -> ()
rnf Suggest' {Maybe Integer
Text
suggester :: Text
query :: Text
size :: Maybe Integer
$sel:suggester:Suggest' :: Suggest -> Text
$sel:query:Suggest' :: Suggest -> Text
$sel:size:Suggest' :: Suggest -> Maybe Integer
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
size
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
query
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
suggester
instance Data.ToHeaders Suggest where
toHeaders :: Suggest -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath Suggest where
toPath :: Suggest -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/2013-01-01/suggest"
instance Data.ToQuery Suggest where
toQuery :: Suggest -> QueryString
toQuery Suggest' {Maybe Integer
Text
suggester :: Text
query :: Text
size :: Maybe Integer
$sel:suggester:Suggest' :: Suggest -> Text
$sel:query:Suggest' :: Suggest -> Text
$sel:size:Suggest' :: Suggest -> Maybe Integer
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"size" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Integer
size,
ByteString
"q" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
query,
ByteString
"suggester" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
suggester,
QueryString
"format=sdk&pretty=true"
]
data SuggestResponse = SuggestResponse'
{
SuggestResponse -> Maybe SuggestStatus
status :: Prelude.Maybe SuggestStatus,
SuggestResponse -> Maybe SuggestModel
suggest :: Prelude.Maybe SuggestModel,
SuggestResponse -> Int
httpStatus :: Prelude.Int
}
deriving (SuggestResponse -> SuggestResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SuggestResponse -> SuggestResponse -> Bool
$c/= :: SuggestResponse -> SuggestResponse -> Bool
== :: SuggestResponse -> SuggestResponse -> Bool
$c== :: SuggestResponse -> SuggestResponse -> Bool
Prelude.Eq, ReadPrec [SuggestResponse]
ReadPrec SuggestResponse
Int -> ReadS SuggestResponse
ReadS [SuggestResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SuggestResponse]
$creadListPrec :: ReadPrec [SuggestResponse]
readPrec :: ReadPrec SuggestResponse
$creadPrec :: ReadPrec SuggestResponse
readList :: ReadS [SuggestResponse]
$creadList :: ReadS [SuggestResponse]
readsPrec :: Int -> ReadS SuggestResponse
$creadsPrec :: Int -> ReadS SuggestResponse
Prelude.Read, Int -> SuggestResponse -> ShowS
[SuggestResponse] -> ShowS
SuggestResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SuggestResponse] -> ShowS
$cshowList :: [SuggestResponse] -> ShowS
show :: SuggestResponse -> String
$cshow :: SuggestResponse -> String
showsPrec :: Int -> SuggestResponse -> ShowS
$cshowsPrec :: Int -> SuggestResponse -> ShowS
Prelude.Show, forall x. Rep SuggestResponse x -> SuggestResponse
forall x. SuggestResponse -> Rep SuggestResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SuggestResponse x -> SuggestResponse
$cfrom :: forall x. SuggestResponse -> Rep SuggestResponse x
Prelude.Generic)
newSuggestResponse ::
Prelude.Int ->
SuggestResponse
newSuggestResponse :: Int -> SuggestResponse
newSuggestResponse Int
pHttpStatus_ =
SuggestResponse'
{ $sel:status:SuggestResponse' :: Maybe SuggestStatus
status = forall a. Maybe a
Prelude.Nothing,
$sel:suggest:SuggestResponse' :: Maybe SuggestModel
suggest = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:SuggestResponse' :: Int
httpStatus = Int
pHttpStatus_
}
suggestResponse_status :: Lens.Lens' SuggestResponse (Prelude.Maybe SuggestStatus)
suggestResponse_status :: Lens' SuggestResponse (Maybe SuggestStatus)
suggestResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SuggestResponse' {Maybe SuggestStatus
status :: Maybe SuggestStatus
$sel:status:SuggestResponse' :: SuggestResponse -> Maybe SuggestStatus
status} -> Maybe SuggestStatus
status) (\s :: SuggestResponse
s@SuggestResponse' {} Maybe SuggestStatus
a -> SuggestResponse
s {$sel:status:SuggestResponse' :: Maybe SuggestStatus
status = Maybe SuggestStatus
a} :: SuggestResponse)
suggestResponse_suggest :: Lens.Lens' SuggestResponse (Prelude.Maybe SuggestModel)
suggestResponse_suggest :: Lens' SuggestResponse (Maybe SuggestModel)
suggestResponse_suggest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SuggestResponse' {Maybe SuggestModel
suggest :: Maybe SuggestModel
$sel:suggest:SuggestResponse' :: SuggestResponse -> Maybe SuggestModel
suggest} -> Maybe SuggestModel
suggest) (\s :: SuggestResponse
s@SuggestResponse' {} Maybe SuggestModel
a -> SuggestResponse
s {$sel:suggest:SuggestResponse' :: Maybe SuggestModel
suggest = Maybe SuggestModel
a} :: SuggestResponse)
suggestResponse_httpStatus :: Lens.Lens' SuggestResponse Prelude.Int
suggestResponse_httpStatus :: Lens' SuggestResponse Int
suggestResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SuggestResponse' {Int
httpStatus :: Int
$sel:httpStatus:SuggestResponse' :: SuggestResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SuggestResponse
s@SuggestResponse' {} Int
a -> SuggestResponse
s {$sel:httpStatus:SuggestResponse' :: Int
httpStatus = Int
a} :: SuggestResponse)
instance Prelude.NFData SuggestResponse where
rnf :: SuggestResponse -> ()
rnf SuggestResponse' {Int
Maybe SuggestStatus
Maybe SuggestModel
httpStatus :: Int
suggest :: Maybe SuggestModel
status :: Maybe SuggestStatus
$sel:httpStatus:SuggestResponse' :: SuggestResponse -> Int
$sel:suggest:SuggestResponse' :: SuggestResponse -> Maybe SuggestModel
$sel:status:SuggestResponse' :: SuggestResponse -> Maybe SuggestStatus
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe SuggestStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SuggestModel
suggest
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus