{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.RedshiftData.DescribeStatement
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the details about a specific instance when a query was run by
-- the Amazon Redshift Data API. The information includes when the query
-- started, when it finished, the query status, the number of rows
-- returned, and the SQL statement.
--
-- For more information about the Amazon Redshift Data API and CLI usage
-- examples, see
-- <https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html Using the Amazon Redshift Data API>
-- in the /Amazon Redshift Management Guide/.
module Amazonka.RedshiftData.DescribeStatement
  ( -- * Creating a Request
    DescribeStatement (..),
    newDescribeStatement,

    -- * Request Lenses
    describeStatement_id,

    -- * Destructuring the Response
    DescribeStatementResponse (..),
    newDescribeStatementResponse,

    -- * Response Lenses
    describeStatementResponse_clusterIdentifier,
    describeStatementResponse_createdAt,
    describeStatementResponse_database,
    describeStatementResponse_dbUser,
    describeStatementResponse_duration,
    describeStatementResponse_error,
    describeStatementResponse_hasResultSet,
    describeStatementResponse_queryParameters,
    describeStatementResponse_queryString,
    describeStatementResponse_redshiftPid,
    describeStatementResponse_redshiftQueryId,
    describeStatementResponse_resultRows,
    describeStatementResponse_resultSize,
    describeStatementResponse_secretArn,
    describeStatementResponse_status,
    describeStatementResponse_subStatements,
    describeStatementResponse_updatedAt,
    describeStatementResponse_workgroupName,
    describeStatementResponse_httpStatus,
    describeStatementResponse_id,
  )
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

-- | /See:/ 'newDescribeStatement' smart constructor.
data DescribeStatement = DescribeStatement'
  { -- | The identifier of the SQL statement to describe. This value is a
    -- universally unique identifier (UUID) generated by Amazon Redshift Data
    -- API. A suffix indicates the number of the SQL statement. For example,
    -- @d9b6c0c9-0747-4bf4-b142-e8883122f766:2@ has a suffix of @:2@ that
    -- indicates the second SQL statement of a batch query. This identifier is
    -- returned by @BatchExecuteStatment@, @ExecuteStatement@, and
    -- @ListStatements@.
    DescribeStatement -> Text
id :: Prelude.Text
  }
  deriving (DescribeStatement -> DescribeStatement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeStatement -> DescribeStatement -> Bool
$c/= :: DescribeStatement -> DescribeStatement -> Bool
== :: DescribeStatement -> DescribeStatement -> Bool
$c== :: DescribeStatement -> DescribeStatement -> Bool
Prelude.Eq, ReadPrec [DescribeStatement]
ReadPrec DescribeStatement
Int -> ReadS DescribeStatement
ReadS [DescribeStatement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeStatement]
$creadListPrec :: ReadPrec [DescribeStatement]
readPrec :: ReadPrec DescribeStatement
$creadPrec :: ReadPrec DescribeStatement
readList :: ReadS [DescribeStatement]
$creadList :: ReadS [DescribeStatement]
readsPrec :: Int -> ReadS DescribeStatement
$creadsPrec :: Int -> ReadS DescribeStatement
Prelude.Read, Int -> DescribeStatement -> ShowS
[DescribeStatement] -> ShowS
DescribeStatement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeStatement] -> ShowS
$cshowList :: [DescribeStatement] -> ShowS
show :: DescribeStatement -> String
$cshow :: DescribeStatement -> String
showsPrec :: Int -> DescribeStatement -> ShowS
$cshowsPrec :: Int -> DescribeStatement -> ShowS
Prelude.Show, forall x. Rep DescribeStatement x -> DescribeStatement
forall x. DescribeStatement -> Rep DescribeStatement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeStatement x -> DescribeStatement
$cfrom :: forall x. DescribeStatement -> Rep DescribeStatement x
Prelude.Generic)

-- |
-- Create a value of 'DescribeStatement' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'id', 'describeStatement_id' - The identifier of the SQL statement to describe. This value is a
-- universally unique identifier (UUID) generated by Amazon Redshift Data
-- API. A suffix indicates the number of the SQL statement. For example,
-- @d9b6c0c9-0747-4bf4-b142-e8883122f766:2@ has a suffix of @:2@ that
-- indicates the second SQL statement of a batch query. This identifier is
-- returned by @BatchExecuteStatment@, @ExecuteStatement@, and
-- @ListStatements@.
newDescribeStatement ::
  -- | 'id'
  Prelude.Text ->
  DescribeStatement
newDescribeStatement :: Text -> DescribeStatement
newDescribeStatement Text
pId_ =
  DescribeStatement' {$sel:id:DescribeStatement' :: Text
id = Text
pId_}

-- | The identifier of the SQL statement to describe. This value is a
-- universally unique identifier (UUID) generated by Amazon Redshift Data
-- API. A suffix indicates the number of the SQL statement. For example,
-- @d9b6c0c9-0747-4bf4-b142-e8883122f766:2@ has a suffix of @:2@ that
-- indicates the second SQL statement of a batch query. This identifier is
-- returned by @BatchExecuteStatment@, @ExecuteStatement@, and
-- @ListStatements@.
describeStatement_id :: Lens.Lens' DescribeStatement Prelude.Text
describeStatement_id :: Lens' DescribeStatement Text
describeStatement_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatement' {Text
id :: Text
$sel:id:DescribeStatement' :: DescribeStatement -> Text
id} -> Text
id) (\s :: DescribeStatement
s@DescribeStatement' {} Text
a -> DescribeStatement
s {$sel:id:DescribeStatement' :: Text
id = Text
a} :: DescribeStatement)

instance Core.AWSRequest DescribeStatement where
  type
    AWSResponse DescribeStatement =
      DescribeStatementResponse
  request :: (Service -> Service)
-> DescribeStatement -> Request DescribeStatement
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 DescribeStatement
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeStatement)))
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 Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe Text
-> Maybe Bool
-> Maybe (NonEmpty SqlParameter)
-> Maybe Text
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Integer
-> Maybe Text
-> Maybe StatusString
-> Maybe [SubStatementData]
-> Maybe POSIX
-> Maybe Text
-> Int
-> Text
-> DescribeStatementResponse
DescribeStatementResponse'
            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
"ClusterIdentifier")
            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
"CreatedAt")
            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
"Database")
            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
"DbUser")
            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
"Duration")
            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
"Error")
            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
"HasResultSet")
            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
"QueryParameters")
            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
"QueryString")
            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
"RedshiftPid")
            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
"RedshiftQueryId")
            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
"ResultRows")
            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
"ResultSize")
            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
"SecretArn")
            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
"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
"SubStatements" 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
"UpdatedAt")
            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
"WorkgroupName")
            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 a
Data..:> Key
"Id")
      )

instance Prelude.Hashable DescribeStatement where
  hashWithSalt :: Int -> DescribeStatement -> Int
hashWithSalt Int
_salt DescribeStatement' {Text
id :: Text
$sel:id:DescribeStatement' :: DescribeStatement -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

instance Prelude.NFData DescribeStatement where
  rnf :: DescribeStatement -> ()
rnf DescribeStatement' {Text
id :: Text
$sel:id:DescribeStatement' :: DescribeStatement -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
id

instance Data.ToHeaders DescribeStatement where
  toHeaders :: DescribeStatement -> 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.DescribeStatement" ::
                          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 DescribeStatement where
  toJSON :: DescribeStatement -> Value
toJSON DescribeStatement' {Text
id :: Text
$sel:id:DescribeStatement' :: DescribeStatement -> Text
..} =
    [Pair] -> Value
Data.object
      (forall a. [Maybe a] -> [a]
Prelude.catMaybes [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 DescribeStatement where
  toPath :: DescribeStatement -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DescribeStatement where
  toQuery :: DescribeStatement -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeStatementResponse' smart constructor.
data DescribeStatementResponse = DescribeStatementResponse'
  { -- | The cluster identifier.
    DescribeStatementResponse -> Maybe Text
clusterIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The date and time (UTC) when the SQL statement was submitted to run.
    DescribeStatementResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | The name of the database.
    DescribeStatementResponse -> Maybe Text
database :: Prelude.Maybe Prelude.Text,
    -- | The database user name.
    DescribeStatementResponse -> Maybe Text
dbUser :: Prelude.Maybe Prelude.Text,
    -- | The amount of time in nanoseconds that the statement ran.
    DescribeStatementResponse -> Maybe Integer
duration :: Prelude.Maybe Prelude.Integer,
    -- | The error message from the cluster if the SQL statement encountered an
    -- error while running.
    DescribeStatementResponse -> Maybe Text
error :: Prelude.Maybe Prelude.Text,
    -- | A value that indicates whether the statement has a result set. The
    -- result set can be empty. The value is true for an empty result set. The
    -- value is true if any substatement returns a result set.
    DescribeStatementResponse -> Maybe Bool
hasResultSet :: Prelude.Maybe Prelude.Bool,
    -- | The parameters for the SQL statement.
    DescribeStatementResponse -> Maybe (NonEmpty SqlParameter)
queryParameters :: Prelude.Maybe (Prelude.NonEmpty SqlParameter),
    -- | The SQL statement text.
    DescribeStatementResponse -> Maybe Text
queryString :: Prelude.Maybe Prelude.Text,
    -- | The process identifier from Amazon Redshift.
    DescribeStatementResponse -> Maybe Integer
redshiftPid :: Prelude.Maybe Prelude.Integer,
    -- | The identifier of the query generated by Amazon Redshift. These
    -- identifiers are also available in the @query@ column of the @STL_QUERY@
    -- system view.
    DescribeStatementResponse -> Maybe Integer
redshiftQueryId :: Prelude.Maybe Prelude.Integer,
    -- | Either the number of rows returned from the SQL statement or the number
    -- of rows affected. If result size is greater than zero, the result rows
    -- can be the number of rows affected by SQL statements such as INSERT,
    -- UPDATE, DELETE, COPY, and others. A @-1@ indicates the value is null.
    DescribeStatementResponse -> Maybe Integer
resultRows :: Prelude.Maybe Prelude.Integer,
    -- | The size in bytes of the returned results. A @-1@ indicates the value is
    -- null.
    DescribeStatementResponse -> Maybe Integer
resultSize :: Prelude.Maybe Prelude.Integer,
    -- | The name or Amazon Resource Name (ARN) of the secret that enables access
    -- to the database.
    DescribeStatementResponse -> Maybe Text
secretArn :: Prelude.Maybe Prelude.Text,
    -- | The status of the SQL statement being described. Status values are
    -- defined as follows:
    --
    -- -   ABORTED - The query run was stopped by the user.
    --
    -- -   ALL - A status value that includes all query statuses. This value
    --     can be used to filter results.
    --
    -- -   FAILED - The query run failed.
    --
    -- -   FINISHED - The query has finished running.
    --
    -- -   PICKED - The query has been chosen to be run.
    --
    -- -   STARTED - The query run has started.
    --
    -- -   SUBMITTED - The query was submitted, but not yet processed.
    DescribeStatementResponse -> Maybe StatusString
status :: Prelude.Maybe StatusString,
    -- | The SQL statements from a multiple statement run.
    DescribeStatementResponse -> Maybe [SubStatementData]
subStatements :: Prelude.Maybe [SubStatementData],
    -- | The date and time (UTC) that the metadata for the SQL statement was last
    -- updated. An example is the time the status last changed.
    DescribeStatementResponse -> Maybe POSIX
updatedAt :: Prelude.Maybe Data.POSIX,
    -- | The serverless workgroup name.
    DescribeStatementResponse -> Maybe Text
workgroupName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeStatementResponse -> Int
httpStatus :: Prelude.Int,
    -- | The identifier of the SQL statement described. This value is a
    -- universally unique identifier (UUID) generated by Amazon Redshift Data
    -- API.
    DescribeStatementResponse -> Text
id :: Prelude.Text
  }
  deriving (DescribeStatementResponse -> DescribeStatementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeStatementResponse -> DescribeStatementResponse -> Bool
$c/= :: DescribeStatementResponse -> DescribeStatementResponse -> Bool
== :: DescribeStatementResponse -> DescribeStatementResponse -> Bool
$c== :: DescribeStatementResponse -> DescribeStatementResponse -> Bool
Prelude.Eq, ReadPrec [DescribeStatementResponse]
ReadPrec DescribeStatementResponse
Int -> ReadS DescribeStatementResponse
ReadS [DescribeStatementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeStatementResponse]
$creadListPrec :: ReadPrec [DescribeStatementResponse]
readPrec :: ReadPrec DescribeStatementResponse
$creadPrec :: ReadPrec DescribeStatementResponse
readList :: ReadS [DescribeStatementResponse]
$creadList :: ReadS [DescribeStatementResponse]
readsPrec :: Int -> ReadS DescribeStatementResponse
$creadsPrec :: Int -> ReadS DescribeStatementResponse
Prelude.Read, Int -> DescribeStatementResponse -> ShowS
[DescribeStatementResponse] -> ShowS
DescribeStatementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeStatementResponse] -> ShowS
$cshowList :: [DescribeStatementResponse] -> ShowS
show :: DescribeStatementResponse -> String
$cshow :: DescribeStatementResponse -> String
showsPrec :: Int -> DescribeStatementResponse -> ShowS
$cshowsPrec :: Int -> DescribeStatementResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeStatementResponse x -> DescribeStatementResponse
forall x.
DescribeStatementResponse -> Rep DescribeStatementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeStatementResponse x -> DescribeStatementResponse
$cfrom :: forall x.
DescribeStatementResponse -> Rep DescribeStatementResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeStatementResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'clusterIdentifier', 'describeStatementResponse_clusterIdentifier' - The cluster identifier.
--
-- 'createdAt', 'describeStatementResponse_createdAt' - The date and time (UTC) when the SQL statement was submitted to run.
--
-- 'database', 'describeStatementResponse_database' - The name of the database.
--
-- 'dbUser', 'describeStatementResponse_dbUser' - The database user name.
--
-- 'duration', 'describeStatementResponse_duration' - The amount of time in nanoseconds that the statement ran.
--
-- 'error', 'describeStatementResponse_error' - The error message from the cluster if the SQL statement encountered an
-- error while running.
--
-- 'hasResultSet', 'describeStatementResponse_hasResultSet' - A value that indicates whether the statement has a result set. The
-- result set can be empty. The value is true for an empty result set. The
-- value is true if any substatement returns a result set.
--
-- 'queryParameters', 'describeStatementResponse_queryParameters' - The parameters for the SQL statement.
--
-- 'queryString', 'describeStatementResponse_queryString' - The SQL statement text.
--
-- 'redshiftPid', 'describeStatementResponse_redshiftPid' - The process identifier from Amazon Redshift.
--
-- 'redshiftQueryId', 'describeStatementResponse_redshiftQueryId' - The identifier of the query generated by Amazon Redshift. These
-- identifiers are also available in the @query@ column of the @STL_QUERY@
-- system view.
--
-- 'resultRows', 'describeStatementResponse_resultRows' - Either the number of rows returned from the SQL statement or the number
-- of rows affected. If result size is greater than zero, the result rows
-- can be the number of rows affected by SQL statements such as INSERT,
-- UPDATE, DELETE, COPY, and others. A @-1@ indicates the value is null.
--
-- 'resultSize', 'describeStatementResponse_resultSize' - The size in bytes of the returned results. A @-1@ indicates the value is
-- null.
--
-- 'secretArn', 'describeStatementResponse_secretArn' - The name or Amazon Resource Name (ARN) of the secret that enables access
-- to the database.
--
-- 'status', 'describeStatementResponse_status' - The status of the SQL statement being described. Status values are
-- defined as follows:
--
-- -   ABORTED - The query run was stopped by the user.
--
-- -   ALL - A status value that includes all query statuses. This value
--     can be used to filter results.
--
-- -   FAILED - The query run failed.
--
-- -   FINISHED - The query has finished running.
--
-- -   PICKED - The query has been chosen to be run.
--
-- -   STARTED - The query run has started.
--
-- -   SUBMITTED - The query was submitted, but not yet processed.
--
-- 'subStatements', 'describeStatementResponse_subStatements' - The SQL statements from a multiple statement run.
--
-- 'updatedAt', 'describeStatementResponse_updatedAt' - The date and time (UTC) that the metadata for the SQL statement was last
-- updated. An example is the time the status last changed.
--
-- 'workgroupName', 'describeStatementResponse_workgroupName' - The serverless workgroup name.
--
-- 'httpStatus', 'describeStatementResponse_httpStatus' - The response's http status code.
--
-- 'id', 'describeStatementResponse_id' - The identifier of the SQL statement described. This value is a
-- universally unique identifier (UUID) generated by Amazon Redshift Data
-- API.
newDescribeStatementResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'id'
  Prelude.Text ->
  DescribeStatementResponse
newDescribeStatementResponse :: Int -> Text -> DescribeStatementResponse
newDescribeStatementResponse Int
pHttpStatus_ Text
pId_ =
  DescribeStatementResponse'
    { $sel:clusterIdentifier:DescribeStatementResponse' :: Maybe Text
clusterIdentifier =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeStatementResponse' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:database:DescribeStatementResponse' :: Maybe Text
database = forall a. Maybe a
Prelude.Nothing,
      $sel:dbUser:DescribeStatementResponse' :: Maybe Text
dbUser = forall a. Maybe a
Prelude.Nothing,
      $sel:duration:DescribeStatementResponse' :: Maybe Integer
duration = forall a. Maybe a
Prelude.Nothing,
      $sel:error:DescribeStatementResponse' :: Maybe Text
error = forall a. Maybe a
Prelude.Nothing,
      $sel:hasResultSet:DescribeStatementResponse' :: Maybe Bool
hasResultSet = forall a. Maybe a
Prelude.Nothing,
      $sel:queryParameters:DescribeStatementResponse' :: Maybe (NonEmpty SqlParameter)
queryParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:queryString:DescribeStatementResponse' :: Maybe Text
queryString = forall a. Maybe a
Prelude.Nothing,
      $sel:redshiftPid:DescribeStatementResponse' :: Maybe Integer
redshiftPid = forall a. Maybe a
Prelude.Nothing,
      $sel:redshiftQueryId:DescribeStatementResponse' :: Maybe Integer
redshiftQueryId = forall a. Maybe a
Prelude.Nothing,
      $sel:resultRows:DescribeStatementResponse' :: Maybe Integer
resultRows = forall a. Maybe a
Prelude.Nothing,
      $sel:resultSize:DescribeStatementResponse' :: Maybe Integer
resultSize = forall a. Maybe a
Prelude.Nothing,
      $sel:secretArn:DescribeStatementResponse' :: Maybe Text
secretArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeStatementResponse' :: Maybe StatusString
status = forall a. Maybe a
Prelude.Nothing,
      $sel:subStatements:DescribeStatementResponse' :: Maybe [SubStatementData]
subStatements = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedAt:DescribeStatementResponse' :: Maybe POSIX
updatedAt = forall a. Maybe a
Prelude.Nothing,
      $sel:workgroupName:DescribeStatementResponse' :: Maybe Text
workgroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeStatementResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:id:DescribeStatementResponse' :: Text
id = Text
pId_
    }

-- | The cluster identifier.
describeStatementResponse_clusterIdentifier :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_clusterIdentifier :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_clusterIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
clusterIdentifier :: Maybe Text
$sel:clusterIdentifier:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
clusterIdentifier} -> Maybe Text
clusterIdentifier) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:clusterIdentifier:DescribeStatementResponse' :: Maybe Text
clusterIdentifier = Maybe Text
a} :: DescribeStatementResponse)

-- | The date and time (UTC) when the SQL statement was submitted to run.
describeStatementResponse_createdAt :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.UTCTime)
describeStatementResponse_createdAt :: Lens' DescribeStatementResponse (Maybe UTCTime)
describeStatementResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe POSIX
a -> DescribeStatementResponse
s {$sel:createdAt:DescribeStatementResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: DescribeStatementResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The name of the database.
describeStatementResponse_database :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_database :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_database = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
database :: Maybe Text
$sel:database:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
database} -> Maybe Text
database) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:database:DescribeStatementResponse' :: Maybe Text
database = Maybe Text
a} :: DescribeStatementResponse)

-- | The database user name.
describeStatementResponse_dbUser :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_dbUser :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_dbUser = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
dbUser :: Maybe Text
$sel:dbUser:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
dbUser} -> Maybe Text
dbUser) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:dbUser:DescribeStatementResponse' :: Maybe Text
dbUser = Maybe Text
a} :: DescribeStatementResponse)

-- | The amount of time in nanoseconds that the statement ran.
describeStatementResponse_duration :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Integer)
describeStatementResponse_duration :: Lens' DescribeStatementResponse (Maybe Integer)
describeStatementResponse_duration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Integer
duration :: Maybe Integer
$sel:duration:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
duration} -> Maybe Integer
duration) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Integer
a -> DescribeStatementResponse
s {$sel:duration:DescribeStatementResponse' :: Maybe Integer
duration = Maybe Integer
a} :: DescribeStatementResponse)

-- | The error message from the cluster if the SQL statement encountered an
-- error while running.
describeStatementResponse_error :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_error :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
error :: Maybe Text
$sel:error:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
error} -> Maybe Text
error) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:error:DescribeStatementResponse' :: Maybe Text
error = Maybe Text
a} :: DescribeStatementResponse)

-- | A value that indicates whether the statement has a result set. The
-- result set can be empty. The value is true for an empty result set. The
-- value is true if any substatement returns a result set.
describeStatementResponse_hasResultSet :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Bool)
describeStatementResponse_hasResultSet :: Lens' DescribeStatementResponse (Maybe Bool)
describeStatementResponse_hasResultSet = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Bool
hasResultSet :: Maybe Bool
$sel:hasResultSet:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Bool
hasResultSet} -> Maybe Bool
hasResultSet) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Bool
a -> DescribeStatementResponse
s {$sel:hasResultSet:DescribeStatementResponse' :: Maybe Bool
hasResultSet = Maybe Bool
a} :: DescribeStatementResponse)

-- | The parameters for the SQL statement.
describeStatementResponse_queryParameters :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe (Prelude.NonEmpty SqlParameter))
describeStatementResponse_queryParameters :: Lens' DescribeStatementResponse (Maybe (NonEmpty SqlParameter))
describeStatementResponse_queryParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe (NonEmpty SqlParameter)
queryParameters :: Maybe (NonEmpty SqlParameter)
$sel:queryParameters:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe (NonEmpty SqlParameter)
queryParameters} -> Maybe (NonEmpty SqlParameter)
queryParameters) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe (NonEmpty SqlParameter)
a -> DescribeStatementResponse
s {$sel:queryParameters:DescribeStatementResponse' :: Maybe (NonEmpty SqlParameter)
queryParameters = Maybe (NonEmpty SqlParameter)
a} :: DescribeStatementResponse) 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

-- | The SQL statement text.
describeStatementResponse_queryString :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_queryString :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_queryString = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
queryString :: Maybe Text
$sel:queryString:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
queryString} -> Maybe Text
queryString) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:queryString:DescribeStatementResponse' :: Maybe Text
queryString = Maybe Text
a} :: DescribeStatementResponse)

-- | The process identifier from Amazon Redshift.
describeStatementResponse_redshiftPid :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Integer)
describeStatementResponse_redshiftPid :: Lens' DescribeStatementResponse (Maybe Integer)
describeStatementResponse_redshiftPid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Integer
redshiftPid :: Maybe Integer
$sel:redshiftPid:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
redshiftPid} -> Maybe Integer
redshiftPid) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Integer
a -> DescribeStatementResponse
s {$sel:redshiftPid:DescribeStatementResponse' :: Maybe Integer
redshiftPid = Maybe Integer
a} :: DescribeStatementResponse)

-- | The identifier of the query generated by Amazon Redshift. These
-- identifiers are also available in the @query@ column of the @STL_QUERY@
-- system view.
describeStatementResponse_redshiftQueryId :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Integer)
describeStatementResponse_redshiftQueryId :: Lens' DescribeStatementResponse (Maybe Integer)
describeStatementResponse_redshiftQueryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Integer
redshiftQueryId :: Maybe Integer
$sel:redshiftQueryId:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
redshiftQueryId} -> Maybe Integer
redshiftQueryId) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Integer
a -> DescribeStatementResponse
s {$sel:redshiftQueryId:DescribeStatementResponse' :: Maybe Integer
redshiftQueryId = Maybe Integer
a} :: DescribeStatementResponse)

-- | Either the number of rows returned from the SQL statement or the number
-- of rows affected. If result size is greater than zero, the result rows
-- can be the number of rows affected by SQL statements such as INSERT,
-- UPDATE, DELETE, COPY, and others. A @-1@ indicates the value is null.
describeStatementResponse_resultRows :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Integer)
describeStatementResponse_resultRows :: Lens' DescribeStatementResponse (Maybe Integer)
describeStatementResponse_resultRows = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Integer
resultRows :: Maybe Integer
$sel:resultRows:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
resultRows} -> Maybe Integer
resultRows) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Integer
a -> DescribeStatementResponse
s {$sel:resultRows:DescribeStatementResponse' :: Maybe Integer
resultRows = Maybe Integer
a} :: DescribeStatementResponse)

-- | The size in bytes of the returned results. A @-1@ indicates the value is
-- null.
describeStatementResponse_resultSize :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Integer)
describeStatementResponse_resultSize :: Lens' DescribeStatementResponse (Maybe Integer)
describeStatementResponse_resultSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Integer
resultSize :: Maybe Integer
$sel:resultSize:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
resultSize} -> Maybe Integer
resultSize) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Integer
a -> DescribeStatementResponse
s {$sel:resultSize:DescribeStatementResponse' :: Maybe Integer
resultSize = Maybe Integer
a} :: DescribeStatementResponse)

-- | The name or Amazon Resource Name (ARN) of the secret that enables access
-- to the database.
describeStatementResponse_secretArn :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_secretArn :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_secretArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
secretArn :: Maybe Text
$sel:secretArn:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
secretArn} -> Maybe Text
secretArn) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:secretArn:DescribeStatementResponse' :: Maybe Text
secretArn = Maybe Text
a} :: DescribeStatementResponse)

-- | The status of the SQL statement being described. Status values are
-- defined as follows:
--
-- -   ABORTED - The query run was stopped by the user.
--
-- -   ALL - A status value that includes all query statuses. This value
--     can be used to filter results.
--
-- -   FAILED - The query run failed.
--
-- -   FINISHED - The query has finished running.
--
-- -   PICKED - The query has been chosen to be run.
--
-- -   STARTED - The query run has started.
--
-- -   SUBMITTED - The query was submitted, but not yet processed.
describeStatementResponse_status :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe StatusString)
describeStatementResponse_status :: Lens' DescribeStatementResponse (Maybe StatusString)
describeStatementResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe StatusString
status :: Maybe StatusString
$sel:status:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe StatusString
status} -> Maybe StatusString
status) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe StatusString
a -> DescribeStatementResponse
s {$sel:status:DescribeStatementResponse' :: Maybe StatusString
status = Maybe StatusString
a} :: DescribeStatementResponse)

-- | The SQL statements from a multiple statement run.
describeStatementResponse_subStatements :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe [SubStatementData])
describeStatementResponse_subStatements :: Lens' DescribeStatementResponse (Maybe [SubStatementData])
describeStatementResponse_subStatements = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe [SubStatementData]
subStatements :: Maybe [SubStatementData]
$sel:subStatements:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe [SubStatementData]
subStatements} -> Maybe [SubStatementData]
subStatements) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe [SubStatementData]
a -> DescribeStatementResponse
s {$sel:subStatements:DescribeStatementResponse' :: Maybe [SubStatementData]
subStatements = Maybe [SubStatementData]
a} :: DescribeStatementResponse) 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

-- | The date and time (UTC) that the metadata for the SQL statement was last
-- updated. An example is the time the status last changed.
describeStatementResponse_updatedAt :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.UTCTime)
describeStatementResponse_updatedAt :: Lens' DescribeStatementResponse (Maybe UTCTime)
describeStatementResponse_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe POSIX
updatedAt :: Maybe POSIX
$sel:updatedAt:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe POSIX
updatedAt} -> Maybe POSIX
updatedAt) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe POSIX
a -> DescribeStatementResponse
s {$sel:updatedAt:DescribeStatementResponse' :: Maybe POSIX
updatedAt = Maybe POSIX
a} :: DescribeStatementResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The serverless workgroup name.
describeStatementResponse_workgroupName :: Lens.Lens' DescribeStatementResponse (Prelude.Maybe Prelude.Text)
describeStatementResponse_workgroupName :: Lens' DescribeStatementResponse (Maybe Text)
describeStatementResponse_workgroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Maybe Text
workgroupName :: Maybe Text
$sel:workgroupName:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
workgroupName} -> Maybe Text
workgroupName) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Maybe Text
a -> DescribeStatementResponse
s {$sel:workgroupName:DescribeStatementResponse' :: Maybe Text
workgroupName = Maybe Text
a} :: DescribeStatementResponse)

-- | The response's http status code.
describeStatementResponse_httpStatus :: Lens.Lens' DescribeStatementResponse Prelude.Int
describeStatementResponse_httpStatus :: Lens' DescribeStatementResponse Int
describeStatementResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeStatementResponse' :: DescribeStatementResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Int
a -> DescribeStatementResponse
s {$sel:httpStatus:DescribeStatementResponse' :: Int
httpStatus = Int
a} :: DescribeStatementResponse)

-- | The identifier of the SQL statement described. This value is a
-- universally unique identifier (UUID) generated by Amazon Redshift Data
-- API.
describeStatementResponse_id :: Lens.Lens' DescribeStatementResponse Prelude.Text
describeStatementResponse_id :: Lens' DescribeStatementResponse Text
describeStatementResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeStatementResponse' {Text
id :: Text
$sel:id:DescribeStatementResponse' :: DescribeStatementResponse -> Text
id} -> Text
id) (\s :: DescribeStatementResponse
s@DescribeStatementResponse' {} Text
a -> DescribeStatementResponse
s {$sel:id:DescribeStatementResponse' :: Text
id = Text
a} :: DescribeStatementResponse)

instance Prelude.NFData DescribeStatementResponse where
  rnf :: DescribeStatementResponse -> ()
rnf DescribeStatementResponse' {Int
Maybe Bool
Maybe Integer
Maybe [SubStatementData]
Maybe (NonEmpty SqlParameter)
Maybe Text
Maybe POSIX
Maybe StatusString
Text
id :: Text
httpStatus :: Int
workgroupName :: Maybe Text
updatedAt :: Maybe POSIX
subStatements :: Maybe [SubStatementData]
status :: Maybe StatusString
secretArn :: Maybe Text
resultSize :: Maybe Integer
resultRows :: Maybe Integer
redshiftQueryId :: Maybe Integer
redshiftPid :: Maybe Integer
queryString :: Maybe Text
queryParameters :: Maybe (NonEmpty SqlParameter)
hasResultSet :: Maybe Bool
error :: Maybe Text
duration :: Maybe Integer
dbUser :: Maybe Text
database :: Maybe Text
createdAt :: Maybe POSIX
clusterIdentifier :: Maybe Text
$sel:id:DescribeStatementResponse' :: DescribeStatementResponse -> Text
$sel:httpStatus:DescribeStatementResponse' :: DescribeStatementResponse -> Int
$sel:workgroupName:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:updatedAt:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe POSIX
$sel:subStatements:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe [SubStatementData]
$sel:status:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe StatusString
$sel:secretArn:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:resultSize:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
$sel:resultRows:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
$sel:redshiftQueryId:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
$sel:redshiftPid:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
$sel:queryString:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:queryParameters:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe (NonEmpty SqlParameter)
$sel:hasResultSet:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Bool
$sel:error:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:duration:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Integer
$sel:dbUser:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:database:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
$sel:createdAt:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe POSIX
$sel:clusterIdentifier:DescribeStatementResponse' :: DescribeStatementResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clusterIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
database
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbUser
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
duration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
hasResultSet
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty SqlParameter)
queryParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
queryString
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
redshiftPid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
redshiftQueryId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
resultRows
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
resultSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
secretArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StatusString
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [SubStatementData]
subStatements
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
updatedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workgroupName
      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 Text
id