{-# 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.MacieV2.DescribeClassificationJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves the status and settings for a classification job.
module Amazonka.MacieV2.DescribeClassificationJob
  ( -- * Creating a Request
    DescribeClassificationJob (..),
    newDescribeClassificationJob,

    -- * Request Lenses
    describeClassificationJob_jobId,

    -- * Destructuring the Response
    DescribeClassificationJobResponse (..),
    newDescribeClassificationJobResponse,

    -- * Response Lenses
    describeClassificationJobResponse_allowListIds,
    describeClassificationJobResponse_clientToken,
    describeClassificationJobResponse_createdAt,
    describeClassificationJobResponse_customDataIdentifierIds,
    describeClassificationJobResponse_description,
    describeClassificationJobResponse_initialRun,
    describeClassificationJobResponse_jobArn,
    describeClassificationJobResponse_jobId,
    describeClassificationJobResponse_jobStatus,
    describeClassificationJobResponse_jobType,
    describeClassificationJobResponse_lastRunErrorStatus,
    describeClassificationJobResponse_lastRunTime,
    describeClassificationJobResponse_managedDataIdentifierIds,
    describeClassificationJobResponse_managedDataIdentifierSelector,
    describeClassificationJobResponse_name,
    describeClassificationJobResponse_s3JobDefinition,
    describeClassificationJobResponse_samplingPercentage,
    describeClassificationJobResponse_scheduleFrequency,
    describeClassificationJobResponse_statistics,
    describeClassificationJobResponse_tags,
    describeClassificationJobResponse_userPausedDetails,
    describeClassificationJobResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'DescribeClassificationJob' 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:
--
-- 'jobId', 'describeClassificationJob_jobId' - The unique identifier for the classification job.
newDescribeClassificationJob ::
  -- | 'jobId'
  Prelude.Text ->
  DescribeClassificationJob
newDescribeClassificationJob :: Text -> DescribeClassificationJob
newDescribeClassificationJob Text
pJobId_ =
  DescribeClassificationJob' {$sel:jobId:DescribeClassificationJob' :: Text
jobId = Text
pJobId_}

-- | The unique identifier for the classification job.
describeClassificationJob_jobId :: Lens.Lens' DescribeClassificationJob Prelude.Text
describeClassificationJob_jobId :: Lens' DescribeClassificationJob Text
describeClassificationJob_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJob' {Text
jobId :: Text
$sel:jobId:DescribeClassificationJob' :: DescribeClassificationJob -> Text
jobId} -> Text
jobId) (\s :: DescribeClassificationJob
s@DescribeClassificationJob' {} Text
a -> DescribeClassificationJob
s {$sel:jobId:DescribeClassificationJob' :: Text
jobId = Text
a} :: DescribeClassificationJob)

instance Core.AWSRequest DescribeClassificationJob where
  type
    AWSResponse DescribeClassificationJob =
      DescribeClassificationJobResponse
  request :: (Service -> Service)
-> DescribeClassificationJob -> Request DescribeClassificationJob
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 DescribeClassificationJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeClassificationJob)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [Text]
-> Maybe Text
-> Maybe ISO8601
-> Maybe [Text]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe JobStatus
-> Maybe JobType
-> Maybe LastRunErrorStatus
-> Maybe ISO8601
-> Maybe [Text]
-> Maybe ManagedDataIdentifierSelector
-> Maybe Text
-> Maybe S3JobDefinition
-> Maybe Int
-> Maybe JobScheduleFrequency
-> Maybe Statistics
-> Maybe (HashMap Text Text)
-> Maybe UserPausedDetails
-> Int
-> DescribeClassificationJobResponse
DescribeClassificationJobResponse'
            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
"allowListIds" 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
"clientToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"createdAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"customDataIdentifierIds"
                            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
"description")
            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
"initialRun")
            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
"jobArn")
            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
"jobId")
            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
"jobStatus")
            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
"jobType")
            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
"lastRunErrorStatus")
            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
"lastRunTime")
            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
"managedDataIdentifierIds"
                            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
"managedDataIdentifierSelector")
            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
"name")
            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
"s3JobDefinition")
            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
"samplingPercentage")
            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
"scheduleFrequency")
            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
"statistics")
            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
"userPausedDetails")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

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

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

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

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

-- | /See:/ 'newDescribeClassificationJobResponse' smart constructor.
data DescribeClassificationJobResponse = DescribeClassificationJobResponse'
  { -- | An array of unique identifiers, one for each allow list that the job
    -- uses when it analyzes data.
    DescribeClassificationJobResponse -> Maybe [Text]
allowListIds :: Prelude.Maybe [Prelude.Text],
    -- | The token that was provided to ensure the idempotency of the request to
    -- create the job.
    DescribeClassificationJobResponse -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | The date and time, in UTC and extended ISO 8601 format, when the job was
    -- created.
    DescribeClassificationJobResponse -> Maybe ISO8601
createdAt :: Prelude.Maybe Data.ISO8601,
    -- | An array of unique identifiers, one for each custom data identifier that
    -- the job uses when it analyzes data. This value is null if the job uses
    -- only managed data identifiers to analyze data.
    DescribeClassificationJobResponse -> Maybe [Text]
customDataIdentifierIds :: Prelude.Maybe [Prelude.Text],
    -- | The custom description of the job.
    DescribeClassificationJobResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | For a recurring job, specifies whether you configured the job to analyze
    -- all existing, eligible objects immediately after the job was created
    -- (true). If you configured the job to analyze only those objects that
    -- were created or changed after the job was created and before the job\'s
    -- first scheduled run, this value is false. This value is also false for a
    -- one-time job.
    DescribeClassificationJobResponse -> Maybe Bool
initialRun :: Prelude.Maybe Prelude.Bool,
    -- | The Amazon Resource Name (ARN) of the job.
    DescribeClassificationJobResponse -> Maybe Text
jobArn :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for the job.
    DescribeClassificationJobResponse -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | The current status of the job. Possible values are:
    --
    -- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you
    --     paused the job and didn\'t resume it within 30 days.
    --
    -- -   COMPLETE - For a one-time job, Amazon Macie finished processing the
    --     data specified for the job. This value doesn\'t apply to recurring
    --     jobs.
    --
    -- -   IDLE - For a recurring job, the previous scheduled run is complete
    --     and the next scheduled run is pending. This value doesn\'t apply to
    --     one-time jobs.
    --
    -- -   PAUSED - Macie started running the job but additional processing
    --     would exceed the monthly sensitive data discovery quota for your
    --     account or one or more member accounts that the job analyzes data
    --     for.
    --
    -- -   RUNNING - For a one-time job, the job is in progress. For a
    --     recurring job, a scheduled run is in progress.
    --
    -- -   USER_PAUSED - You paused the job. If you paused the job while it had
    --     a status of RUNNING and you don\'t resume it within 30 days of
    --     pausing it, the job or job run will expire and be cancelled,
    --     depending on the job\'s type. To check the expiration date, refer to
    --     the UserPausedDetails.jobExpiresAt property.
    DescribeClassificationJobResponse -> Maybe JobStatus
jobStatus :: Prelude.Maybe JobStatus,
    -- | The schedule for running the job. Possible values are:
    --
    -- -   ONE_TIME - The job runs only once.
    --
    -- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The
    --     scheduleFrequency property indicates the recurrence pattern for the
    --     job.
    DescribeClassificationJobResponse -> Maybe JobType
jobType :: Prelude.Maybe JobType,
    -- | Specifies whether any account- or bucket-level access errors occurred
    -- when the job ran. For a recurring job, this value indicates the error
    -- status of the job\'s most recent run.
    DescribeClassificationJobResponse -> Maybe LastRunErrorStatus
lastRunErrorStatus :: Prelude.Maybe LastRunErrorStatus,
    -- | The date and time, in UTC and extended ISO 8601 format, when the job
    -- started. If the job is a recurring job, this value indicates when the
    -- most recent run started or, if the job hasn\'t run yet, when the job was
    -- created.
    DescribeClassificationJobResponse -> Maybe ISO8601
lastRunTime :: Prelude.Maybe Data.ISO8601,
    -- | An array of unique identifiers, one for each managed data identifier
    -- that the job is explicitly configured to include (use) or exclude (not
    -- use) when it analyzes data. Inclusion or exclusion depends on the
    -- managed data identifier selection type specified for the job
    -- (managedDataIdentifierSelector). This value is null if the job\'s
    -- managed data identifier selection type is ALL or the job uses only
    -- custom data identifiers (customDataIdentifierIds) to analyze data.
    DescribeClassificationJobResponse -> Maybe [Text]
managedDataIdentifierIds :: Prelude.Maybe [Prelude.Text],
    -- | The selection type that determines which managed data identifiers the
    -- job uses to analyze data. Possible values are:
    --
    -- -   ALL - Use all the managed data identifiers that Amazon Macie
    --     provides.
    --
    -- -   EXCLUDE - Use all the managed data identifiers that Macie provides
    --     except the managed data identifiers specified by the
    --     managedDataIdentifierIds property.
    --
    -- -   INCLUDE - Use only the managed data identifiers specified by the
    --     managedDataIdentifierIds property.
    --
    -- -   NONE - Don\'t use any managed data identifiers.
    --
    -- If this value is null, the job uses all managed data identifiers. If
    -- this value is null, ALL, or EXCLUDE for a recurring job, the job also
    -- uses new managed data identifiers as they are released.
    DescribeClassificationJobResponse
-> Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector :: Prelude.Maybe ManagedDataIdentifierSelector,
    -- | The custom name of the job.
    DescribeClassificationJobResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The S3 buckets that contain the objects to analyze, and the scope of
    -- that analysis.
    DescribeClassificationJobResponse -> Maybe S3JobDefinition
s3JobDefinition :: Prelude.Maybe S3JobDefinition,
    -- | The sampling depth, as a percentage, that determines the percentage of
    -- eligible objects that the job analyzes.
    DescribeClassificationJobResponse -> Maybe Int
samplingPercentage :: Prelude.Maybe Prelude.Int,
    -- | The recurrence pattern for running the job. This value is null if the
    -- job is configured to run only once.
    DescribeClassificationJobResponse -> Maybe JobScheduleFrequency
scheduleFrequency :: Prelude.Maybe JobScheduleFrequency,
    -- | The number of times that the job has run and processing statistics for
    -- the job\'s current run.
    DescribeClassificationJobResponse -> Maybe Statistics
statistics :: Prelude.Maybe Statistics,
    -- | A map of key-value pairs that specifies which tags (keys and values) are
    -- associated with the classification job.
    DescribeClassificationJobResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | If the current status of the job is USER_PAUSED, specifies when the job
    -- was paused and when the job or job run will expire and be cancelled if
    -- it isn\'t resumed. This value is present only if the value for jobStatus
    -- is USER_PAUSED.
    DescribeClassificationJobResponse -> Maybe UserPausedDetails
userPausedDetails :: Prelude.Maybe UserPausedDetails,
    -- | The response's http status code.
    DescribeClassificationJobResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeClassificationJobResponse
-> DescribeClassificationJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeClassificationJobResponse
-> DescribeClassificationJobResponse -> Bool
$c/= :: DescribeClassificationJobResponse
-> DescribeClassificationJobResponse -> Bool
== :: DescribeClassificationJobResponse
-> DescribeClassificationJobResponse -> Bool
$c== :: DescribeClassificationJobResponse
-> DescribeClassificationJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeClassificationJobResponse]
ReadPrec DescribeClassificationJobResponse
Int -> ReadS DescribeClassificationJobResponse
ReadS [DescribeClassificationJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeClassificationJobResponse]
$creadListPrec :: ReadPrec [DescribeClassificationJobResponse]
readPrec :: ReadPrec DescribeClassificationJobResponse
$creadPrec :: ReadPrec DescribeClassificationJobResponse
readList :: ReadS [DescribeClassificationJobResponse]
$creadList :: ReadS [DescribeClassificationJobResponse]
readsPrec :: Int -> ReadS DescribeClassificationJobResponse
$creadsPrec :: Int -> ReadS DescribeClassificationJobResponse
Prelude.Read, Int -> DescribeClassificationJobResponse -> ShowS
[DescribeClassificationJobResponse] -> ShowS
DescribeClassificationJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeClassificationJobResponse] -> ShowS
$cshowList :: [DescribeClassificationJobResponse] -> ShowS
show :: DescribeClassificationJobResponse -> String
$cshow :: DescribeClassificationJobResponse -> String
showsPrec :: Int -> DescribeClassificationJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeClassificationJobResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeClassificationJobResponse x
-> DescribeClassificationJobResponse
forall x.
DescribeClassificationJobResponse
-> Rep DescribeClassificationJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeClassificationJobResponse x
-> DescribeClassificationJobResponse
$cfrom :: forall x.
DescribeClassificationJobResponse
-> Rep DescribeClassificationJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeClassificationJobResponse' 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:
--
-- 'allowListIds', 'describeClassificationJobResponse_allowListIds' - An array of unique identifiers, one for each allow list that the job
-- uses when it analyzes data.
--
-- 'clientToken', 'describeClassificationJobResponse_clientToken' - The token that was provided to ensure the idempotency of the request to
-- create the job.
--
-- 'createdAt', 'describeClassificationJobResponse_createdAt' - The date and time, in UTC and extended ISO 8601 format, when the job was
-- created.
--
-- 'customDataIdentifierIds', 'describeClassificationJobResponse_customDataIdentifierIds' - An array of unique identifiers, one for each custom data identifier that
-- the job uses when it analyzes data. This value is null if the job uses
-- only managed data identifiers to analyze data.
--
-- 'description', 'describeClassificationJobResponse_description' - The custom description of the job.
--
-- 'initialRun', 'describeClassificationJobResponse_initialRun' - For a recurring job, specifies whether you configured the job to analyze
-- all existing, eligible objects immediately after the job was created
-- (true). If you configured the job to analyze only those objects that
-- were created or changed after the job was created and before the job\'s
-- first scheduled run, this value is false. This value is also false for a
-- one-time job.
--
-- 'jobArn', 'describeClassificationJobResponse_jobArn' - The Amazon Resource Name (ARN) of the job.
--
-- 'jobId', 'describeClassificationJobResponse_jobId' - The unique identifier for the job.
--
-- 'jobStatus', 'describeClassificationJobResponse_jobStatus' - The current status of the job. Possible values are:
--
-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you
--     paused the job and didn\'t resume it within 30 days.
--
-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the
--     data specified for the job. This value doesn\'t apply to recurring
--     jobs.
--
-- -   IDLE - For a recurring job, the previous scheduled run is complete
--     and the next scheduled run is pending. This value doesn\'t apply to
--     one-time jobs.
--
-- -   PAUSED - Macie started running the job but additional processing
--     would exceed the monthly sensitive data discovery quota for your
--     account or one or more member accounts that the job analyzes data
--     for.
--
-- -   RUNNING - For a one-time job, the job is in progress. For a
--     recurring job, a scheduled run is in progress.
--
-- -   USER_PAUSED - You paused the job. If you paused the job while it had
--     a status of RUNNING and you don\'t resume it within 30 days of
--     pausing it, the job or job run will expire and be cancelled,
--     depending on the job\'s type. To check the expiration date, refer to
--     the UserPausedDetails.jobExpiresAt property.
--
-- 'jobType', 'describeClassificationJobResponse_jobType' - The schedule for running the job. Possible values are:
--
-- -   ONE_TIME - The job runs only once.
--
-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The
--     scheduleFrequency property indicates the recurrence pattern for the
--     job.
--
-- 'lastRunErrorStatus', 'describeClassificationJobResponse_lastRunErrorStatus' - Specifies whether any account- or bucket-level access errors occurred
-- when the job ran. For a recurring job, this value indicates the error
-- status of the job\'s most recent run.
--
-- 'lastRunTime', 'describeClassificationJobResponse_lastRunTime' - The date and time, in UTC and extended ISO 8601 format, when the job
-- started. If the job is a recurring job, this value indicates when the
-- most recent run started or, if the job hasn\'t run yet, when the job was
-- created.
--
-- 'managedDataIdentifierIds', 'describeClassificationJobResponse_managedDataIdentifierIds' - An array of unique identifiers, one for each managed data identifier
-- that the job is explicitly configured to include (use) or exclude (not
-- use) when it analyzes data. Inclusion or exclusion depends on the
-- managed data identifier selection type specified for the job
-- (managedDataIdentifierSelector). This value is null if the job\'s
-- managed data identifier selection type is ALL or the job uses only
-- custom data identifiers (customDataIdentifierIds) to analyze data.
--
-- 'managedDataIdentifierSelector', 'describeClassificationJobResponse_managedDataIdentifierSelector' - The selection type that determines which managed data identifiers the
-- job uses to analyze data. Possible values are:
--
-- -   ALL - Use all the managed data identifiers that Amazon Macie
--     provides.
--
-- -   EXCLUDE - Use all the managed data identifiers that Macie provides
--     except the managed data identifiers specified by the
--     managedDataIdentifierIds property.
--
-- -   INCLUDE - Use only the managed data identifiers specified by the
--     managedDataIdentifierIds property.
--
-- -   NONE - Don\'t use any managed data identifiers.
--
-- If this value is null, the job uses all managed data identifiers. If
-- this value is null, ALL, or EXCLUDE for a recurring job, the job also
-- uses new managed data identifiers as they are released.
--
-- 'name', 'describeClassificationJobResponse_name' - The custom name of the job.
--
-- 's3JobDefinition', 'describeClassificationJobResponse_s3JobDefinition' - The S3 buckets that contain the objects to analyze, and the scope of
-- that analysis.
--
-- 'samplingPercentage', 'describeClassificationJobResponse_samplingPercentage' - The sampling depth, as a percentage, that determines the percentage of
-- eligible objects that the job analyzes.
--
-- 'scheduleFrequency', 'describeClassificationJobResponse_scheduleFrequency' - The recurrence pattern for running the job. This value is null if the
-- job is configured to run only once.
--
-- 'statistics', 'describeClassificationJobResponse_statistics' - The number of times that the job has run and processing statistics for
-- the job\'s current run.
--
-- 'tags', 'describeClassificationJobResponse_tags' - A map of key-value pairs that specifies which tags (keys and values) are
-- associated with the classification job.
--
-- 'userPausedDetails', 'describeClassificationJobResponse_userPausedDetails' - If the current status of the job is USER_PAUSED, specifies when the job
-- was paused and when the job or job run will expire and be cancelled if
-- it isn\'t resumed. This value is present only if the value for jobStatus
-- is USER_PAUSED.
--
-- 'httpStatus', 'describeClassificationJobResponse_httpStatus' - The response's http status code.
newDescribeClassificationJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeClassificationJobResponse
newDescribeClassificationJobResponse :: Int -> DescribeClassificationJobResponse
newDescribeClassificationJobResponse Int
pHttpStatus_ =
  DescribeClassificationJobResponse'
    { $sel:allowListIds:DescribeClassificationJobResponse' :: Maybe [Text]
allowListIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:clientToken:DescribeClassificationJobResponse' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeClassificationJobResponse' :: Maybe ISO8601
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:customDataIdentifierIds:DescribeClassificationJobResponse' :: Maybe [Text]
customDataIdentifierIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeClassificationJobResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:initialRun:DescribeClassificationJobResponse' :: Maybe Bool
initialRun = forall a. Maybe a
Prelude.Nothing,
      $sel:jobArn:DescribeClassificationJobResponse' :: Maybe Text
jobArn = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:DescribeClassificationJobResponse' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:jobStatus:DescribeClassificationJobResponse' :: Maybe JobStatus
jobStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:jobType:DescribeClassificationJobResponse' :: Maybe JobType
jobType = forall a. Maybe a
Prelude.Nothing,
      $sel:lastRunErrorStatus:DescribeClassificationJobResponse' :: Maybe LastRunErrorStatus
lastRunErrorStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:lastRunTime:DescribeClassificationJobResponse' :: Maybe ISO8601
lastRunTime = forall a. Maybe a
Prelude.Nothing,
      $sel:managedDataIdentifierIds:DescribeClassificationJobResponse' :: Maybe [Text]
managedDataIdentifierIds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:managedDataIdentifierSelector:DescribeClassificationJobResponse' :: Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector =
        forall a. Maybe a
Prelude.Nothing,
      $sel:name:DescribeClassificationJobResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:s3JobDefinition:DescribeClassificationJobResponse' :: Maybe S3JobDefinition
s3JobDefinition = forall a. Maybe a
Prelude.Nothing,
      $sel:samplingPercentage:DescribeClassificationJobResponse' :: Maybe Int
samplingPercentage = forall a. Maybe a
Prelude.Nothing,
      $sel:scheduleFrequency:DescribeClassificationJobResponse' :: Maybe JobScheduleFrequency
scheduleFrequency = forall a. Maybe a
Prelude.Nothing,
      $sel:statistics:DescribeClassificationJobResponse' :: Maybe Statistics
statistics = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeClassificationJobResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:userPausedDetails:DescribeClassificationJobResponse' :: Maybe UserPausedDetails
userPausedDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeClassificationJobResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | An array of unique identifiers, one for each allow list that the job
-- uses when it analyzes data.
describeClassificationJobResponse_allowListIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])
describeClassificationJobResponse_allowListIds :: Lens' DescribeClassificationJobResponse (Maybe [Text])
describeClassificationJobResponse_allowListIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe [Text]
allowListIds :: Maybe [Text]
$sel:allowListIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
allowListIds} -> Maybe [Text]
allowListIds) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe [Text]
a -> DescribeClassificationJobResponse
s {$sel:allowListIds:DescribeClassificationJobResponse' :: Maybe [Text]
allowListIds = Maybe [Text]
a} :: DescribeClassificationJobResponse) 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 token that was provided to ensure the idempotency of the request to
-- create the job.
describeClassificationJobResponse_clientToken :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)
describeClassificationJobResponse_clientToken :: Lens' DescribeClassificationJobResponse (Maybe Text)
describeClassificationJobResponse_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Text
a -> DescribeClassificationJobResponse
s {$sel:clientToken:DescribeClassificationJobResponse' :: Maybe Text
clientToken = Maybe Text
a} :: DescribeClassificationJobResponse)

-- | The date and time, in UTC and extended ISO 8601 format, when the job was
-- created.
describeClassificationJobResponse_createdAt :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.UTCTime)
describeClassificationJobResponse_createdAt :: Lens' DescribeClassificationJobResponse (Maybe UTCTime)
describeClassificationJobResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe ISO8601
createdAt :: Maybe ISO8601
$sel:createdAt:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe ISO8601
createdAt} -> Maybe ISO8601
createdAt) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe ISO8601
a -> DescribeClassificationJobResponse
s {$sel:createdAt:DescribeClassificationJobResponse' :: Maybe ISO8601
createdAt = Maybe ISO8601
a} :: DescribeClassificationJobResponse) 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

-- | An array of unique identifiers, one for each custom data identifier that
-- the job uses when it analyzes data. This value is null if the job uses
-- only managed data identifiers to analyze data.
describeClassificationJobResponse_customDataIdentifierIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])
describeClassificationJobResponse_customDataIdentifierIds :: Lens' DescribeClassificationJobResponse (Maybe [Text])
describeClassificationJobResponse_customDataIdentifierIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe [Text]
customDataIdentifierIds :: Maybe [Text]
$sel:customDataIdentifierIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
customDataIdentifierIds} -> Maybe [Text]
customDataIdentifierIds) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe [Text]
a -> DescribeClassificationJobResponse
s {$sel:customDataIdentifierIds:DescribeClassificationJobResponse' :: Maybe [Text]
customDataIdentifierIds = Maybe [Text]
a} :: DescribeClassificationJobResponse) 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 custom description of the job.
describeClassificationJobResponse_description :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)
describeClassificationJobResponse_description :: Lens' DescribeClassificationJobResponse (Maybe Text)
describeClassificationJobResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Text
a -> DescribeClassificationJobResponse
s {$sel:description:DescribeClassificationJobResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeClassificationJobResponse)

-- | For a recurring job, specifies whether you configured the job to analyze
-- all existing, eligible objects immediately after the job was created
-- (true). If you configured the job to analyze only those objects that
-- were created or changed after the job was created and before the job\'s
-- first scheduled run, this value is false. This value is also false for a
-- one-time job.
describeClassificationJobResponse_initialRun :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Bool)
describeClassificationJobResponse_initialRun :: Lens' DescribeClassificationJobResponse (Maybe Bool)
describeClassificationJobResponse_initialRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Bool
initialRun :: Maybe Bool
$sel:initialRun:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Bool
initialRun} -> Maybe Bool
initialRun) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Bool
a -> DescribeClassificationJobResponse
s {$sel:initialRun:DescribeClassificationJobResponse' :: Maybe Bool
initialRun = Maybe Bool
a} :: DescribeClassificationJobResponse)

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

-- | The unique identifier for the job.
describeClassificationJobResponse_jobId :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Text)
describeClassificationJobResponse_jobId :: Lens' DescribeClassificationJobResponse (Maybe Text)
describeClassificationJobResponse_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Text
jobId :: Maybe Text
$sel:jobId:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Text
a -> DescribeClassificationJobResponse
s {$sel:jobId:DescribeClassificationJobResponse' :: Maybe Text
jobId = Maybe Text
a} :: DescribeClassificationJobResponse)

-- | The current status of the job. Possible values are:
--
-- -   CANCELLED - You cancelled the job or, if it\'s a one-time job, you
--     paused the job and didn\'t resume it within 30 days.
--
-- -   COMPLETE - For a one-time job, Amazon Macie finished processing the
--     data specified for the job. This value doesn\'t apply to recurring
--     jobs.
--
-- -   IDLE - For a recurring job, the previous scheduled run is complete
--     and the next scheduled run is pending. This value doesn\'t apply to
--     one-time jobs.
--
-- -   PAUSED - Macie started running the job but additional processing
--     would exceed the monthly sensitive data discovery quota for your
--     account or one or more member accounts that the job analyzes data
--     for.
--
-- -   RUNNING - For a one-time job, the job is in progress. For a
--     recurring job, a scheduled run is in progress.
--
-- -   USER_PAUSED - You paused the job. If you paused the job while it had
--     a status of RUNNING and you don\'t resume it within 30 days of
--     pausing it, the job or job run will expire and be cancelled,
--     depending on the job\'s type. To check the expiration date, refer to
--     the UserPausedDetails.jobExpiresAt property.
describeClassificationJobResponse_jobStatus :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobStatus)
describeClassificationJobResponse_jobStatus :: Lens' DescribeClassificationJobResponse (Maybe JobStatus)
describeClassificationJobResponse_jobStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe JobStatus
jobStatus :: Maybe JobStatus
$sel:jobStatus:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobStatus
jobStatus} -> Maybe JobStatus
jobStatus) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe JobStatus
a -> DescribeClassificationJobResponse
s {$sel:jobStatus:DescribeClassificationJobResponse' :: Maybe JobStatus
jobStatus = Maybe JobStatus
a} :: DescribeClassificationJobResponse)

-- | The schedule for running the job. Possible values are:
--
-- -   ONE_TIME - The job runs only once.
--
-- -   SCHEDULED - The job runs on a daily, weekly, or monthly basis. The
--     scheduleFrequency property indicates the recurrence pattern for the
--     job.
describeClassificationJobResponse_jobType :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobType)
describeClassificationJobResponse_jobType :: Lens' DescribeClassificationJobResponse (Maybe JobType)
describeClassificationJobResponse_jobType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe JobType
jobType :: Maybe JobType
$sel:jobType:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobType
jobType} -> Maybe JobType
jobType) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe JobType
a -> DescribeClassificationJobResponse
s {$sel:jobType:DescribeClassificationJobResponse' :: Maybe JobType
jobType = Maybe JobType
a} :: DescribeClassificationJobResponse)

-- | Specifies whether any account- or bucket-level access errors occurred
-- when the job ran. For a recurring job, this value indicates the error
-- status of the job\'s most recent run.
describeClassificationJobResponse_lastRunErrorStatus :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe LastRunErrorStatus)
describeClassificationJobResponse_lastRunErrorStatus :: Lens' DescribeClassificationJobResponse (Maybe LastRunErrorStatus)
describeClassificationJobResponse_lastRunErrorStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe LastRunErrorStatus
lastRunErrorStatus :: Maybe LastRunErrorStatus
$sel:lastRunErrorStatus:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe LastRunErrorStatus
lastRunErrorStatus} -> Maybe LastRunErrorStatus
lastRunErrorStatus) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe LastRunErrorStatus
a -> DescribeClassificationJobResponse
s {$sel:lastRunErrorStatus:DescribeClassificationJobResponse' :: Maybe LastRunErrorStatus
lastRunErrorStatus = Maybe LastRunErrorStatus
a} :: DescribeClassificationJobResponse)

-- | The date and time, in UTC and extended ISO 8601 format, when the job
-- started. If the job is a recurring job, this value indicates when the
-- most recent run started or, if the job hasn\'t run yet, when the job was
-- created.
describeClassificationJobResponse_lastRunTime :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.UTCTime)
describeClassificationJobResponse_lastRunTime :: Lens' DescribeClassificationJobResponse (Maybe UTCTime)
describeClassificationJobResponse_lastRunTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe ISO8601
lastRunTime :: Maybe ISO8601
$sel:lastRunTime:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe ISO8601
lastRunTime} -> Maybe ISO8601
lastRunTime) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe ISO8601
a -> DescribeClassificationJobResponse
s {$sel:lastRunTime:DescribeClassificationJobResponse' :: Maybe ISO8601
lastRunTime = Maybe ISO8601
a} :: DescribeClassificationJobResponse) 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

-- | An array of unique identifiers, one for each managed data identifier
-- that the job is explicitly configured to include (use) or exclude (not
-- use) when it analyzes data. Inclusion or exclusion depends on the
-- managed data identifier selection type specified for the job
-- (managedDataIdentifierSelector). This value is null if the job\'s
-- managed data identifier selection type is ALL or the job uses only
-- custom data identifiers (customDataIdentifierIds) to analyze data.
describeClassificationJobResponse_managedDataIdentifierIds :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe [Prelude.Text])
describeClassificationJobResponse_managedDataIdentifierIds :: Lens' DescribeClassificationJobResponse (Maybe [Text])
describeClassificationJobResponse_managedDataIdentifierIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe [Text]
managedDataIdentifierIds :: Maybe [Text]
$sel:managedDataIdentifierIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
managedDataIdentifierIds} -> Maybe [Text]
managedDataIdentifierIds) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe [Text]
a -> DescribeClassificationJobResponse
s {$sel:managedDataIdentifierIds:DescribeClassificationJobResponse' :: Maybe [Text]
managedDataIdentifierIds = Maybe [Text]
a} :: DescribeClassificationJobResponse) 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 selection type that determines which managed data identifiers the
-- job uses to analyze data. Possible values are:
--
-- -   ALL - Use all the managed data identifiers that Amazon Macie
--     provides.
--
-- -   EXCLUDE - Use all the managed data identifiers that Macie provides
--     except the managed data identifiers specified by the
--     managedDataIdentifierIds property.
--
-- -   INCLUDE - Use only the managed data identifiers specified by the
--     managedDataIdentifierIds property.
--
-- -   NONE - Don\'t use any managed data identifiers.
--
-- If this value is null, the job uses all managed data identifiers. If
-- this value is null, ALL, or EXCLUDE for a recurring job, the job also
-- uses new managed data identifiers as they are released.
describeClassificationJobResponse_managedDataIdentifierSelector :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe ManagedDataIdentifierSelector)
describeClassificationJobResponse_managedDataIdentifierSelector :: Lens'
  DescribeClassificationJobResponse
  (Maybe ManagedDataIdentifierSelector)
describeClassificationJobResponse_managedDataIdentifierSelector = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector :: Maybe ManagedDataIdentifierSelector
$sel:managedDataIdentifierSelector:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse
-> Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector} -> Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe ManagedDataIdentifierSelector
a -> DescribeClassificationJobResponse
s {$sel:managedDataIdentifierSelector:DescribeClassificationJobResponse' :: Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector = Maybe ManagedDataIdentifierSelector
a} :: DescribeClassificationJobResponse)

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

-- | The S3 buckets that contain the objects to analyze, and the scope of
-- that analysis.
describeClassificationJobResponse_s3JobDefinition :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe S3JobDefinition)
describeClassificationJobResponse_s3JobDefinition :: Lens' DescribeClassificationJobResponse (Maybe S3JobDefinition)
describeClassificationJobResponse_s3JobDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe S3JobDefinition
s3JobDefinition :: Maybe S3JobDefinition
$sel:s3JobDefinition:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe S3JobDefinition
s3JobDefinition} -> Maybe S3JobDefinition
s3JobDefinition) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe S3JobDefinition
a -> DescribeClassificationJobResponse
s {$sel:s3JobDefinition:DescribeClassificationJobResponse' :: Maybe S3JobDefinition
s3JobDefinition = Maybe S3JobDefinition
a} :: DescribeClassificationJobResponse)

-- | The sampling depth, as a percentage, that determines the percentage of
-- eligible objects that the job analyzes.
describeClassificationJobResponse_samplingPercentage :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Prelude.Int)
describeClassificationJobResponse_samplingPercentage :: Lens' DescribeClassificationJobResponse (Maybe Int)
describeClassificationJobResponse_samplingPercentage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Int
samplingPercentage :: Maybe Int
$sel:samplingPercentage:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Int
samplingPercentage} -> Maybe Int
samplingPercentage) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Int
a -> DescribeClassificationJobResponse
s {$sel:samplingPercentage:DescribeClassificationJobResponse' :: Maybe Int
samplingPercentage = Maybe Int
a} :: DescribeClassificationJobResponse)

-- | The recurrence pattern for running the job. This value is null if the
-- job is configured to run only once.
describeClassificationJobResponse_scheduleFrequency :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe JobScheduleFrequency)
describeClassificationJobResponse_scheduleFrequency :: Lens'
  DescribeClassificationJobResponse (Maybe JobScheduleFrequency)
describeClassificationJobResponse_scheduleFrequency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe JobScheduleFrequency
scheduleFrequency :: Maybe JobScheduleFrequency
$sel:scheduleFrequency:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobScheduleFrequency
scheduleFrequency} -> Maybe JobScheduleFrequency
scheduleFrequency) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe JobScheduleFrequency
a -> DescribeClassificationJobResponse
s {$sel:scheduleFrequency:DescribeClassificationJobResponse' :: Maybe JobScheduleFrequency
scheduleFrequency = Maybe JobScheduleFrequency
a} :: DescribeClassificationJobResponse)

-- | The number of times that the job has run and processing statistics for
-- the job\'s current run.
describeClassificationJobResponse_statistics :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe Statistics)
describeClassificationJobResponse_statistics :: Lens' DescribeClassificationJobResponse (Maybe Statistics)
describeClassificationJobResponse_statistics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe Statistics
statistics :: Maybe Statistics
$sel:statistics:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Statistics
statistics} -> Maybe Statistics
statistics) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe Statistics
a -> DescribeClassificationJobResponse
s {$sel:statistics:DescribeClassificationJobResponse' :: Maybe Statistics
statistics = Maybe Statistics
a} :: DescribeClassificationJobResponse)

-- | A map of key-value pairs that specifies which tags (keys and values) are
-- associated with the classification job.
describeClassificationJobResponse_tags :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeClassificationJobResponse_tags :: Lens' DescribeClassificationJobResponse (Maybe (HashMap Text Text))
describeClassificationJobResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeClassificationJobResponse
s {$sel:tags:DescribeClassificationJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeClassificationJobResponse) 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

-- | If the current status of the job is USER_PAUSED, specifies when the job
-- was paused and when the job or job run will expire and be cancelled if
-- it isn\'t resumed. This value is present only if the value for jobStatus
-- is USER_PAUSED.
describeClassificationJobResponse_userPausedDetails :: Lens.Lens' DescribeClassificationJobResponse (Prelude.Maybe UserPausedDetails)
describeClassificationJobResponse_userPausedDetails :: Lens' DescribeClassificationJobResponse (Maybe UserPausedDetails)
describeClassificationJobResponse_userPausedDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClassificationJobResponse' {Maybe UserPausedDetails
userPausedDetails :: Maybe UserPausedDetails
$sel:userPausedDetails:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe UserPausedDetails
userPausedDetails} -> Maybe UserPausedDetails
userPausedDetails) (\s :: DescribeClassificationJobResponse
s@DescribeClassificationJobResponse' {} Maybe UserPausedDetails
a -> DescribeClassificationJobResponse
s {$sel:userPausedDetails:DescribeClassificationJobResponse' :: Maybe UserPausedDetails
userPausedDetails = Maybe UserPausedDetails
a} :: DescribeClassificationJobResponse)

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

instance
  Prelude.NFData
    DescribeClassificationJobResponse
  where
  rnf :: DescribeClassificationJobResponse -> ()
rnf DescribeClassificationJobResponse' {Int
Maybe Bool
Maybe Int
Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe ISO8601
Maybe JobStatus
Maybe JobType
Maybe LastRunErrorStatus
Maybe ManagedDataIdentifierSelector
Maybe Statistics
Maybe S3JobDefinition
Maybe UserPausedDetails
Maybe JobScheduleFrequency
httpStatus :: Int
userPausedDetails :: Maybe UserPausedDetails
tags :: Maybe (HashMap Text Text)
statistics :: Maybe Statistics
scheduleFrequency :: Maybe JobScheduleFrequency
samplingPercentage :: Maybe Int
s3JobDefinition :: Maybe S3JobDefinition
name :: Maybe Text
managedDataIdentifierSelector :: Maybe ManagedDataIdentifierSelector
managedDataIdentifierIds :: Maybe [Text]
lastRunTime :: Maybe ISO8601
lastRunErrorStatus :: Maybe LastRunErrorStatus
jobType :: Maybe JobType
jobStatus :: Maybe JobStatus
jobId :: Maybe Text
jobArn :: Maybe Text
initialRun :: Maybe Bool
description :: Maybe Text
customDataIdentifierIds :: Maybe [Text]
createdAt :: Maybe ISO8601
clientToken :: Maybe Text
allowListIds :: Maybe [Text]
$sel:httpStatus:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Int
$sel:userPausedDetails:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe UserPausedDetails
$sel:tags:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe (HashMap Text Text)
$sel:statistics:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Statistics
$sel:scheduleFrequency:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobScheduleFrequency
$sel:samplingPercentage:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Int
$sel:s3JobDefinition:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe S3JobDefinition
$sel:name:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
$sel:managedDataIdentifierSelector:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse
-> Maybe ManagedDataIdentifierSelector
$sel:managedDataIdentifierIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
$sel:lastRunTime:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe ISO8601
$sel:lastRunErrorStatus:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe LastRunErrorStatus
$sel:jobType:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobType
$sel:jobStatus:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe JobStatus
$sel:jobId:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
$sel:jobArn:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
$sel:initialRun:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Bool
$sel:description:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
$sel:customDataIdentifierIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
$sel:createdAt:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe ISO8601
$sel:clientToken:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe Text
$sel:allowListIds:DescribeClassificationJobResponse' :: DescribeClassificationJobResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
allowListIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
customDataIdentifierIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
initialRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobStatus
jobStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobType
jobType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LastRunErrorStatus
lastRunErrorStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
lastRunTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
managedDataIdentifierIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ManagedDataIdentifierSelector
managedDataIdentifierSelector
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3JobDefinition
s3JobDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
samplingPercentage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobScheduleFrequency
scheduleFrequency
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Statistics
statistics
      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 UserPausedDetails
userPausedDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus