{-# 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.FinSpaceData.GetDataset
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about a Dataset.
module Amazonka.FinSpaceData.GetDataset
  ( -- * Creating a Request
    GetDataset (..),
    newGetDataset,

    -- * Request Lenses
    getDataset_datasetId,

    -- * Destructuring the Response
    GetDatasetResponse (..),
    newGetDatasetResponse,

    -- * Response Lenses
    getDatasetResponse_alias,
    getDatasetResponse_createTime,
    getDatasetResponse_datasetArn,
    getDatasetResponse_datasetDescription,
    getDatasetResponse_datasetId,
    getDatasetResponse_datasetTitle,
    getDatasetResponse_kind,
    getDatasetResponse_lastModifiedTime,
    getDatasetResponse_schemaDefinition,
    getDatasetResponse_status,
    getDatasetResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FinSpaceData.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Request for the GetDataset operation.
--
-- /See:/ 'newGetDataset' smart constructor.
data GetDataset = GetDataset'
  { -- | The unique identifier for a Dataset.
    GetDataset -> Text
datasetId :: Prelude.Text
  }
  deriving (GetDataset -> GetDataset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDataset -> GetDataset -> Bool
$c/= :: GetDataset -> GetDataset -> Bool
== :: GetDataset -> GetDataset -> Bool
$c== :: GetDataset -> GetDataset -> Bool
Prelude.Eq, ReadPrec [GetDataset]
ReadPrec GetDataset
Int -> ReadS GetDataset
ReadS [GetDataset]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDataset]
$creadListPrec :: ReadPrec [GetDataset]
readPrec :: ReadPrec GetDataset
$creadPrec :: ReadPrec GetDataset
readList :: ReadS [GetDataset]
$creadList :: ReadS [GetDataset]
readsPrec :: Int -> ReadS GetDataset
$creadsPrec :: Int -> ReadS GetDataset
Prelude.Read, Int -> GetDataset -> ShowS
[GetDataset] -> ShowS
GetDataset -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDataset] -> ShowS
$cshowList :: [GetDataset] -> ShowS
show :: GetDataset -> String
$cshow :: GetDataset -> String
showsPrec :: Int -> GetDataset -> ShowS
$cshowsPrec :: Int -> GetDataset -> ShowS
Prelude.Show, forall x. Rep GetDataset x -> GetDataset
forall x. GetDataset -> Rep GetDataset x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetDataset x -> GetDataset
$cfrom :: forall x. GetDataset -> Rep GetDataset x
Prelude.Generic)

-- |
-- Create a value of 'GetDataset' 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:
--
-- 'datasetId', 'getDataset_datasetId' - The unique identifier for a Dataset.
newGetDataset ::
  -- | 'datasetId'
  Prelude.Text ->
  GetDataset
newGetDataset :: Text -> GetDataset
newGetDataset Text
pDatasetId_ =
  GetDataset' {$sel:datasetId:GetDataset' :: Text
datasetId = Text
pDatasetId_}

-- | The unique identifier for a Dataset.
getDataset_datasetId :: Lens.Lens' GetDataset Prelude.Text
getDataset_datasetId :: Lens' GetDataset Text
getDataset_datasetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDataset' {Text
datasetId :: Text
$sel:datasetId:GetDataset' :: GetDataset -> Text
datasetId} -> Text
datasetId) (\s :: GetDataset
s@GetDataset' {} Text
a -> GetDataset
s {$sel:datasetId:GetDataset' :: Text
datasetId = Text
a} :: GetDataset)

instance Core.AWSRequest GetDataset where
  type AWSResponse GetDataset = GetDatasetResponse
  request :: (Service -> Service) -> GetDataset -> Request GetDataset
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 GetDataset
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetDataset)))
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 Integer
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe DatasetKind
-> Maybe Integer
-> Maybe SchemaUnion
-> Maybe DatasetStatus
-> Int
-> GetDatasetResponse
GetDatasetResponse'
            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
"alias")
            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
"createTime")
            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
"datasetArn")
            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
"datasetDescription")
            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
"datasetId")
            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
"datasetTitle")
            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
"kind")
            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
"lastModifiedTime")
            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
"schemaDefinition")
            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

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

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

instance Data.ToHeaders GetDataset where
  toHeaders :: GetDataset -> 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 GetDataset where
  toPath :: GetDataset -> ByteString
toPath GetDataset' {Text
datasetId :: Text
$sel:datasetId:GetDataset' :: GetDataset -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/datasetsv2/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
datasetId]

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

-- | Response for the GetDataset operation
--
-- /See:/ 'newGetDatasetResponse' smart constructor.
data GetDatasetResponse = GetDatasetResponse'
  { -- | The unique resource identifier for a Dataset.
    GetDatasetResponse -> Maybe Text
alias :: Prelude.Maybe Prelude.Text,
    -- | The timestamp at which the Dataset was created in FinSpace. The value is
    -- determined as epoch time in milliseconds. For example, the value for
    -- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
    GetDatasetResponse -> Maybe Integer
createTime :: Prelude.Maybe Prelude.Integer,
    -- | The ARN identifier of the Dataset.
    GetDatasetResponse -> Maybe Text
datasetArn :: Prelude.Maybe Prelude.Text,
    -- | A description of the Dataset.
    GetDatasetResponse -> Maybe Text
datasetDescription :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for a Dataset.
    GetDatasetResponse -> Maybe Text
datasetId :: Prelude.Maybe Prelude.Text,
    -- | Display title for a Dataset.
    GetDatasetResponse -> Maybe Text
datasetTitle :: Prelude.Maybe Prelude.Text,
    -- | The format in which Dataset data is structured.
    --
    -- -   @TABULAR@ – Data is structured in a tabular format.
    --
    -- -   @NON_TABULAR@ – Data is structured in a non-tabular format.
    GetDatasetResponse -> Maybe DatasetKind
kind :: Prelude.Maybe DatasetKind,
    -- | The last time that the Dataset was modified. The value is determined as
    -- epoch time in milliseconds. For example, the value for Monday, November
    -- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
    GetDatasetResponse -> Maybe Integer
lastModifiedTime :: Prelude.Maybe Prelude.Integer,
    -- | Definition for a schema on a tabular Dataset.
    GetDatasetResponse -> Maybe SchemaUnion
schemaDefinition :: Prelude.Maybe SchemaUnion,
    -- | Status of the Dataset creation.
    --
    -- -   @PENDING@ – Dataset is pending creation.
    --
    -- -   @FAILED@ – Dataset creation has failed.
    --
    -- -   @SUCCESS@ – Dataset creation has succeeded.
    --
    -- -   @RUNNING@ – Dataset creation is running.
    GetDatasetResponse -> Maybe DatasetStatus
status :: Prelude.Maybe DatasetStatus,
    -- | The response's http status code.
    GetDatasetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetDatasetResponse -> GetDatasetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDatasetResponse -> GetDatasetResponse -> Bool
$c/= :: GetDatasetResponse -> GetDatasetResponse -> Bool
== :: GetDatasetResponse -> GetDatasetResponse -> Bool
$c== :: GetDatasetResponse -> GetDatasetResponse -> Bool
Prelude.Eq, ReadPrec [GetDatasetResponse]
ReadPrec GetDatasetResponse
Int -> ReadS GetDatasetResponse
ReadS [GetDatasetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDatasetResponse]
$creadListPrec :: ReadPrec [GetDatasetResponse]
readPrec :: ReadPrec GetDatasetResponse
$creadPrec :: ReadPrec GetDatasetResponse
readList :: ReadS [GetDatasetResponse]
$creadList :: ReadS [GetDatasetResponse]
readsPrec :: Int -> ReadS GetDatasetResponse
$creadsPrec :: Int -> ReadS GetDatasetResponse
Prelude.Read, Int -> GetDatasetResponse -> ShowS
[GetDatasetResponse] -> ShowS
GetDatasetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDatasetResponse] -> ShowS
$cshowList :: [GetDatasetResponse] -> ShowS
show :: GetDatasetResponse -> String
$cshow :: GetDatasetResponse -> String
showsPrec :: Int -> GetDatasetResponse -> ShowS
$cshowsPrec :: Int -> GetDatasetResponse -> ShowS
Prelude.Show, forall x. Rep GetDatasetResponse x -> GetDatasetResponse
forall x. GetDatasetResponse -> Rep GetDatasetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetDatasetResponse x -> GetDatasetResponse
$cfrom :: forall x. GetDatasetResponse -> Rep GetDatasetResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetDatasetResponse' 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:
--
-- 'alias', 'getDatasetResponse_alias' - The unique resource identifier for a Dataset.
--
-- 'createTime', 'getDatasetResponse_createTime' - The timestamp at which the Dataset was created in FinSpace. The value is
-- determined as epoch time in milliseconds. For example, the value for
-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
--
-- 'datasetArn', 'getDatasetResponse_datasetArn' - The ARN identifier of the Dataset.
--
-- 'datasetDescription', 'getDatasetResponse_datasetDescription' - A description of the Dataset.
--
-- 'datasetId', 'getDatasetResponse_datasetId' - The unique identifier for a Dataset.
--
-- 'datasetTitle', 'getDatasetResponse_datasetTitle' - Display title for a Dataset.
--
-- 'kind', 'getDatasetResponse_kind' - The format in which Dataset data is structured.
--
-- -   @TABULAR@ – Data is structured in a tabular format.
--
-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.
--
-- 'lastModifiedTime', 'getDatasetResponse_lastModifiedTime' - The last time that the Dataset was modified. The value is determined as
-- epoch time in milliseconds. For example, the value for Monday, November
-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
--
-- 'schemaDefinition', 'getDatasetResponse_schemaDefinition' - Definition for a schema on a tabular Dataset.
--
-- 'status', 'getDatasetResponse_status' - Status of the Dataset creation.
--
-- -   @PENDING@ – Dataset is pending creation.
--
-- -   @FAILED@ – Dataset creation has failed.
--
-- -   @SUCCESS@ – Dataset creation has succeeded.
--
-- -   @RUNNING@ – Dataset creation is running.
--
-- 'httpStatus', 'getDatasetResponse_httpStatus' - The response's http status code.
newGetDatasetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetDatasetResponse
newGetDatasetResponse :: Int -> GetDatasetResponse
newGetDatasetResponse Int
pHttpStatus_ =
  GetDatasetResponse'
    { $sel:alias:GetDatasetResponse' :: Maybe Text
alias = forall a. Maybe a
Prelude.Nothing,
      $sel:createTime:GetDatasetResponse' :: Maybe Integer
createTime = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetArn:GetDatasetResponse' :: Maybe Text
datasetArn = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetDescription:GetDatasetResponse' :: Maybe Text
datasetDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetId:GetDatasetResponse' :: Maybe Text
datasetId = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetTitle:GetDatasetResponse' :: Maybe Text
datasetTitle = forall a. Maybe a
Prelude.Nothing,
      $sel:kind:GetDatasetResponse' :: Maybe DatasetKind
kind = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:GetDatasetResponse' :: Maybe Integer
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaDefinition:GetDatasetResponse' :: Maybe SchemaUnion
schemaDefinition = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetDatasetResponse' :: Maybe DatasetStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetDatasetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The unique resource identifier for a Dataset.
getDatasetResponse_alias :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)
getDatasetResponse_alias :: Lens' GetDatasetResponse (Maybe Text)
getDatasetResponse_alias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Text
alias :: Maybe Text
$sel:alias:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
alias} -> Maybe Text
alias) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Text
a -> GetDatasetResponse
s {$sel:alias:GetDatasetResponse' :: Maybe Text
alias = Maybe Text
a} :: GetDatasetResponse)

-- | The timestamp at which the Dataset was created in FinSpace. The value is
-- determined as epoch time in milliseconds. For example, the value for
-- Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
getDatasetResponse_createTime :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Integer)
getDatasetResponse_createTime :: Lens' GetDatasetResponse (Maybe Integer)
getDatasetResponse_createTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Integer
createTime :: Maybe Integer
$sel:createTime:GetDatasetResponse' :: GetDatasetResponse -> Maybe Integer
createTime} -> Maybe Integer
createTime) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Integer
a -> GetDatasetResponse
s {$sel:createTime:GetDatasetResponse' :: Maybe Integer
createTime = Maybe Integer
a} :: GetDatasetResponse)

-- | The ARN identifier of the Dataset.
getDatasetResponse_datasetArn :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)
getDatasetResponse_datasetArn :: Lens' GetDatasetResponse (Maybe Text)
getDatasetResponse_datasetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Text
datasetArn :: Maybe Text
$sel:datasetArn:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
datasetArn} -> Maybe Text
datasetArn) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Text
a -> GetDatasetResponse
s {$sel:datasetArn:GetDatasetResponse' :: Maybe Text
datasetArn = Maybe Text
a} :: GetDatasetResponse)

-- | A description of the Dataset.
getDatasetResponse_datasetDescription :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)
getDatasetResponse_datasetDescription :: Lens' GetDatasetResponse (Maybe Text)
getDatasetResponse_datasetDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Text
datasetDescription :: Maybe Text
$sel:datasetDescription:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
datasetDescription} -> Maybe Text
datasetDescription) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Text
a -> GetDatasetResponse
s {$sel:datasetDescription:GetDatasetResponse' :: Maybe Text
datasetDescription = Maybe Text
a} :: GetDatasetResponse)

-- | The unique identifier for a Dataset.
getDatasetResponse_datasetId :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)
getDatasetResponse_datasetId :: Lens' GetDatasetResponse (Maybe Text)
getDatasetResponse_datasetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Text
datasetId :: Maybe Text
$sel:datasetId:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
datasetId} -> Maybe Text
datasetId) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Text
a -> GetDatasetResponse
s {$sel:datasetId:GetDatasetResponse' :: Maybe Text
datasetId = Maybe Text
a} :: GetDatasetResponse)

-- | Display title for a Dataset.
getDatasetResponse_datasetTitle :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Text)
getDatasetResponse_datasetTitle :: Lens' GetDatasetResponse (Maybe Text)
getDatasetResponse_datasetTitle = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Text
datasetTitle :: Maybe Text
$sel:datasetTitle:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
datasetTitle} -> Maybe Text
datasetTitle) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Text
a -> GetDatasetResponse
s {$sel:datasetTitle:GetDatasetResponse' :: Maybe Text
datasetTitle = Maybe Text
a} :: GetDatasetResponse)

-- | The format in which Dataset data is structured.
--
-- -   @TABULAR@ – Data is structured in a tabular format.
--
-- -   @NON_TABULAR@ – Data is structured in a non-tabular format.
getDatasetResponse_kind :: Lens.Lens' GetDatasetResponse (Prelude.Maybe DatasetKind)
getDatasetResponse_kind :: Lens' GetDatasetResponse (Maybe DatasetKind)
getDatasetResponse_kind = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe DatasetKind
kind :: Maybe DatasetKind
$sel:kind:GetDatasetResponse' :: GetDatasetResponse -> Maybe DatasetKind
kind} -> Maybe DatasetKind
kind) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe DatasetKind
a -> GetDatasetResponse
s {$sel:kind:GetDatasetResponse' :: Maybe DatasetKind
kind = Maybe DatasetKind
a} :: GetDatasetResponse)

-- | The last time that the Dataset was modified. The value is determined as
-- epoch time in milliseconds. For example, the value for Monday, November
-- 1, 2021 12:00:00 PM UTC is specified as 1635768000000.
getDatasetResponse_lastModifiedTime :: Lens.Lens' GetDatasetResponse (Prelude.Maybe Prelude.Integer)
getDatasetResponse_lastModifiedTime :: Lens' GetDatasetResponse (Maybe Integer)
getDatasetResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe Integer
lastModifiedTime :: Maybe Integer
$sel:lastModifiedTime:GetDatasetResponse' :: GetDatasetResponse -> Maybe Integer
lastModifiedTime} -> Maybe Integer
lastModifiedTime) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe Integer
a -> GetDatasetResponse
s {$sel:lastModifiedTime:GetDatasetResponse' :: Maybe Integer
lastModifiedTime = Maybe Integer
a} :: GetDatasetResponse)

-- | Definition for a schema on a tabular Dataset.
getDatasetResponse_schemaDefinition :: Lens.Lens' GetDatasetResponse (Prelude.Maybe SchemaUnion)
getDatasetResponse_schemaDefinition :: Lens' GetDatasetResponse (Maybe SchemaUnion)
getDatasetResponse_schemaDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe SchemaUnion
schemaDefinition :: Maybe SchemaUnion
$sel:schemaDefinition:GetDatasetResponse' :: GetDatasetResponse -> Maybe SchemaUnion
schemaDefinition} -> Maybe SchemaUnion
schemaDefinition) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe SchemaUnion
a -> GetDatasetResponse
s {$sel:schemaDefinition:GetDatasetResponse' :: Maybe SchemaUnion
schemaDefinition = Maybe SchemaUnion
a} :: GetDatasetResponse)

-- | Status of the Dataset creation.
--
-- -   @PENDING@ – Dataset is pending creation.
--
-- -   @FAILED@ – Dataset creation has failed.
--
-- -   @SUCCESS@ – Dataset creation has succeeded.
--
-- -   @RUNNING@ – Dataset creation is running.
getDatasetResponse_status :: Lens.Lens' GetDatasetResponse (Prelude.Maybe DatasetStatus)
getDatasetResponse_status :: Lens' GetDatasetResponse (Maybe DatasetStatus)
getDatasetResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDatasetResponse' {Maybe DatasetStatus
status :: Maybe DatasetStatus
$sel:status:GetDatasetResponse' :: GetDatasetResponse -> Maybe DatasetStatus
status} -> Maybe DatasetStatus
status) (\s :: GetDatasetResponse
s@GetDatasetResponse' {} Maybe DatasetStatus
a -> GetDatasetResponse
s {$sel:status:GetDatasetResponse' :: Maybe DatasetStatus
status = Maybe DatasetStatus
a} :: GetDatasetResponse)

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

instance Prelude.NFData GetDatasetResponse where
  rnf :: GetDatasetResponse -> ()
rnf GetDatasetResponse' {Int
Maybe Integer
Maybe Text
Maybe DatasetKind
Maybe DatasetStatus
Maybe SchemaUnion
httpStatus :: Int
status :: Maybe DatasetStatus
schemaDefinition :: Maybe SchemaUnion
lastModifiedTime :: Maybe Integer
kind :: Maybe DatasetKind
datasetTitle :: Maybe Text
datasetId :: Maybe Text
datasetDescription :: Maybe Text
datasetArn :: Maybe Text
createTime :: Maybe Integer
alias :: Maybe Text
$sel:httpStatus:GetDatasetResponse' :: GetDatasetResponse -> Int
$sel:status:GetDatasetResponse' :: GetDatasetResponse -> Maybe DatasetStatus
$sel:schemaDefinition:GetDatasetResponse' :: GetDatasetResponse -> Maybe SchemaUnion
$sel:lastModifiedTime:GetDatasetResponse' :: GetDatasetResponse -> Maybe Integer
$sel:kind:GetDatasetResponse' :: GetDatasetResponse -> Maybe DatasetKind
$sel:datasetTitle:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
$sel:datasetId:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
$sel:datasetDescription:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
$sel:datasetArn:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
$sel:createTime:GetDatasetResponse' :: GetDatasetResponse -> Maybe Integer
$sel:alias:GetDatasetResponse' :: GetDatasetResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
alias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
createTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
datasetArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
datasetDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
datasetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
datasetTitle
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DatasetKind
kind
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SchemaUnion
schemaDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DatasetStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus