{-# 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.Glue.GetStatement
(
GetStatement (..),
newGetStatement,
getStatement_requestOrigin,
getStatement_sessionId,
getStatement_id,
GetStatementResponse (..),
newGetStatementResponse,
getStatementResponse_statement,
getStatementResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glue.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetStatement = GetStatement'
{
GetStatement -> Maybe Text
requestOrigin :: Prelude.Maybe Prelude.Text,
GetStatement -> Text
sessionId :: Prelude.Text,
GetStatement -> Int
id :: Prelude.Int
}
deriving (GetStatement -> GetStatement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStatement -> GetStatement -> Bool
$c/= :: GetStatement -> GetStatement -> Bool
== :: GetStatement -> GetStatement -> Bool
$c== :: GetStatement -> GetStatement -> Bool
Prelude.Eq, ReadPrec [GetStatement]
ReadPrec GetStatement
Int -> ReadS GetStatement
ReadS [GetStatement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStatement]
$creadListPrec :: ReadPrec [GetStatement]
readPrec :: ReadPrec GetStatement
$creadPrec :: ReadPrec GetStatement
readList :: ReadS [GetStatement]
$creadList :: ReadS [GetStatement]
readsPrec :: Int -> ReadS GetStatement
$creadsPrec :: Int -> ReadS GetStatement
Prelude.Read, Int -> GetStatement -> ShowS
[GetStatement] -> ShowS
GetStatement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStatement] -> ShowS
$cshowList :: [GetStatement] -> ShowS
show :: GetStatement -> String
$cshow :: GetStatement -> String
showsPrec :: Int -> GetStatement -> ShowS
$cshowsPrec :: Int -> GetStatement -> ShowS
Prelude.Show, forall x. Rep GetStatement x -> GetStatement
forall x. GetStatement -> Rep GetStatement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStatement x -> GetStatement
$cfrom :: forall x. GetStatement -> Rep GetStatement x
Prelude.Generic)
newGetStatement ::
Prelude.Text ->
Prelude.Int ->
GetStatement
newGetStatement :: Text -> Int -> GetStatement
newGetStatement Text
pSessionId_ Int
pId_ =
GetStatement'
{ $sel:requestOrigin:GetStatement' :: Maybe Text
requestOrigin = forall a. Maybe a
Prelude.Nothing,
$sel:sessionId:GetStatement' :: Text
sessionId = Text
pSessionId_,
$sel:id:GetStatement' :: Int
id = Int
pId_
}
getStatement_requestOrigin :: Lens.Lens' GetStatement (Prelude.Maybe Prelude.Text)
getStatement_requestOrigin :: Lens' GetStatement (Maybe Text)
getStatement_requestOrigin = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatement' {Maybe Text
requestOrigin :: Maybe Text
$sel:requestOrigin:GetStatement' :: GetStatement -> Maybe Text
requestOrigin} -> Maybe Text
requestOrigin) (\s :: GetStatement
s@GetStatement' {} Maybe Text
a -> GetStatement
s {$sel:requestOrigin:GetStatement' :: Maybe Text
requestOrigin = Maybe Text
a} :: GetStatement)
getStatement_sessionId :: Lens.Lens' GetStatement Prelude.Text
getStatement_sessionId :: Lens' GetStatement Text
getStatement_sessionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatement' {Text
sessionId :: Text
$sel:sessionId:GetStatement' :: GetStatement -> Text
sessionId} -> Text
sessionId) (\s :: GetStatement
s@GetStatement' {} Text
a -> GetStatement
s {$sel:sessionId:GetStatement' :: Text
sessionId = Text
a} :: GetStatement)
getStatement_id :: Lens.Lens' GetStatement Prelude.Int
getStatement_id :: Lens' GetStatement Int
getStatement_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatement' {Int
id :: Int
$sel:id:GetStatement' :: GetStatement -> Int
id} -> Int
id) (\s :: GetStatement
s@GetStatement' {} Int
a -> GetStatement
s {$sel:id:GetStatement' :: Int
id = Int
a} :: GetStatement)
instance Core.AWSRequest GetStatement where
type AWSResponse GetStatement = GetStatementResponse
request :: (Service -> Service) -> GetStatement -> Request GetStatement
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetStatement
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetStatement)))
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 Statement -> Int -> GetStatementResponse
GetStatementResponse'
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
"Statement")
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 GetStatement where
hashWithSalt :: Int -> GetStatement -> Int
hashWithSalt Int
_salt GetStatement' {Int
Maybe Text
Text
id :: Int
sessionId :: Text
requestOrigin :: Maybe Text
$sel:id:GetStatement' :: GetStatement -> Int
$sel:sessionId:GetStatement' :: GetStatement -> Text
$sel:requestOrigin:GetStatement' :: GetStatement -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
requestOrigin
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sessionId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
id
instance Prelude.NFData GetStatement where
rnf :: GetStatement -> ()
rnf GetStatement' {Int
Maybe Text
Text
id :: Int
sessionId :: Text
requestOrigin :: Maybe Text
$sel:id:GetStatement' :: GetStatement -> Int
$sel:sessionId:GetStatement' :: GetStatement -> Text
$sel:requestOrigin:GetStatement' :: GetStatement -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
requestOrigin
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sessionId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
id
instance Data.ToHeaders GetStatement where
toHeaders :: GetStatement -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"AWSGlue.GetStatement" :: Prelude.ByteString),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetStatement where
toJSON :: GetStatement -> Value
toJSON GetStatement' {Int
Maybe Text
Text
id :: Int
sessionId :: Text
requestOrigin :: Maybe Text
$sel:id:GetStatement' :: GetStatement -> Int
$sel:sessionId:GetStatement' :: GetStatement -> Text
$sel:requestOrigin:GetStatement' :: GetStatement -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"RequestOrigin" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
requestOrigin,
forall a. a -> Maybe a
Prelude.Just (Key
"SessionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
sessionId),
forall a. a -> Maybe a
Prelude.Just (Key
"Id" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Int
id)
]
)
instance Data.ToPath GetStatement where
toPath :: GetStatement -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetStatement where
toQuery :: GetStatement -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetStatementResponse = GetStatementResponse'
{
GetStatementResponse -> Maybe Statement
statement :: Prelude.Maybe Statement,
GetStatementResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetStatementResponse -> GetStatementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStatementResponse -> GetStatementResponse -> Bool
$c/= :: GetStatementResponse -> GetStatementResponse -> Bool
== :: GetStatementResponse -> GetStatementResponse -> Bool
$c== :: GetStatementResponse -> GetStatementResponse -> Bool
Prelude.Eq, ReadPrec [GetStatementResponse]
ReadPrec GetStatementResponse
Int -> ReadS GetStatementResponse
ReadS [GetStatementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStatementResponse]
$creadListPrec :: ReadPrec [GetStatementResponse]
readPrec :: ReadPrec GetStatementResponse
$creadPrec :: ReadPrec GetStatementResponse
readList :: ReadS [GetStatementResponse]
$creadList :: ReadS [GetStatementResponse]
readsPrec :: Int -> ReadS GetStatementResponse
$creadsPrec :: Int -> ReadS GetStatementResponse
Prelude.Read, Int -> GetStatementResponse -> ShowS
[GetStatementResponse] -> ShowS
GetStatementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStatementResponse] -> ShowS
$cshowList :: [GetStatementResponse] -> ShowS
show :: GetStatementResponse -> String
$cshow :: GetStatementResponse -> String
showsPrec :: Int -> GetStatementResponse -> ShowS
$cshowsPrec :: Int -> GetStatementResponse -> ShowS
Prelude.Show, forall x. Rep GetStatementResponse x -> GetStatementResponse
forall x. GetStatementResponse -> Rep GetStatementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStatementResponse x -> GetStatementResponse
$cfrom :: forall x. GetStatementResponse -> Rep GetStatementResponse x
Prelude.Generic)
newGetStatementResponse ::
Prelude.Int ->
GetStatementResponse
newGetStatementResponse :: Int -> GetStatementResponse
newGetStatementResponse Int
pHttpStatus_ =
GetStatementResponse'
{ $sel:statement:GetStatementResponse' :: Maybe Statement
statement = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetStatementResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getStatementResponse_statement :: Lens.Lens' GetStatementResponse (Prelude.Maybe Statement)
getStatementResponse_statement :: Lens' GetStatementResponse (Maybe Statement)
getStatementResponse_statement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResponse' {Maybe Statement
statement :: Maybe Statement
$sel:statement:GetStatementResponse' :: GetStatementResponse -> Maybe Statement
statement} -> Maybe Statement
statement) (\s :: GetStatementResponse
s@GetStatementResponse' {} Maybe Statement
a -> GetStatementResponse
s {$sel:statement:GetStatementResponse' :: Maybe Statement
statement = Maybe Statement
a} :: GetStatementResponse)
getStatementResponse_httpStatus :: Lens.Lens' GetStatementResponse Prelude.Int
getStatementResponse_httpStatus :: Lens' GetStatementResponse Int
getStatementResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetStatementResponse' :: GetStatementResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetStatementResponse
s@GetStatementResponse' {} Int
a -> GetStatementResponse
s {$sel:httpStatus:GetStatementResponse' :: Int
httpStatus = Int
a} :: GetStatementResponse)
instance Prelude.NFData GetStatementResponse where
rnf :: GetStatementResponse -> ()
rnf GetStatementResponse' {Int
Maybe Statement
httpStatus :: Int
statement :: Maybe Statement
$sel:httpStatus:GetStatementResponse' :: GetStatementResponse -> Int
$sel:statement:GetStatementResponse' :: GetStatementResponse -> Maybe Statement
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Statement
statement
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus