{-# 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.RedshiftData.GetStatementResult
(
GetStatementResult (..),
newGetStatementResult,
getStatementResult_nextToken,
getStatementResult_id,
GetStatementResultResponse (..),
newGetStatementResultResponse,
getStatementResultResponse_columnMetadata,
getStatementResultResponse_nextToken,
getStatementResultResponse_totalNumRows,
getStatementResultResponse_httpStatus,
getStatementResultResponse_records,
)
where
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 Amazonka.RedshiftData.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetStatementResult = GetStatementResult'
{
GetStatementResult -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
GetStatementResult -> Text
id :: Prelude.Text
}
deriving (GetStatementResult -> GetStatementResult -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStatementResult -> GetStatementResult -> Bool
$c/= :: GetStatementResult -> GetStatementResult -> Bool
== :: GetStatementResult -> GetStatementResult -> Bool
$c== :: GetStatementResult -> GetStatementResult -> Bool
Prelude.Eq, ReadPrec [GetStatementResult]
ReadPrec GetStatementResult
Int -> ReadS GetStatementResult
ReadS [GetStatementResult]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStatementResult]
$creadListPrec :: ReadPrec [GetStatementResult]
readPrec :: ReadPrec GetStatementResult
$creadPrec :: ReadPrec GetStatementResult
readList :: ReadS [GetStatementResult]
$creadList :: ReadS [GetStatementResult]
readsPrec :: Int -> ReadS GetStatementResult
$creadsPrec :: Int -> ReadS GetStatementResult
Prelude.Read, Int -> GetStatementResult -> ShowS
[GetStatementResult] -> ShowS
GetStatementResult -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStatementResult] -> ShowS
$cshowList :: [GetStatementResult] -> ShowS
show :: GetStatementResult -> String
$cshow :: GetStatementResult -> String
showsPrec :: Int -> GetStatementResult -> ShowS
$cshowsPrec :: Int -> GetStatementResult -> ShowS
Prelude.Show, forall x. Rep GetStatementResult x -> GetStatementResult
forall x. GetStatementResult -> Rep GetStatementResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStatementResult x -> GetStatementResult
$cfrom :: forall x. GetStatementResult -> Rep GetStatementResult x
Prelude.Generic)
newGetStatementResult ::
Prelude.Text ->
GetStatementResult
newGetStatementResult :: Text -> GetStatementResult
newGetStatementResult Text
pId_ =
GetStatementResult'
{ $sel:nextToken:GetStatementResult' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:id:GetStatementResult' :: Text
id = Text
pId_
}
getStatementResult_nextToken :: Lens.Lens' GetStatementResult (Prelude.Maybe Prelude.Text)
getStatementResult_nextToken :: Lens' GetStatementResult (Maybe Text)
getStatementResult_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResult' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetStatementResult' :: GetStatementResult -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetStatementResult
s@GetStatementResult' {} Maybe Text
a -> GetStatementResult
s {$sel:nextToken:GetStatementResult' :: Maybe Text
nextToken = Maybe Text
a} :: GetStatementResult)
getStatementResult_id :: Lens.Lens' GetStatementResult Prelude.Text
getStatementResult_id :: Lens' GetStatementResult Text
getStatementResult_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResult' {Text
id :: Text
$sel:id:GetStatementResult' :: GetStatementResult -> Text
id} -> Text
id) (\s :: GetStatementResult
s@GetStatementResult' {} Text
a -> GetStatementResult
s {$sel:id:GetStatementResult' :: Text
id = Text
a} :: GetStatementResult)
instance Core.AWSPager GetStatementResult where
page :: GetStatementResult
-> AWSResponse GetStatementResult -> Maybe GetStatementResult
page GetStatementResult
rq AWSResponse GetStatementResult
rs
| forall a. AWSTruncated a => a -> Bool
Core.stop
( AWSResponse GetStatementResult
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetStatementResultResponse (Maybe Text)
getStatementResultResponse_nextToken
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
) =
forall a. Maybe a
Prelude.Nothing
| forall a. AWSTruncated a => a -> Bool
Core.stop
(AWSResponse GetStatementResult
rs forall s a. s -> Getting a s a -> a
Lens.^. Lens' GetStatementResultResponse [[Field]]
getStatementResultResponse_records) =
forall a. Maybe a
Prelude.Nothing
| Bool
Prelude.otherwise =
forall a. a -> Maybe a
Prelude.Just
forall a b. (a -> b) -> a -> b
Prelude.$ GetStatementResult
rq
forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetStatementResult (Maybe Text)
getStatementResult_nextToken
forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetStatementResult
rs
forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetStatementResultResponse (Maybe Text)
getStatementResultResponse_nextToken
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
instance Core.AWSRequest GetStatementResult where
type
AWSResponse GetStatementResult =
GetStatementResultResponse
request :: (Service -> Service)
-> GetStatementResult -> Request GetStatementResult
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 GetStatementResult
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetStatementResult)))
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 [ColumnMetadata]
-> Maybe Text
-> Maybe Integer
-> Int
-> [[Field]]
-> GetStatementResultResponse
GetStatementResultResponse'
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
"ColumnMetadata" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
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
"NextToken")
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
"TotalNumRows")
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))
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
"Records" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
)
instance Prelude.Hashable GetStatementResult where
hashWithSalt :: Int -> GetStatementResult -> Int
hashWithSalt Int
_salt GetStatementResult' {Maybe Text
Text
id :: Text
nextToken :: Maybe Text
$sel:id:GetStatementResult' :: GetStatementResult -> Text
$sel:nextToken:GetStatementResult' :: GetStatementResult -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
instance Prelude.NFData GetStatementResult where
rnf :: GetStatementResult -> ()
rnf GetStatementResult' {Maybe Text
Text
id :: Text
nextToken :: Maybe Text
$sel:id:GetStatementResult' :: GetStatementResult -> Text
$sel:nextToken:GetStatementResult' :: GetStatementResult -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
id
instance Data.ToHeaders GetStatementResult where
toHeaders :: GetStatementResult -> 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
"RedshiftData.GetStatementResult" ::
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 GetStatementResult where
toJSON :: GetStatementResult -> Value
toJSON GetStatementResult' {Maybe Text
Text
id :: Text
nextToken :: Maybe Text
$sel:id:GetStatementResult' :: GetStatementResult -> Text
$sel:nextToken:GetStatementResult' :: GetStatementResult -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"NextToken" 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
nextToken,
forall a. a -> Maybe a
Prelude.Just (Key
"Id" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
id)
]
)
instance Data.ToPath GetStatementResult where
toPath :: GetStatementResult -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GetStatementResult where
toQuery :: GetStatementResult -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetStatementResultResponse = GetStatementResultResponse'
{
GetStatementResultResponse -> Maybe [ColumnMetadata]
columnMetadata :: Prelude.Maybe [ColumnMetadata],
GetStatementResultResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
GetStatementResultResponse -> Maybe Integer
totalNumRows :: Prelude.Maybe Prelude.Integer,
GetStatementResultResponse -> Int
httpStatus :: Prelude.Int,
GetStatementResultResponse -> [[Field]]
records :: [[Field]]
}
deriving (GetStatementResultResponse -> GetStatementResultResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStatementResultResponse -> GetStatementResultResponse -> Bool
$c/= :: GetStatementResultResponse -> GetStatementResultResponse -> Bool
== :: GetStatementResultResponse -> GetStatementResultResponse -> Bool
$c== :: GetStatementResultResponse -> GetStatementResultResponse -> Bool
Prelude.Eq, ReadPrec [GetStatementResultResponse]
ReadPrec GetStatementResultResponse
Int -> ReadS GetStatementResultResponse
ReadS [GetStatementResultResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStatementResultResponse]
$creadListPrec :: ReadPrec [GetStatementResultResponse]
readPrec :: ReadPrec GetStatementResultResponse
$creadPrec :: ReadPrec GetStatementResultResponse
readList :: ReadS [GetStatementResultResponse]
$creadList :: ReadS [GetStatementResultResponse]
readsPrec :: Int -> ReadS GetStatementResultResponse
$creadsPrec :: Int -> ReadS GetStatementResultResponse
Prelude.Read, Int -> GetStatementResultResponse -> ShowS
[GetStatementResultResponse] -> ShowS
GetStatementResultResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStatementResultResponse] -> ShowS
$cshowList :: [GetStatementResultResponse] -> ShowS
show :: GetStatementResultResponse -> String
$cshow :: GetStatementResultResponse -> String
showsPrec :: Int -> GetStatementResultResponse -> ShowS
$cshowsPrec :: Int -> GetStatementResultResponse -> ShowS
Prelude.Show, forall x.
Rep GetStatementResultResponse x -> GetStatementResultResponse
forall x.
GetStatementResultResponse -> Rep GetStatementResultResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetStatementResultResponse x -> GetStatementResultResponse
$cfrom :: forall x.
GetStatementResultResponse -> Rep GetStatementResultResponse x
Prelude.Generic)
newGetStatementResultResponse ::
Prelude.Int ->
GetStatementResultResponse
newGetStatementResultResponse :: Int -> GetStatementResultResponse
newGetStatementResultResponse Int
pHttpStatus_ =
GetStatementResultResponse'
{ $sel:columnMetadata:GetStatementResultResponse' :: Maybe [ColumnMetadata]
columnMetadata =
forall a. Maybe a
Prelude.Nothing,
$sel:nextToken:GetStatementResultResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
$sel:totalNumRows:GetStatementResultResponse' :: Maybe Integer
totalNumRows = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetStatementResultResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:records:GetStatementResultResponse' :: [[Field]]
records = forall a. Monoid a => a
Prelude.mempty
}
getStatementResultResponse_columnMetadata :: Lens.Lens' GetStatementResultResponse (Prelude.Maybe [ColumnMetadata])
getStatementResultResponse_columnMetadata :: Lens' GetStatementResultResponse (Maybe [ColumnMetadata])
getStatementResultResponse_columnMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResultResponse' {Maybe [ColumnMetadata]
columnMetadata :: Maybe [ColumnMetadata]
$sel:columnMetadata:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe [ColumnMetadata]
columnMetadata} -> Maybe [ColumnMetadata]
columnMetadata) (\s :: GetStatementResultResponse
s@GetStatementResultResponse' {} Maybe [ColumnMetadata]
a -> GetStatementResultResponse
s {$sel:columnMetadata:GetStatementResultResponse' :: Maybe [ColumnMetadata]
columnMetadata = Maybe [ColumnMetadata]
a} :: GetStatementResultResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
getStatementResultResponse_nextToken :: Lens.Lens' GetStatementResultResponse (Prelude.Maybe Prelude.Text)
getStatementResultResponse_nextToken :: Lens' GetStatementResultResponse (Maybe Text)
getStatementResultResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResultResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetStatementResultResponse
s@GetStatementResultResponse' {} Maybe Text
a -> GetStatementResultResponse
s {$sel:nextToken:GetStatementResultResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetStatementResultResponse)
getStatementResultResponse_totalNumRows :: Lens.Lens' GetStatementResultResponse (Prelude.Maybe Prelude.Integer)
getStatementResultResponse_totalNumRows :: Lens' GetStatementResultResponse (Maybe Integer)
getStatementResultResponse_totalNumRows = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResultResponse' {Maybe Integer
totalNumRows :: Maybe Integer
$sel:totalNumRows:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe Integer
totalNumRows} -> Maybe Integer
totalNumRows) (\s :: GetStatementResultResponse
s@GetStatementResultResponse' {} Maybe Integer
a -> GetStatementResultResponse
s {$sel:totalNumRows:GetStatementResultResponse' :: Maybe Integer
totalNumRows = Maybe Integer
a} :: GetStatementResultResponse)
getStatementResultResponse_httpStatus :: Lens.Lens' GetStatementResultResponse Prelude.Int
getStatementResultResponse_httpStatus :: Lens' GetStatementResultResponse Int
getStatementResultResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResultResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetStatementResultResponse' :: GetStatementResultResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetStatementResultResponse
s@GetStatementResultResponse' {} Int
a -> GetStatementResultResponse
s {$sel:httpStatus:GetStatementResultResponse' :: Int
httpStatus = Int
a} :: GetStatementResultResponse)
getStatementResultResponse_records :: Lens.Lens' GetStatementResultResponse [[Field]]
getStatementResultResponse_records :: Lens' GetStatementResultResponse [[Field]]
getStatementResultResponse_records = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStatementResultResponse' {[[Field]]
records :: [[Field]]
$sel:records:GetStatementResultResponse' :: GetStatementResultResponse -> [[Field]]
records} -> [[Field]]
records) (\s :: GetStatementResultResponse
s@GetStatementResultResponse' {} [[Field]]
a -> GetStatementResultResponse
s {$sel:records:GetStatementResultResponse' :: [[Field]]
records = [[Field]]
a} :: GetStatementResultResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Prelude.NFData GetStatementResultResponse where
rnf :: GetStatementResultResponse -> ()
rnf GetStatementResultResponse' {Int
[[Field]]
Maybe Integer
Maybe [ColumnMetadata]
Maybe Text
records :: [[Field]]
httpStatus :: Int
totalNumRows :: Maybe Integer
nextToken :: Maybe Text
columnMetadata :: Maybe [ColumnMetadata]
$sel:records:GetStatementResultResponse' :: GetStatementResultResponse -> [[Field]]
$sel:httpStatus:GetStatementResultResponse' :: GetStatementResultResponse -> Int
$sel:totalNumRows:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe Integer
$sel:nextToken:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe Text
$sel:columnMetadata:GetStatementResultResponse' :: GetStatementResultResponse -> Maybe [ColumnMetadata]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ColumnMetadata]
columnMetadata
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
totalNumRows
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 [[Field]]
records