{-# 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.DataBrew.DescribeJob
-- 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 the definition of a specific DataBrew job.
module Amazonka.DataBrew.DescribeJob
  ( -- * Creating a Request
    DescribeJob (..),
    newDescribeJob,

    -- * Request Lenses
    describeJob_name,

    -- * Destructuring the Response
    DescribeJobResponse (..),
    newDescribeJobResponse,

    -- * Response Lenses
    describeJobResponse_createDate,
    describeJobResponse_createdBy,
    describeJobResponse_dataCatalogOutputs,
    describeJobResponse_databaseOutputs,
    describeJobResponse_datasetName,
    describeJobResponse_encryptionKeyArn,
    describeJobResponse_encryptionMode,
    describeJobResponse_jobSample,
    describeJobResponse_lastModifiedBy,
    describeJobResponse_lastModifiedDate,
    describeJobResponse_logSubscription,
    describeJobResponse_maxCapacity,
    describeJobResponse_maxRetries,
    describeJobResponse_outputs,
    describeJobResponse_profileConfiguration,
    describeJobResponse_projectName,
    describeJobResponse_recipeReference,
    describeJobResponse_resourceArn,
    describeJobResponse_roleArn,
    describeJobResponse_tags,
    describeJobResponse_timeout,
    describeJobResponse_type,
    describeJobResponse_validationConfigurations,
    describeJobResponse_httpStatus,
    describeJobResponse_name,
  )
where

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

-- | /See:/ 'newDescribeJob' smart constructor.
data DescribeJob = DescribeJob'
  { -- | The name of the job to be described.
    DescribeJob -> Text
name :: Prelude.Text
  }
  deriving (DescribeJob -> DescribeJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeJob -> DescribeJob -> Bool
$c/= :: DescribeJob -> DescribeJob -> Bool
== :: DescribeJob -> DescribeJob -> Bool
$c== :: DescribeJob -> DescribeJob -> Bool
Prelude.Eq, ReadPrec [DescribeJob]
ReadPrec DescribeJob
Int -> ReadS DescribeJob
ReadS [DescribeJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeJob]
$creadListPrec :: ReadPrec [DescribeJob]
readPrec :: ReadPrec DescribeJob
$creadPrec :: ReadPrec DescribeJob
readList :: ReadS [DescribeJob]
$creadList :: ReadS [DescribeJob]
readsPrec :: Int -> ReadS DescribeJob
$creadsPrec :: Int -> ReadS DescribeJob
Prelude.Read, Int -> DescribeJob -> ShowS
[DescribeJob] -> ShowS
DescribeJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeJob] -> ShowS
$cshowList :: [DescribeJob] -> ShowS
show :: DescribeJob -> String
$cshow :: DescribeJob -> String
showsPrec :: Int -> DescribeJob -> ShowS
$cshowsPrec :: Int -> DescribeJob -> ShowS
Prelude.Show, forall x. Rep DescribeJob x -> DescribeJob
forall x. DescribeJob -> Rep DescribeJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeJob x -> DescribeJob
$cfrom :: forall x. DescribeJob -> Rep DescribeJob x
Prelude.Generic)

-- |
-- Create a value of 'DescribeJob' 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:
--
-- 'name', 'describeJob_name' - The name of the job to be described.
newDescribeJob ::
  -- | 'name'
  Prelude.Text ->
  DescribeJob
newDescribeJob :: Text -> DescribeJob
newDescribeJob Text
pName_ = DescribeJob' {$sel:name:DescribeJob' :: Text
name = Text
pName_}

-- | The name of the job to be described.
describeJob_name :: Lens.Lens' DescribeJob Prelude.Text
describeJob_name :: Lens' DescribeJob Text
describeJob_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJob' {Text
name :: Text
$sel:name:DescribeJob' :: DescribeJob -> Text
name} -> Text
name) (\s :: DescribeJob
s@DescribeJob' {} Text
a -> DescribeJob
s {$sel:name:DescribeJob' :: Text
name = Text
a} :: DescribeJob)

instance Core.AWSRequest DescribeJob where
  type AWSResponse DescribeJob = DescribeJobResponse
  request :: (Service -> Service) -> DescribeJob -> Request DescribeJob
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 DescribeJob
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeJob)))
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 POSIX
-> Maybe Text
-> Maybe (NonEmpty DataCatalogOutput)
-> Maybe (NonEmpty DatabaseOutput)
-> Maybe Text
-> Maybe Text
-> Maybe EncryptionMode
-> Maybe JobSample
-> Maybe Text
-> Maybe POSIX
-> Maybe LogSubscription
-> Maybe Int
-> Maybe Natural
-> Maybe (NonEmpty Output)
-> Maybe ProfileConfiguration
-> Maybe Text
-> Maybe RecipeReference
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Natural
-> Maybe JobType
-> Maybe (NonEmpty ValidationConfiguration)
-> Int
-> Text
-> DescribeJobResponse
DescribeJobResponse'
            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
"CreateDate")
            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
"CreatedBy")
            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
"DataCatalogOutputs")
            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
"DatabaseOutputs")
            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
"DatasetName")
            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
"EncryptionKeyArn")
            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
"EncryptionMode")
            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
"JobSample")
            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
"LastModifiedBy")
            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
"LastModifiedDate")
            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
"LogSubscription")
            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
"MaxCapacity")
            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
"MaxRetries")
            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
"Outputs")
            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
"ProfileConfiguration")
            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
"ProjectName")
            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
"RecipeReference")
            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
"ResourceArn")
            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
"RoleArn")
            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
"Tags" 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
"Timeout")
            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
"Type")
            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
"ValidationConfigurations")
            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
"Name")
      )

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

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

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

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

-- | /See:/ 'newDescribeJobResponse' smart constructor.
data DescribeJobResponse = DescribeJobResponse'
  { -- | The date and time that the job was created.
    DescribeJobResponse -> Maybe POSIX
createDate :: Prelude.Maybe Data.POSIX,
    -- | The identifier (user name) of the user associated with the creation of
    -- the job.
    DescribeJobResponse -> Maybe Text
createdBy :: Prelude.Maybe Prelude.Text,
    -- | One or more artifacts that represent the Glue Data Catalog output from
    -- running the job.
    DescribeJobResponse -> Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs :: Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput),
    -- | Represents a list of JDBC database output objects which defines the
    -- output destination for a DataBrew recipe job to write into.
    DescribeJobResponse -> Maybe (NonEmpty DatabaseOutput)
databaseOutputs :: Prelude.Maybe (Prelude.NonEmpty DatabaseOutput),
    -- | The dataset that the job acts upon.
    DescribeJobResponse -> Maybe Text
datasetName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of an encryption key that is used to
    -- protect the job.
    DescribeJobResponse -> Maybe Text
encryptionKeyArn :: Prelude.Maybe Prelude.Text,
    -- | The encryption mode for the job, which can be one of the following:
    --
    -- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.
    --
    -- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.
    DescribeJobResponse -> Maybe EncryptionMode
encryptionMode :: Prelude.Maybe EncryptionMode,
    -- | Sample configuration for profile jobs only. Determines the number of
    -- rows on which the profile job will be executed.
    DescribeJobResponse -> Maybe JobSample
jobSample :: Prelude.Maybe JobSample,
    -- | The identifier (user name) of the user who last modified the job.
    DescribeJobResponse -> Maybe Text
lastModifiedBy :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the job was last modified.
    DescribeJobResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
    -- | Indicates whether Amazon CloudWatch logging is enabled for this job.
    DescribeJobResponse -> Maybe LogSubscription
logSubscription :: Prelude.Maybe LogSubscription,
    -- | The maximum number of compute nodes that DataBrew can consume when the
    -- job processes data.
    DescribeJobResponse -> Maybe Int
maxCapacity :: Prelude.Maybe Prelude.Int,
    -- | The maximum number of times to retry the job after a job run fails.
    DescribeJobResponse -> Maybe Natural
maxRetries :: Prelude.Maybe Prelude.Natural,
    -- | One or more artifacts that represent the output from running the job.
    DescribeJobResponse -> Maybe (NonEmpty Output)
outputs :: Prelude.Maybe (Prelude.NonEmpty Output),
    -- | Configuration for profile jobs. Used to select columns, do evaluations,
    -- and override default parameters of evaluations. When configuration is
    -- null, the profile job will run with default settings.
    DescribeJobResponse -> Maybe ProfileConfiguration
profileConfiguration :: Prelude.Maybe ProfileConfiguration,
    -- | The DataBrew project associated with this job.
    DescribeJobResponse -> Maybe Text
projectName :: Prelude.Maybe Prelude.Text,
    DescribeJobResponse -> Maybe RecipeReference
recipeReference :: Prelude.Maybe RecipeReference,
    -- | The Amazon Resource Name (ARN) of the job.
    DescribeJobResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the Identity and Access Management (IAM) role to be assumed
    -- when DataBrew runs the job.
    DescribeJobResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | Metadata tags associated with this job.
    DescribeJobResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The job\'s timeout in minutes. A job that attempts to run longer than
    -- this timeout period ends with a status of @TIMEOUT@.
    DescribeJobResponse -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The job type, which must be one of the following:
    --
    -- -   @PROFILE@ - The job analyzes the dataset to determine its size, data
    --     types, data distribution, and more.
    --
    -- -   @RECIPE@ - The job applies one or more transformations to a dataset.
    DescribeJobResponse -> Maybe JobType
type' :: Prelude.Maybe JobType,
    -- | List of validation configurations that are applied to the profile job.
    DescribeJobResponse -> Maybe (NonEmpty ValidationConfiguration)
validationConfigurations :: Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration),
    -- | The response's http status code.
    DescribeJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the job.
    DescribeJobResponse -> Text
name :: Prelude.Text
  }
  deriving (DescribeJobResponse -> DescribeJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeJobResponse -> DescribeJobResponse -> Bool
$c/= :: DescribeJobResponse -> DescribeJobResponse -> Bool
== :: DescribeJobResponse -> DescribeJobResponse -> Bool
$c== :: DescribeJobResponse -> DescribeJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeJobResponse]
ReadPrec DescribeJobResponse
Int -> ReadS DescribeJobResponse
ReadS [DescribeJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeJobResponse]
$creadListPrec :: ReadPrec [DescribeJobResponse]
readPrec :: ReadPrec DescribeJobResponse
$creadPrec :: ReadPrec DescribeJobResponse
readList :: ReadS [DescribeJobResponse]
$creadList :: ReadS [DescribeJobResponse]
readsPrec :: Int -> ReadS DescribeJobResponse
$creadsPrec :: Int -> ReadS DescribeJobResponse
Prelude.Read, Int -> DescribeJobResponse -> ShowS
[DescribeJobResponse] -> ShowS
DescribeJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeJobResponse] -> ShowS
$cshowList :: [DescribeJobResponse] -> ShowS
show :: DescribeJobResponse -> String
$cshow :: DescribeJobResponse -> String
showsPrec :: Int -> DescribeJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeJobResponse -> ShowS
Prelude.Show, forall x. Rep DescribeJobResponse x -> DescribeJobResponse
forall x. DescribeJobResponse -> Rep DescribeJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeJobResponse x -> DescribeJobResponse
$cfrom :: forall x. DescribeJobResponse -> Rep DescribeJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeJobResponse' 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:
--
-- 'createDate', 'describeJobResponse_createDate' - The date and time that the job was created.
--
-- 'createdBy', 'describeJobResponse_createdBy' - The identifier (user name) of the user associated with the creation of
-- the job.
--
-- 'dataCatalogOutputs', 'describeJobResponse_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from
-- running the job.
--
-- 'databaseOutputs', 'describeJobResponse_databaseOutputs' - Represents a list of JDBC database output objects which defines the
-- output destination for a DataBrew recipe job to write into.
--
-- 'datasetName', 'describeJobResponse_datasetName' - The dataset that the job acts upon.
--
-- 'encryptionKeyArn', 'describeJobResponse_encryptionKeyArn' - The Amazon Resource Name (ARN) of an encryption key that is used to
-- protect the job.
--
-- 'encryptionMode', 'describeJobResponse_encryptionMode' - The encryption mode for the job, which can be one of the following:
--
-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.
--
-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.
--
-- 'jobSample', 'describeJobResponse_jobSample' - Sample configuration for profile jobs only. Determines the number of
-- rows on which the profile job will be executed.
--
-- 'lastModifiedBy', 'describeJobResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the job.
--
-- 'lastModifiedDate', 'describeJobResponse_lastModifiedDate' - The date and time that the job was last modified.
--
-- 'logSubscription', 'describeJobResponse_logSubscription' - Indicates whether Amazon CloudWatch logging is enabled for this job.
--
-- 'maxCapacity', 'describeJobResponse_maxCapacity' - The maximum number of compute nodes that DataBrew can consume when the
-- job processes data.
--
-- 'maxRetries', 'describeJobResponse_maxRetries' - The maximum number of times to retry the job after a job run fails.
--
-- 'outputs', 'describeJobResponse_outputs' - One or more artifacts that represent the output from running the job.
--
-- 'profileConfiguration', 'describeJobResponse_profileConfiguration' - Configuration for profile jobs. Used to select columns, do evaluations,
-- and override default parameters of evaluations. When configuration is
-- null, the profile job will run with default settings.
--
-- 'projectName', 'describeJobResponse_projectName' - The DataBrew project associated with this job.
--
-- 'recipeReference', 'describeJobResponse_recipeReference' - Undocumented member.
--
-- 'resourceArn', 'describeJobResponse_resourceArn' - The Amazon Resource Name (ARN) of the job.
--
-- 'roleArn', 'describeJobResponse_roleArn' - The ARN of the Identity and Access Management (IAM) role to be assumed
-- when DataBrew runs the job.
--
-- 'tags', 'describeJobResponse_tags' - Metadata tags associated with this job.
--
-- 'timeout', 'describeJobResponse_timeout' - The job\'s timeout in minutes. A job that attempts to run longer than
-- this timeout period ends with a status of @TIMEOUT@.
--
-- 'type'', 'describeJobResponse_type' - The job type, which must be one of the following:
--
-- -   @PROFILE@ - The job analyzes the dataset to determine its size, data
--     types, data distribution, and more.
--
-- -   @RECIPE@ - The job applies one or more transformations to a dataset.
--
-- 'validationConfigurations', 'describeJobResponse_validationConfigurations' - List of validation configurations that are applied to the profile job.
--
-- 'httpStatus', 'describeJobResponse_httpStatus' - The response's http status code.
--
-- 'name', 'describeJobResponse_name' - The name of the job.
newDescribeJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'name'
  Prelude.Text ->
  DescribeJobResponse
newDescribeJobResponse :: Int -> Text -> DescribeJobResponse
newDescribeJobResponse Int
pHttpStatus_ Text
pName_ =
  DescribeJobResponse'
    { $sel:createDate:DescribeJobResponse' :: Maybe POSIX
createDate = forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:DescribeJobResponse' :: Maybe Text
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:dataCatalogOutputs:DescribeJobResponse' :: Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs = forall a. Maybe a
Prelude.Nothing,
      $sel:databaseOutputs:DescribeJobResponse' :: Maybe (NonEmpty DatabaseOutput)
databaseOutputs = forall a. Maybe a
Prelude.Nothing,
      $sel:datasetName:DescribeJobResponse' :: Maybe Text
datasetName = forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionKeyArn:DescribeJobResponse' :: Maybe Text
encryptionKeyArn = forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionMode:DescribeJobResponse' :: Maybe EncryptionMode
encryptionMode = forall a. Maybe a
Prelude.Nothing,
      $sel:jobSample:DescribeJobResponse' :: Maybe JobSample
jobSample = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:DescribeJobResponse' :: Maybe Text
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:DescribeJobResponse' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:logSubscription:DescribeJobResponse' :: Maybe LogSubscription
logSubscription = forall a. Maybe a
Prelude.Nothing,
      $sel:maxCapacity:DescribeJobResponse' :: Maybe Int
maxCapacity = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRetries:DescribeJobResponse' :: Maybe Natural
maxRetries = forall a. Maybe a
Prelude.Nothing,
      $sel:outputs:DescribeJobResponse' :: Maybe (NonEmpty Output)
outputs = forall a. Maybe a
Prelude.Nothing,
      $sel:profileConfiguration:DescribeJobResponse' :: Maybe ProfileConfiguration
profileConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:projectName:DescribeJobResponse' :: Maybe Text
projectName = forall a. Maybe a
Prelude.Nothing,
      $sel:recipeReference:DescribeJobResponse' :: Maybe RecipeReference
recipeReference = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceArn:DescribeJobResponse' :: Maybe Text
resourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:DescribeJobResponse' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeJobResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:DescribeJobResponse' :: Maybe Natural
timeout = forall a. Maybe a
Prelude.Nothing,
      $sel:type':DescribeJobResponse' :: Maybe JobType
type' = forall a. Maybe a
Prelude.Nothing,
      $sel:validationConfigurations:DescribeJobResponse' :: Maybe (NonEmpty ValidationConfiguration)
validationConfigurations = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:name:DescribeJobResponse' :: Text
name = Text
pName_
    }

-- | The date and time that the job was created.
describeJobResponse_createDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)
describeJobResponse_createDate :: Lens' DescribeJobResponse (Maybe UTCTime)
describeJobResponse_createDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe POSIX
createDate :: Maybe POSIX
$sel:createDate:DescribeJobResponse' :: DescribeJobResponse -> Maybe POSIX
createDate} -> Maybe POSIX
createDate) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe POSIX
a -> DescribeJobResponse
s {$sel:createDate:DescribeJobResponse' :: Maybe POSIX
createDate = Maybe POSIX
a} :: DescribeJobResponse) 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 identifier (user name) of the user associated with the creation of
-- the job.
describeJobResponse_createdBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_createdBy :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
createdBy :: Maybe Text
$sel:createdBy:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
createdBy} -> Maybe Text
createdBy) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:createdBy:DescribeJobResponse' :: Maybe Text
createdBy = Maybe Text
a} :: DescribeJobResponse)

-- | One or more artifacts that represent the Glue Data Catalog output from
-- running the job.
describeJobResponse_dataCatalogOutputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty DataCatalogOutput))
describeJobResponse_dataCatalogOutputs :: Lens' DescribeJobResponse (Maybe (NonEmpty DataCatalogOutput))
describeJobResponse_dataCatalogOutputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs :: Maybe (NonEmpty DataCatalogOutput)
$sel:dataCatalogOutputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs} -> Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe (NonEmpty DataCatalogOutput)
a -> DescribeJobResponse
s {$sel:dataCatalogOutputs:DescribeJobResponse' :: Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs = Maybe (NonEmpty DataCatalogOutput)
a} :: DescribeJobResponse) 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

-- | Represents a list of JDBC database output objects which defines the
-- output destination for a DataBrew recipe job to write into.
describeJobResponse_databaseOutputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty DatabaseOutput))
describeJobResponse_databaseOutputs :: Lens' DescribeJobResponse (Maybe (NonEmpty DatabaseOutput))
describeJobResponse_databaseOutputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe (NonEmpty DatabaseOutput)
databaseOutputs :: Maybe (NonEmpty DatabaseOutput)
$sel:databaseOutputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty DatabaseOutput)
databaseOutputs} -> Maybe (NonEmpty DatabaseOutput)
databaseOutputs) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe (NonEmpty DatabaseOutput)
a -> DescribeJobResponse
s {$sel:databaseOutputs:DescribeJobResponse' :: Maybe (NonEmpty DatabaseOutput)
databaseOutputs = Maybe (NonEmpty DatabaseOutput)
a} :: DescribeJobResponse) 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 dataset that the job acts upon.
describeJobResponse_datasetName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_datasetName :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_datasetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
datasetName :: Maybe Text
$sel:datasetName:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
datasetName} -> Maybe Text
datasetName) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:datasetName:DescribeJobResponse' :: Maybe Text
datasetName = Maybe Text
a} :: DescribeJobResponse)

-- | The Amazon Resource Name (ARN) of an encryption key that is used to
-- protect the job.
describeJobResponse_encryptionKeyArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_encryptionKeyArn :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_encryptionKeyArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
encryptionKeyArn :: Maybe Text
$sel:encryptionKeyArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
encryptionKeyArn} -> Maybe Text
encryptionKeyArn) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:encryptionKeyArn:DescribeJobResponse' :: Maybe Text
encryptionKeyArn = Maybe Text
a} :: DescribeJobResponse)

-- | The encryption mode for the job, which can be one of the following:
--
-- -   @SSE-KMS@ - Server-side encryption with keys managed by KMS.
--
-- -   @SSE-S3@ - Server-side encryption with keys managed by Amazon S3.
describeJobResponse_encryptionMode :: Lens.Lens' DescribeJobResponse (Prelude.Maybe EncryptionMode)
describeJobResponse_encryptionMode :: Lens' DescribeJobResponse (Maybe EncryptionMode)
describeJobResponse_encryptionMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe EncryptionMode
encryptionMode :: Maybe EncryptionMode
$sel:encryptionMode:DescribeJobResponse' :: DescribeJobResponse -> Maybe EncryptionMode
encryptionMode} -> Maybe EncryptionMode
encryptionMode) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe EncryptionMode
a -> DescribeJobResponse
s {$sel:encryptionMode:DescribeJobResponse' :: Maybe EncryptionMode
encryptionMode = Maybe EncryptionMode
a} :: DescribeJobResponse)

-- | Sample configuration for profile jobs only. Determines the number of
-- rows on which the profile job will be executed.
describeJobResponse_jobSample :: Lens.Lens' DescribeJobResponse (Prelude.Maybe JobSample)
describeJobResponse_jobSample :: Lens' DescribeJobResponse (Maybe JobSample)
describeJobResponse_jobSample = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe JobSample
jobSample :: Maybe JobSample
$sel:jobSample:DescribeJobResponse' :: DescribeJobResponse -> Maybe JobSample
jobSample} -> Maybe JobSample
jobSample) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe JobSample
a -> DescribeJobResponse
s {$sel:jobSample:DescribeJobResponse' :: Maybe JobSample
jobSample = Maybe JobSample
a} :: DescribeJobResponse)

-- | The identifier (user name) of the user who last modified the job.
describeJobResponse_lastModifiedBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_lastModifiedBy :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
lastModifiedBy :: Maybe Text
$sel:lastModifiedBy:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
lastModifiedBy} -> Maybe Text
lastModifiedBy) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:lastModifiedBy:DescribeJobResponse' :: Maybe Text
lastModifiedBy = Maybe Text
a} :: DescribeJobResponse)

-- | The date and time that the job was last modified.
describeJobResponse_lastModifiedDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)
describeJobResponse_lastModifiedDate :: Lens' DescribeJobResponse (Maybe UTCTime)
describeJobResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:DescribeJobResponse' :: DescribeJobResponse -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe POSIX
a -> DescribeJobResponse
s {$sel:lastModifiedDate:DescribeJobResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: DescribeJobResponse) 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

-- | Indicates whether Amazon CloudWatch logging is enabled for this job.
describeJobResponse_logSubscription :: Lens.Lens' DescribeJobResponse (Prelude.Maybe LogSubscription)
describeJobResponse_logSubscription :: Lens' DescribeJobResponse (Maybe LogSubscription)
describeJobResponse_logSubscription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe LogSubscription
logSubscription :: Maybe LogSubscription
$sel:logSubscription:DescribeJobResponse' :: DescribeJobResponse -> Maybe LogSubscription
logSubscription} -> Maybe LogSubscription
logSubscription) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe LogSubscription
a -> DescribeJobResponse
s {$sel:logSubscription:DescribeJobResponse' :: Maybe LogSubscription
logSubscription = Maybe LogSubscription
a} :: DescribeJobResponse)

-- | The maximum number of compute nodes that DataBrew can consume when the
-- job processes data.
describeJobResponse_maxCapacity :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Int)
describeJobResponse_maxCapacity :: Lens' DescribeJobResponse (Maybe Int)
describeJobResponse_maxCapacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Int
maxCapacity :: Maybe Int
$sel:maxCapacity:DescribeJobResponse' :: DescribeJobResponse -> Maybe Int
maxCapacity} -> Maybe Int
maxCapacity) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Int
a -> DescribeJobResponse
s {$sel:maxCapacity:DescribeJobResponse' :: Maybe Int
maxCapacity = Maybe Int
a} :: DescribeJobResponse)

-- | The maximum number of times to retry the job after a job run fails.
describeJobResponse_maxRetries :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Natural)
describeJobResponse_maxRetries :: Lens' DescribeJobResponse (Maybe Natural)
describeJobResponse_maxRetries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Natural
maxRetries :: Maybe Natural
$sel:maxRetries:DescribeJobResponse' :: DescribeJobResponse -> Maybe Natural
maxRetries} -> Maybe Natural
maxRetries) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Natural
a -> DescribeJobResponse
s {$sel:maxRetries:DescribeJobResponse' :: Maybe Natural
maxRetries = Maybe Natural
a} :: DescribeJobResponse)

-- | One or more artifacts that represent the output from running the job.
describeJobResponse_outputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty Output))
describeJobResponse_outputs :: Lens' DescribeJobResponse (Maybe (NonEmpty Output))
describeJobResponse_outputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe (NonEmpty Output)
outputs :: Maybe (NonEmpty Output)
$sel:outputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty Output)
outputs} -> Maybe (NonEmpty Output)
outputs) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe (NonEmpty Output)
a -> DescribeJobResponse
s {$sel:outputs:DescribeJobResponse' :: Maybe (NonEmpty Output)
outputs = Maybe (NonEmpty Output)
a} :: DescribeJobResponse) 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

-- | Configuration for profile jobs. Used to select columns, do evaluations,
-- and override default parameters of evaluations. When configuration is
-- null, the profile job will run with default settings.
describeJobResponse_profileConfiguration :: Lens.Lens' DescribeJobResponse (Prelude.Maybe ProfileConfiguration)
describeJobResponse_profileConfiguration :: Lens' DescribeJobResponse (Maybe ProfileConfiguration)
describeJobResponse_profileConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe ProfileConfiguration
profileConfiguration :: Maybe ProfileConfiguration
$sel:profileConfiguration:DescribeJobResponse' :: DescribeJobResponse -> Maybe ProfileConfiguration
profileConfiguration} -> Maybe ProfileConfiguration
profileConfiguration) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe ProfileConfiguration
a -> DescribeJobResponse
s {$sel:profileConfiguration:DescribeJobResponse' :: Maybe ProfileConfiguration
profileConfiguration = Maybe ProfileConfiguration
a} :: DescribeJobResponse)

-- | The DataBrew project associated with this job.
describeJobResponse_projectName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_projectName :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_projectName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
projectName :: Maybe Text
$sel:projectName:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
projectName} -> Maybe Text
projectName) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:projectName:DescribeJobResponse' :: Maybe Text
projectName = Maybe Text
a} :: DescribeJobResponse)

-- | Undocumented member.
describeJobResponse_recipeReference :: Lens.Lens' DescribeJobResponse (Prelude.Maybe RecipeReference)
describeJobResponse_recipeReference :: Lens' DescribeJobResponse (Maybe RecipeReference)
describeJobResponse_recipeReference = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe RecipeReference
recipeReference :: Maybe RecipeReference
$sel:recipeReference:DescribeJobResponse' :: DescribeJobResponse -> Maybe RecipeReference
recipeReference} -> Maybe RecipeReference
recipeReference) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe RecipeReference
a -> DescribeJobResponse
s {$sel:recipeReference:DescribeJobResponse' :: Maybe RecipeReference
recipeReference = Maybe RecipeReference
a} :: DescribeJobResponse)

-- | The Amazon Resource Name (ARN) of the job.
describeJobResponse_resourceArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_resourceArn :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
resourceArn :: Maybe Text
$sel:resourceArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
resourceArn} -> Maybe Text
resourceArn) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:resourceArn:DescribeJobResponse' :: Maybe Text
resourceArn = Maybe Text
a} :: DescribeJobResponse)

-- | The ARN of the Identity and Access Management (IAM) role to be assumed
-- when DataBrew runs the job.
describeJobResponse_roleArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_roleArn :: Lens' DescribeJobResponse (Maybe Text)
describeJobResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Text
a -> DescribeJobResponse
s {$sel:roleArn:DescribeJobResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeJobResponse)

-- | Metadata tags associated with this job.
describeJobResponse_tags :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeJobResponse_tags :: Lens' DescribeJobResponse (Maybe (HashMap Text Text))
describeJobResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeJobResponse' :: DescribeJobResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeJobResponse
s {$sel:tags:DescribeJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeJobResponse) 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 job\'s timeout in minutes. A job that attempts to run longer than
-- this timeout period ends with a status of @TIMEOUT@.
describeJobResponse_timeout :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Natural)
describeJobResponse_timeout :: Lens' DescribeJobResponse (Maybe Natural)
describeJobResponse_timeout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:DescribeJobResponse' :: DescribeJobResponse -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe Natural
a -> DescribeJobResponse
s {$sel:timeout:DescribeJobResponse' :: Maybe Natural
timeout = Maybe Natural
a} :: DescribeJobResponse)

-- | The job type, which must be one of the following:
--
-- -   @PROFILE@ - The job analyzes the dataset to determine its size, data
--     types, data distribution, and more.
--
-- -   @RECIPE@ - The job applies one or more transformations to a dataset.
describeJobResponse_type :: Lens.Lens' DescribeJobResponse (Prelude.Maybe JobType)
describeJobResponse_type :: Lens' DescribeJobResponse (Maybe JobType)
describeJobResponse_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe JobType
type' :: Maybe JobType
$sel:type':DescribeJobResponse' :: DescribeJobResponse -> Maybe JobType
type'} -> Maybe JobType
type') (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe JobType
a -> DescribeJobResponse
s {$sel:type':DescribeJobResponse' :: Maybe JobType
type' = Maybe JobType
a} :: DescribeJobResponse)

-- | List of validation configurations that are applied to the profile job.
describeJobResponse_validationConfigurations :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty ValidationConfiguration))
describeJobResponse_validationConfigurations :: Lens'
  DescribeJobResponse (Maybe (NonEmpty ValidationConfiguration))
describeJobResponse_validationConfigurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Maybe (NonEmpty ValidationConfiguration)
validationConfigurations :: Maybe (NonEmpty ValidationConfiguration)
$sel:validationConfigurations:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty ValidationConfiguration)
validationConfigurations} -> Maybe (NonEmpty ValidationConfiguration)
validationConfigurations) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Maybe (NonEmpty ValidationConfiguration)
a -> DescribeJobResponse
s {$sel:validationConfigurations:DescribeJobResponse' :: Maybe (NonEmpty ValidationConfiguration)
validationConfigurations = Maybe (NonEmpty ValidationConfiguration)
a} :: DescribeJobResponse) 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 response's http status code.
describeJobResponse_httpStatus :: Lens.Lens' DescribeJobResponse Prelude.Int
describeJobResponse_httpStatus :: Lens' DescribeJobResponse Int
describeJobResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeJobResponse' :: DescribeJobResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeJobResponse
s@DescribeJobResponse' {} Int
a -> DescribeJobResponse
s {$sel:httpStatus:DescribeJobResponse' :: Int
httpStatus = Int
a} :: DescribeJobResponse)

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

instance Prelude.NFData DescribeJobResponse where
  rnf :: DescribeJobResponse -> ()
rnf DescribeJobResponse' {Int
Maybe Int
Maybe Natural
Maybe (NonEmpty Output)
Maybe (NonEmpty DatabaseOutput)
Maybe (NonEmpty DataCatalogOutput)
Maybe (NonEmpty ValidationConfiguration)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe EncryptionMode
Maybe JobType
Maybe LogSubscription
Maybe RecipeReference
Maybe JobSample
Maybe ProfileConfiguration
Text
name :: Text
httpStatus :: Int
validationConfigurations :: Maybe (NonEmpty ValidationConfiguration)
type' :: Maybe JobType
timeout :: Maybe Natural
tags :: Maybe (HashMap Text Text)
roleArn :: Maybe Text
resourceArn :: Maybe Text
recipeReference :: Maybe RecipeReference
projectName :: Maybe Text
profileConfiguration :: Maybe ProfileConfiguration
outputs :: Maybe (NonEmpty Output)
maxRetries :: Maybe Natural
maxCapacity :: Maybe Int
logSubscription :: Maybe LogSubscription
lastModifiedDate :: Maybe POSIX
lastModifiedBy :: Maybe Text
jobSample :: Maybe JobSample
encryptionMode :: Maybe EncryptionMode
encryptionKeyArn :: Maybe Text
datasetName :: Maybe Text
databaseOutputs :: Maybe (NonEmpty DatabaseOutput)
dataCatalogOutputs :: Maybe (NonEmpty DataCatalogOutput)
createdBy :: Maybe Text
createDate :: Maybe POSIX
$sel:name:DescribeJobResponse' :: DescribeJobResponse -> Text
$sel:httpStatus:DescribeJobResponse' :: DescribeJobResponse -> Int
$sel:validationConfigurations:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty ValidationConfiguration)
$sel:type':DescribeJobResponse' :: DescribeJobResponse -> Maybe JobType
$sel:timeout:DescribeJobResponse' :: DescribeJobResponse -> Maybe Natural
$sel:tags:DescribeJobResponse' :: DescribeJobResponse -> Maybe (HashMap Text Text)
$sel:roleArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:resourceArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:recipeReference:DescribeJobResponse' :: DescribeJobResponse -> Maybe RecipeReference
$sel:projectName:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:profileConfiguration:DescribeJobResponse' :: DescribeJobResponse -> Maybe ProfileConfiguration
$sel:outputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty Output)
$sel:maxRetries:DescribeJobResponse' :: DescribeJobResponse -> Maybe Natural
$sel:maxCapacity:DescribeJobResponse' :: DescribeJobResponse -> Maybe Int
$sel:logSubscription:DescribeJobResponse' :: DescribeJobResponse -> Maybe LogSubscription
$sel:lastModifiedDate:DescribeJobResponse' :: DescribeJobResponse -> Maybe POSIX
$sel:lastModifiedBy:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:jobSample:DescribeJobResponse' :: DescribeJobResponse -> Maybe JobSample
$sel:encryptionMode:DescribeJobResponse' :: DescribeJobResponse -> Maybe EncryptionMode
$sel:encryptionKeyArn:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:datasetName:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:databaseOutputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty DatabaseOutput)
$sel:dataCatalogOutputs:DescribeJobResponse' :: DescribeJobResponse -> Maybe (NonEmpty DataCatalogOutput)
$sel:createdBy:DescribeJobResponse' :: DescribeJobResponse -> Maybe Text
$sel:createDate:DescribeJobResponse' :: DescribeJobResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty DatabaseOutput)
databaseOutputs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
datasetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
encryptionKeyArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EncryptionMode
encryptionMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobSample
jobSample
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastModifiedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LogSubscription
logSubscription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxCapacity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxRetries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Output)
outputs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProfileConfiguration
profileConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
projectName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RecipeReference
recipeReference
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
timeout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobType
type'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe (NonEmpty ValidationConfiguration)
validationConfigurations
      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
name