{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- 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_dataCatalogOutputs,
    describeJobResponse_lastModifiedDate,
    describeJobResponse_createDate,
    describeJobResponse_recipeReference,
    describeJobResponse_profileConfiguration,
    describeJobResponse_createdBy,
    describeJobResponse_databaseOutputs,
    describeJobResponse_encryptionMode,
    describeJobResponse_outputs,
    describeJobResponse_resourceArn,
    describeJobResponse_logSubscription,
    describeJobResponse_projectName,
    describeJobResponse_maxRetries,
    describeJobResponse_datasetName,
    describeJobResponse_encryptionKeyArn,
    describeJobResponse_maxCapacity,
    describeJobResponse_lastModifiedBy,
    describeJobResponse_type,
    describeJobResponse_timeout,
    describeJobResponse_tags,
    describeJobResponse_roleArn,
    describeJobResponse_jobSample,
    describeJobResponse_httpStatus,
    describeJobResponse_name,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.DataBrew.Types
import qualified Amazonka.Lens as Lens
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
(DescribeJob -> DescribeJob -> Bool)
-> (DescribeJob -> DescribeJob -> Bool) -> Eq DescribeJob
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]
(Int -> ReadS DescribeJob)
-> ReadS [DescribeJob]
-> ReadPrec DescribeJob
-> ReadPrec [DescribeJob]
-> Read 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
(Int -> DescribeJob -> ShowS)
-> (DescribeJob -> String)
-> ([DescribeJob] -> ShowS)
-> Show DescribeJob
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. DescribeJob -> Rep DescribeJob x)
-> (forall x. Rep DescribeJob x -> DescribeJob)
-> Generic DescribeJob
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' :: Text -> DescribeJob
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 :: (Text -> f Text) -> DescribeJob -> f DescribeJob
describeJob_name = (DescribeJob -> Text)
-> (DescribeJob -> Text -> DescribeJob)
-> Lens DescribeJob DescribeJob Text Text
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 :: DescribeJob -> Request DescribeJob
request = Service -> DescribeJob -> Request DescribeJob
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeJob
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeJob)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeJob))
-> Logger
-> Service
-> Proxy DescribeJob
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeJob)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe (NonEmpty DataCatalogOutput)
-> Maybe POSIX
-> Maybe POSIX
-> Maybe RecipeReference
-> Maybe ProfileConfiguration
-> Maybe Text
-> Maybe (NonEmpty DatabaseOutput)
-> Maybe EncryptionMode
-> Maybe (NonEmpty Output)
-> Maybe Text
-> Maybe LogSubscription
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe JobType
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe JobSample
-> Int
-> Text
-> DescribeJobResponse
DescribeJobResponse'
            (Maybe (NonEmpty DataCatalogOutput)
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe RecipeReference
 -> Maybe ProfileConfiguration
 -> Maybe Text
 -> Maybe (NonEmpty DatabaseOutput)
 -> Maybe EncryptionMode
 -> Maybe (NonEmpty Output)
 -> Maybe Text
 -> Maybe LogSubscription
 -> Maybe Text
 -> Maybe Natural
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe JobType
 -> Maybe Natural
 -> Maybe (HashMap Text Text)
 -> Maybe Text
 -> Maybe JobSample
 -> Int
 -> Text
 -> DescribeJobResponse)
-> Either String (Maybe (NonEmpty DataCatalogOutput))
-> Either
     String
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe RecipeReference
      -> Maybe ProfileConfiguration
      -> Maybe Text
      -> Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object
-> Text -> Either String (Maybe (NonEmpty DataCatalogOutput))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DataCatalogOutputs")
            Either
  String
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe RecipeReference
   -> Maybe ProfileConfiguration
   -> Maybe Text
   -> Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe POSIX
      -> Maybe RecipeReference
      -> Maybe ProfileConfiguration
      -> Maybe Text
      -> Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LastModifiedDate")
            Either
  String
  (Maybe POSIX
   -> Maybe RecipeReference
   -> Maybe ProfileConfiguration
   -> Maybe Text
   -> Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe RecipeReference
      -> Maybe ProfileConfiguration
      -> Maybe Text
      -> Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CreateDate")
            Either
  String
  (Maybe RecipeReference
   -> Maybe ProfileConfiguration
   -> Maybe Text
   -> Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe RecipeReference)
-> Either
     String
     (Maybe ProfileConfiguration
      -> Maybe Text
      -> Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe RecipeReference)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RecipeReference")
            Either
  String
  (Maybe ProfileConfiguration
   -> Maybe Text
   -> Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe ProfileConfiguration)
-> Either
     String
     (Maybe Text
      -> Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ProfileConfiguration)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProfileConfiguration")
            Either
  String
  (Maybe Text
   -> Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (NonEmpty DatabaseOutput)
      -> Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CreatedBy")
            Either
  String
  (Maybe (NonEmpty DatabaseOutput)
   -> Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe (NonEmpty DatabaseOutput))
-> Either
     String
     (Maybe EncryptionMode
      -> Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (NonEmpty DatabaseOutput))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DatabaseOutputs")
            Either
  String
  (Maybe EncryptionMode
   -> Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe EncryptionMode)
-> Either
     String
     (Maybe (NonEmpty Output)
      -> Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe EncryptionMode)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EncryptionMode")
            Either
  String
  (Maybe (NonEmpty Output)
   -> Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe (NonEmpty Output))
-> Either
     String
     (Maybe Text
      -> Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (NonEmpty Output))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Outputs")
            Either
  String
  (Maybe Text
   -> Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe LogSubscription
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ResourceArn")
            Either
  String
  (Maybe LogSubscription
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe LogSubscription)
-> Either
     String
     (Maybe Text
      -> Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LogSubscription)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LogSubscription")
            Either
  String
  (Maybe Text
   -> Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Natural
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProjectName")
            Either
  String
  (Maybe Natural
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"MaxRetries")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DatasetName")
            Either
  String
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Int
      -> Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EncryptionKeyArn")
            Either
  String
  (Maybe Int
   -> Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Int)
-> Either
     String
     (Maybe Text
      -> Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Int)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"MaxCapacity")
            Either
  String
  (Maybe Text
   -> Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe JobType
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LastModifiedBy")
            Either
  String
  (Maybe JobType
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe JobType)
-> Either
     String
     (Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe JobType)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Type")
            Either
  String
  (Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe Text
      -> Maybe JobSample
      -> Int
      -> Text
      -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Timeout")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Maybe Text
   -> Maybe JobSample
   -> Int
   -> Text
   -> DescribeJobResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe Text
      -> Maybe JobSample -> Int -> Text -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Tags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe Text
   -> Maybe JobSample -> Int -> Text -> DescribeJobResponse)
-> Either String (Maybe Text)
-> Either
     String (Maybe JobSample -> Int -> Text -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RoleArn")
            Either
  String (Maybe JobSample -> Int -> Text -> DescribeJobResponse)
-> Either String (Maybe JobSample)
-> Either String (Int -> Text -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe JobSample)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"JobSample")
            Either String (Int -> Text -> DescribeJobResponse)
-> Either String Int -> Either String (Text -> DescribeJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            Either String (Text -> DescribeJobResponse)
-> Either String Text -> Either String DescribeJobResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"Name")
      )

instance Prelude.Hashable DescribeJob

instance Prelude.NFData DescribeJob

instance Core.ToHeaders DescribeJob where
  toHeaders :: DescribeJob -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeJob -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToPath DescribeJob where
  toPath :: DescribeJob -> ByteString
toPath DescribeJob' {Text
name :: Text
$sel:name:DescribeJob' :: DescribeJob -> Text
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/jobs/", Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
name]

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

-- | /See:/ 'newDescribeJobResponse' smart constructor.
data DescribeJobResponse = DescribeJobResponse'
  { -- | 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),
    -- | The date and time that the job was last modified.
    DescribeJobResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Core.POSIX,
    -- | The date and time that the job was created.
    DescribeJobResponse -> Maybe POSIX
createDate :: Prelude.Maybe Core.POSIX,
    DescribeJobResponse -> Maybe RecipeReference
recipeReference :: Prelude.Maybe RecipeReference,
    -- | 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 identifier (user name) of the user associated with the creation of
    -- the job.
    DescribeJobResponse -> Maybe Text
createdBy :: Prelude.Maybe Prelude.Text,
    -- | 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 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,
    -- | One or more artifacts that represent the output from running the job.
    DescribeJobResponse -> Maybe (NonEmpty Output)
outputs :: Prelude.Maybe (Prelude.NonEmpty Output),
    -- | The Amazon Resource Name (ARN) of the job.
    DescribeJobResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether Amazon CloudWatch logging is enabled for this job.
    DescribeJobResponse -> Maybe LogSubscription
logSubscription :: Prelude.Maybe LogSubscription,
    -- | The DataBrew project associated with this job.
    DescribeJobResponse -> Maybe Text
projectName :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of times to retry the job after a job run fails.
    DescribeJobResponse -> Maybe Natural
maxRetries :: Prelude.Maybe Prelude.Natural,
    -- | 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 maximum number of compute nodes that DataBrew can consume when the
    -- job processes data.
    DescribeJobResponse -> Maybe Int
maxCapacity :: Prelude.Maybe Prelude.Int,
    -- | The identifier (user name) of the user who last modified the job.
    DescribeJobResponse -> Maybe Text
lastModifiedBy :: Prelude.Maybe Prelude.Text,
    -- | 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,
    -- | 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,
    -- | Metadata tags associated with this job.
    DescribeJobResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text 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,
    -- | 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 response's http status code.
    DescribeJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the job.
    DescribeJobResponse -> Text
name :: Prelude.Text
  }
  deriving (DescribeJobResponse -> DescribeJobResponse -> Bool
(DescribeJobResponse -> DescribeJobResponse -> Bool)
-> (DescribeJobResponse -> DescribeJobResponse -> Bool)
-> Eq DescribeJobResponse
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]
(Int -> ReadS DescribeJobResponse)
-> ReadS [DescribeJobResponse]
-> ReadPrec DescribeJobResponse
-> ReadPrec [DescribeJobResponse]
-> Read 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
(Int -> DescribeJobResponse -> ShowS)
-> (DescribeJobResponse -> String)
-> ([DescribeJobResponse] -> ShowS)
-> Show DescribeJobResponse
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. DescribeJobResponse -> Rep DescribeJobResponse x)
-> (forall x. Rep DescribeJobResponse x -> DescribeJobResponse)
-> Generic DescribeJobResponse
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:
--
-- 'dataCatalogOutputs', 'describeJobResponse_dataCatalogOutputs' - One or more artifacts that represent the Glue Data Catalog output from
-- running the job.
--
-- 'lastModifiedDate', 'describeJobResponse_lastModifiedDate' - The date and time that the job was last modified.
--
-- 'createDate', 'describeJobResponse_createDate' - The date and time that the job was created.
--
-- 'recipeReference', 'describeJobResponse_recipeReference' - Undocumented member.
--
-- '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.
--
-- 'createdBy', 'describeJobResponse_createdBy' - The identifier (user name) of the user associated with the creation of
-- 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.
--
-- '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.
--
-- 'outputs', 'describeJobResponse_outputs' - One or more artifacts that represent the output from running the job.
--
-- 'resourceArn', 'describeJobResponse_resourceArn' - The Amazon Resource Name (ARN) of the job.
--
-- 'logSubscription', 'describeJobResponse_logSubscription' - Indicates whether Amazon CloudWatch logging is enabled for this job.
--
-- 'projectName', 'describeJobResponse_projectName' - The DataBrew project associated with this job.
--
-- 'maxRetries', 'describeJobResponse_maxRetries' - The maximum number of times to retry the job after a job run fails.
--
-- '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.
--
-- 'maxCapacity', 'describeJobResponse_maxCapacity' - The maximum number of compute nodes that DataBrew can consume when the
-- job processes data.
--
-- 'lastModifiedBy', 'describeJobResponse_lastModifiedBy' - The identifier (user name) of the user who last modified the job.
--
-- '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.
--
-- '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@.
--
-- 'tags', 'describeJobResponse_tags' - Metadata tags associated with this job.
--
-- 'roleArn', 'describeJobResponse_roleArn' - The ARN of the Identity and Access Management (IAM) role to be assumed
-- when DataBrew runs the job.
--
-- 'jobSample', 'describeJobResponse_jobSample' - Sample configuration for profile jobs only. Determines the number of
-- rows on which the profile job will be executed.
--
-- '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' :: Maybe (NonEmpty DataCatalogOutput)
-> Maybe POSIX
-> Maybe POSIX
-> Maybe RecipeReference
-> Maybe ProfileConfiguration
-> Maybe Text
-> Maybe (NonEmpty DatabaseOutput)
-> Maybe EncryptionMode
-> Maybe (NonEmpty Output)
-> Maybe Text
-> Maybe LogSubscription
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe JobType
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe JobSample
-> Int
-> Text
-> DescribeJobResponse
DescribeJobResponse'
    { $sel:dataCatalogOutputs:DescribeJobResponse' :: Maybe (NonEmpty DataCatalogOutput)
dataCatalogOutputs =
        Maybe (NonEmpty DataCatalogOutput)
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:DescribeJobResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:createDate:DescribeJobResponse' :: Maybe POSIX
createDate = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:recipeReference:DescribeJobResponse' :: Maybe RecipeReference
recipeReference = Maybe RecipeReference
forall a. Maybe a
Prelude.Nothing,
      $sel:profileConfiguration:DescribeJobResponse' :: Maybe ProfileConfiguration
profileConfiguration = Maybe ProfileConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:DescribeJobResponse' :: Maybe Text
createdBy = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:databaseOutputs:DescribeJobResponse' :: Maybe (NonEmpty DatabaseOutput)
databaseOutputs = Maybe (NonEmpty DatabaseOutput)
forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionMode:DescribeJobResponse' :: Maybe EncryptionMode
encryptionMode = Maybe EncryptionMode
forall a. Maybe a
Prelude.Nothing,
      $sel:outputs:DescribeJobResponse' :: Maybe (NonEmpty Output)
outputs = Maybe (NonEmpty Output)
forall a. Maybe a
Prelude.Nothing,
      $sel:resourceArn:DescribeJobResponse' :: Maybe Text
resourceArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:logSubscription:DescribeJobResponse' :: Maybe LogSubscription
logSubscription = Maybe LogSubscription
forall a. Maybe a
Prelude.Nothing,
      $sel:projectName:DescribeJobResponse' :: Maybe Text
projectName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxRetries:DescribeJobResponse' :: Maybe Natural
maxRetries = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:datasetName:DescribeJobResponse' :: Maybe Text
datasetName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionKeyArn:DescribeJobResponse' :: Maybe Text
encryptionKeyArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxCapacity:DescribeJobResponse' :: Maybe Int
maxCapacity = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:DescribeJobResponse' :: Maybe Text
lastModifiedBy = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:type':DescribeJobResponse' :: Maybe JobType
type' = Maybe JobType
forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:DescribeJobResponse' :: Maybe Natural
timeout = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:DescribeJobResponse' :: Maybe Text
roleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:jobSample:DescribeJobResponse' :: Maybe JobSample
jobSample = Maybe JobSample
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:name:DescribeJobResponse' :: Text
name = Text
pName_
    }

-- | 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 :: (Maybe (NonEmpty DataCatalogOutput)
 -> f (Maybe (NonEmpty DataCatalogOutput)))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_dataCatalogOutputs = (DescribeJobResponse -> Maybe (NonEmpty DataCatalogOutput))
-> (DescribeJobResponse
    -> Maybe (NonEmpty DataCatalogOutput) -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe (NonEmpty DataCatalogOutput))
     (Maybe (NonEmpty DataCatalogOutput))
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) ((Maybe (NonEmpty DataCatalogOutput)
  -> f (Maybe (NonEmpty DataCatalogOutput)))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe (NonEmpty DataCatalogOutput)
     -> f (Maybe (NonEmpty DataCatalogOutput)))
    -> Maybe (NonEmpty DataCatalogOutput)
    -> f (Maybe (NonEmpty DataCatalogOutput)))
-> (Maybe (NonEmpty DataCatalogOutput)
    -> f (Maybe (NonEmpty DataCatalogOutput)))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
-> Iso
     (Maybe (NonEmpty DataCatalogOutput))
     (Maybe (NonEmpty DataCatalogOutput))
     (Maybe (NonEmpty DataCatalogOutput))
     (Maybe (NonEmpty DataCatalogOutput))
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 AnIso
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
  (NonEmpty DataCatalogOutput)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The date and time that the job was last modified.
describeJobResponse_lastModifiedDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)
describeJobResponse_lastModifiedDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_lastModifiedDate = (DescribeJobResponse -> Maybe POSIX)
-> (DescribeJobResponse -> Maybe POSIX -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The date and time that the job was created.
describeJobResponse_createDate :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.UTCTime)
describeJobResponse_createDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_createDate = (DescribeJobResponse -> Maybe POSIX)
-> (DescribeJobResponse -> Maybe POSIX -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Undocumented member.
describeJobResponse_recipeReference :: Lens.Lens' DescribeJobResponse (Prelude.Maybe RecipeReference)
describeJobResponse_recipeReference :: (Maybe RecipeReference -> f (Maybe RecipeReference))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_recipeReference = (DescribeJobResponse -> Maybe RecipeReference)
-> (DescribeJobResponse
    -> Maybe RecipeReference -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe RecipeReference)
     (Maybe 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)

-- | 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 :: (Maybe ProfileConfiguration -> f (Maybe ProfileConfiguration))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_profileConfiguration = (DescribeJobResponse -> Maybe ProfileConfiguration)
-> (DescribeJobResponse
    -> Maybe ProfileConfiguration -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe ProfileConfiguration)
     (Maybe 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 identifier (user name) of the user associated with the creation of
-- the job.
describeJobResponse_createdBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_createdBy :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_createdBy = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe (NonEmpty DatabaseOutput)
 -> f (Maybe (NonEmpty DatabaseOutput)))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_databaseOutputs = (DescribeJobResponse -> Maybe (NonEmpty DatabaseOutput))
-> (DescribeJobResponse
    -> Maybe (NonEmpty DatabaseOutput) -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe (NonEmpty DatabaseOutput))
     (Maybe (NonEmpty DatabaseOutput))
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) ((Maybe (NonEmpty DatabaseOutput)
  -> f (Maybe (NonEmpty DatabaseOutput)))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe (NonEmpty DatabaseOutput)
     -> f (Maybe (NonEmpty DatabaseOutput)))
    -> Maybe (NonEmpty DatabaseOutput)
    -> f (Maybe (NonEmpty DatabaseOutput)))
-> (Maybe (NonEmpty DatabaseOutput)
    -> f (Maybe (NonEmpty DatabaseOutput)))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
-> Iso
     (Maybe (NonEmpty DatabaseOutput))
     (Maybe (NonEmpty DatabaseOutput))
     (Maybe (NonEmpty DatabaseOutput))
     (Maybe (NonEmpty DatabaseOutput))
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 AnIso
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
  (NonEmpty DatabaseOutput)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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 :: (Maybe EncryptionMode -> f (Maybe EncryptionMode))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_encryptionMode = (DescribeJobResponse -> Maybe EncryptionMode)
-> (DescribeJobResponse
    -> Maybe EncryptionMode -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe EncryptionMode)
     (Maybe 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)

-- | One or more artifacts that represent the output from running the job.
describeJobResponse_outputs :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.NonEmpty Output))
describeJobResponse_outputs :: (Maybe (NonEmpty Output) -> f (Maybe (NonEmpty Output)))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_outputs = (DescribeJobResponse -> Maybe (NonEmpty Output))
-> (DescribeJobResponse
    -> Maybe (NonEmpty Output) -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe (NonEmpty Output))
     (Maybe (NonEmpty Output))
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) ((Maybe (NonEmpty Output) -> f (Maybe (NonEmpty Output)))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe (NonEmpty Output) -> f (Maybe (NonEmpty Output)))
    -> Maybe (NonEmpty Output) -> f (Maybe (NonEmpty Output)))
-> (Maybe (NonEmpty Output) -> f (Maybe (NonEmpty Output)))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty Output)
  (NonEmpty Output)
  (NonEmpty Output)
  (NonEmpty Output)
-> Iso
     (Maybe (NonEmpty Output))
     (Maybe (NonEmpty Output))
     (Maybe (NonEmpty Output))
     (Maybe (NonEmpty Output))
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 AnIso
  (NonEmpty Output)
  (NonEmpty Output)
  (NonEmpty Output)
  (NonEmpty Output)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Resource Name (ARN) of the job.
describeJobResponse_resourceArn :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_resourceArn :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_resourceArn = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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)

-- | Indicates whether Amazon CloudWatch logging is enabled for this job.
describeJobResponse_logSubscription :: Lens.Lens' DescribeJobResponse (Prelude.Maybe LogSubscription)
describeJobResponse_logSubscription :: (Maybe LogSubscription -> f (Maybe LogSubscription))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_logSubscription = (DescribeJobResponse -> Maybe LogSubscription)
-> (DescribeJobResponse
    -> Maybe LogSubscription -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe LogSubscription)
     (Maybe 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 DataBrew project associated with this job.
describeJobResponse_projectName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_projectName :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_projectName = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_maxRetries = (DescribeJobResponse -> Maybe Natural)
-> (DescribeJobResponse -> Maybe Natural -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe Natural)
     (Maybe Natural)
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)

-- | The dataset that the job acts upon.
describeJobResponse_datasetName :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_datasetName :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_datasetName = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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 :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_encryptionKeyArn = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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 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 :: (Maybe Int -> f (Maybe Int))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_maxCapacity = (DescribeJobResponse -> Maybe Int)
-> (DescribeJobResponse -> Maybe Int -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Int) (Maybe Int)
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 identifier (user name) of the user who last modified the job.
describeJobResponse_lastModifiedBy :: Lens.Lens' DescribeJobResponse (Prelude.Maybe Prelude.Text)
describeJobResponse_lastModifiedBy :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_lastModifiedBy = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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 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 :: (Maybe JobType -> f (Maybe JobType))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_type = (DescribeJobResponse -> Maybe JobType)
-> (DescribeJobResponse -> Maybe JobType -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe JobType)
     (Maybe JobType)
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)

-- | 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 :: (Maybe Natural -> f (Maybe Natural))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_timeout = (DescribeJobResponse -> Maybe Natural)
-> (DescribeJobResponse -> Maybe Natural -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe Natural)
     (Maybe Natural)
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)

-- | Metadata tags associated with this job.
describeJobResponse_tags :: Lens.Lens' DescribeJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeJobResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_tags = (DescribeJobResponse -> Maybe (HashMap Text Text))
-> (DescribeJobResponse
    -> Maybe (HashMap Text Text) -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeJobResponse -> f DescribeJobResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeJobResponse
-> f DescribeJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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 :: (Maybe Text -> f (Maybe Text))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_roleArn = (DescribeJobResponse -> Maybe Text)
-> (DescribeJobResponse -> Maybe Text -> DescribeJobResponse)
-> Lens
     DescribeJobResponse DescribeJobResponse (Maybe Text) (Maybe Text)
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)

-- | 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 :: (Maybe JobSample -> f (Maybe JobSample))
-> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_jobSample = (DescribeJobResponse -> Maybe JobSample)
-> (DescribeJobResponse -> Maybe JobSample -> DescribeJobResponse)
-> Lens
     DescribeJobResponse
     DescribeJobResponse
     (Maybe JobSample)
     (Maybe 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 response's http status code.
describeJobResponse_httpStatus :: Lens.Lens' DescribeJobResponse Prelude.Int
describeJobResponse_httpStatus :: (Int -> f Int) -> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_httpStatus = (DescribeJobResponse -> Int)
-> (DescribeJobResponse -> Int -> DescribeJobResponse)
-> Lens DescribeJobResponse DescribeJobResponse Int Int
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 :: (Text -> f Text) -> DescribeJobResponse -> f DescribeJobResponse
describeJobResponse_name = (DescribeJobResponse -> Text)
-> (DescribeJobResponse -> Text -> DescribeJobResponse)
-> Lens DescribeJobResponse DescribeJobResponse Text Text
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