{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

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

-- |
-- Module      : Amazonka.Comprehend.Types.SentimentDetectionJobProperties
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Comprehend.Types.SentimentDetectionJobProperties where

import Amazonka.Comprehend.Types.InputDataConfig
import Amazonka.Comprehend.Types.JobStatus
import Amazonka.Comprehend.Types.LanguageCode
import Amazonka.Comprehend.Types.OutputDataConfig
import Amazonka.Comprehend.Types.VpcConfig
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Provides information about a sentiment detection job.
--
-- /See:/ 'newSentimentDetectionJobProperties' smart constructor.
data SentimentDetectionJobProperties = SentimentDetectionJobProperties'
  { -- | The Amazon Resource Name (ARN) that gives Amazon Comprehend read access
    -- to your input data.
    SentimentDetectionJobProperties -> Maybe Text
dataAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The time that the sentiment detection job ended.
    SentimentDetectionJobProperties -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | The input data configuration that you supplied when you created the
    -- sentiment detection job.
    SentimentDetectionJobProperties -> Maybe InputDataConfig
inputDataConfig :: Prelude.Maybe InputDataConfig,
    -- | The Amazon Resource Name (ARN) of the sentiment detection job. It is a
    -- unique, fully qualified identifier for the job. It includes the AWS
    -- account, Region, and the job ID. The format of the ARN is as follows:
    --
    -- @arn:\<partition>:comprehend:\<region>:\<account-id>:sentiment-detection-job\/\<job-id>@
    --
    -- The following is an example job ARN:
    --
    -- @arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job\/1234abcd12ab34cd56ef1234567890ab@
    SentimentDetectionJobProperties -> Maybe Text
jobArn :: Prelude.Maybe Prelude.Text,
    -- | The identifier assigned to the sentiment detection job.
    SentimentDetectionJobProperties -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | The name that you assigned to the sentiment detection job
    SentimentDetectionJobProperties -> Maybe Text
jobName :: Prelude.Maybe Prelude.Text,
    -- | The current status of the sentiment detection job. If the status is
    -- @FAILED@, the @Messages@ field shows the reason for the failure.
    SentimentDetectionJobProperties -> Maybe JobStatus
jobStatus :: Prelude.Maybe JobStatus,
    -- | The language code of the input documents.
    SentimentDetectionJobProperties -> Maybe LanguageCode
languageCode :: Prelude.Maybe LanguageCode,
    -- | A description of the status of a job.
    SentimentDetectionJobProperties -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
    -- | The output data configuration that you supplied when you created the
    -- sentiment detection job.
    SentimentDetectionJobProperties -> Maybe OutputDataConfig
outputDataConfig :: Prelude.Maybe OutputDataConfig,
    -- | The time that the sentiment detection job was submitted for processing.
    SentimentDetectionJobProperties -> Maybe POSIX
submitTime :: Prelude.Maybe Data.POSIX,
    -- | ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
    -- uses to encrypt data on the storage volume attached to the ML compute
    -- instance(s) that process the analysis job. The VolumeKmsKeyId can be
    -- either of the following formats:
    --
    -- -   KMS Key ID: @\"1234abcd-12ab-34cd-56ef-1234567890ab\"@
    --
    -- -   Amazon Resource Name (ARN) of a KMS Key:
    --     @\"arn:aws:kms:us-west-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab\"@
    SentimentDetectionJobProperties -> Maybe Text
volumeKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Configuration parameters for a private Virtual Private Cloud (VPC)
    -- containing the resources you are using for your sentiment detection job.
    -- For more information, see
    -- <https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC>.
    SentimentDetectionJobProperties -> Maybe VpcConfig
vpcConfig :: Prelude.Maybe VpcConfig
  }
  deriving (SentimentDetectionJobProperties
-> SentimentDetectionJobProperties -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SentimentDetectionJobProperties
-> SentimentDetectionJobProperties -> Bool
$c/= :: SentimentDetectionJobProperties
-> SentimentDetectionJobProperties -> Bool
== :: SentimentDetectionJobProperties
-> SentimentDetectionJobProperties -> Bool
$c== :: SentimentDetectionJobProperties
-> SentimentDetectionJobProperties -> Bool
Prelude.Eq, ReadPrec [SentimentDetectionJobProperties]
ReadPrec SentimentDetectionJobProperties
Int -> ReadS SentimentDetectionJobProperties
ReadS [SentimentDetectionJobProperties]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SentimentDetectionJobProperties]
$creadListPrec :: ReadPrec [SentimentDetectionJobProperties]
readPrec :: ReadPrec SentimentDetectionJobProperties
$creadPrec :: ReadPrec SentimentDetectionJobProperties
readList :: ReadS [SentimentDetectionJobProperties]
$creadList :: ReadS [SentimentDetectionJobProperties]
readsPrec :: Int -> ReadS SentimentDetectionJobProperties
$creadsPrec :: Int -> ReadS SentimentDetectionJobProperties
Prelude.Read, Int -> SentimentDetectionJobProperties -> ShowS
[SentimentDetectionJobProperties] -> ShowS
SentimentDetectionJobProperties -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SentimentDetectionJobProperties] -> ShowS
$cshowList :: [SentimentDetectionJobProperties] -> ShowS
show :: SentimentDetectionJobProperties -> String
$cshow :: SentimentDetectionJobProperties -> String
showsPrec :: Int -> SentimentDetectionJobProperties -> ShowS
$cshowsPrec :: Int -> SentimentDetectionJobProperties -> ShowS
Prelude.Show, forall x.
Rep SentimentDetectionJobProperties x
-> SentimentDetectionJobProperties
forall x.
SentimentDetectionJobProperties
-> Rep SentimentDetectionJobProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SentimentDetectionJobProperties x
-> SentimentDetectionJobProperties
$cfrom :: forall x.
SentimentDetectionJobProperties
-> Rep SentimentDetectionJobProperties x
Prelude.Generic)

-- |
-- Create a value of 'SentimentDetectionJobProperties' 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:
--
-- 'dataAccessRoleArn', 'sentimentDetectionJobProperties_dataAccessRoleArn' - The Amazon Resource Name (ARN) that gives Amazon Comprehend read access
-- to your input data.
--
-- 'endTime', 'sentimentDetectionJobProperties_endTime' - The time that the sentiment detection job ended.
--
-- 'inputDataConfig', 'sentimentDetectionJobProperties_inputDataConfig' - The input data configuration that you supplied when you created the
-- sentiment detection job.
--
-- 'jobArn', 'sentimentDetectionJobProperties_jobArn' - The Amazon Resource Name (ARN) of the sentiment detection job. It is a
-- unique, fully qualified identifier for the job. It includes the AWS
-- account, Region, and the job ID. The format of the ARN is as follows:
--
-- @arn:\<partition>:comprehend:\<region>:\<account-id>:sentiment-detection-job\/\<job-id>@
--
-- The following is an example job ARN:
--
-- @arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job\/1234abcd12ab34cd56ef1234567890ab@
--
-- 'jobId', 'sentimentDetectionJobProperties_jobId' - The identifier assigned to the sentiment detection job.
--
-- 'jobName', 'sentimentDetectionJobProperties_jobName' - The name that you assigned to the sentiment detection job
--
-- 'jobStatus', 'sentimentDetectionJobProperties_jobStatus' - The current status of the sentiment detection job. If the status is
-- @FAILED@, the @Messages@ field shows the reason for the failure.
--
-- 'languageCode', 'sentimentDetectionJobProperties_languageCode' - The language code of the input documents.
--
-- 'message', 'sentimentDetectionJobProperties_message' - A description of the status of a job.
--
-- 'outputDataConfig', 'sentimentDetectionJobProperties_outputDataConfig' - The output data configuration that you supplied when you created the
-- sentiment detection job.
--
-- 'submitTime', 'sentimentDetectionJobProperties_submitTime' - The time that the sentiment detection job was submitted for processing.
--
-- 'volumeKmsKeyId', 'sentimentDetectionJobProperties_volumeKmsKeyId' - ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
-- uses to encrypt data on the storage volume attached to the ML compute
-- instance(s) that process the analysis job. The VolumeKmsKeyId can be
-- either of the following formats:
--
-- -   KMS Key ID: @\"1234abcd-12ab-34cd-56ef-1234567890ab\"@
--
-- -   Amazon Resource Name (ARN) of a KMS Key:
--     @\"arn:aws:kms:us-west-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab\"@
--
-- 'vpcConfig', 'sentimentDetectionJobProperties_vpcConfig' - Configuration parameters for a private Virtual Private Cloud (VPC)
-- containing the resources you are using for your sentiment detection job.
-- For more information, see
-- <https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC>.
newSentimentDetectionJobProperties ::
  SentimentDetectionJobProperties
newSentimentDetectionJobProperties :: SentimentDetectionJobProperties
newSentimentDetectionJobProperties =
  SentimentDetectionJobProperties'
    { $sel:dataAccessRoleArn:SentimentDetectionJobProperties' :: Maybe Text
dataAccessRoleArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:SentimentDetectionJobProperties' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:inputDataConfig:SentimentDetectionJobProperties' :: Maybe InputDataConfig
inputDataConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:jobArn:SentimentDetectionJobProperties' :: Maybe Text
jobArn = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:SentimentDetectionJobProperties' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:jobName:SentimentDetectionJobProperties' :: Maybe Text
jobName = forall a. Maybe a
Prelude.Nothing,
      $sel:jobStatus:SentimentDetectionJobProperties' :: Maybe JobStatus
jobStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:languageCode:SentimentDetectionJobProperties' :: Maybe LanguageCode
languageCode = forall a. Maybe a
Prelude.Nothing,
      $sel:message:SentimentDetectionJobProperties' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
      $sel:outputDataConfig:SentimentDetectionJobProperties' :: Maybe OutputDataConfig
outputDataConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:submitTime:SentimentDetectionJobProperties' :: Maybe POSIX
submitTime = forall a. Maybe a
Prelude.Nothing,
      $sel:volumeKmsKeyId:SentimentDetectionJobProperties' :: Maybe Text
volumeKmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:SentimentDetectionJobProperties' :: Maybe VpcConfig
vpcConfig = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) that gives Amazon Comprehend read access
-- to your input data.
sentimentDetectionJobProperties_dataAccessRoleArn :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_dataAccessRoleArn :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_dataAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
dataAccessRoleArn :: Maybe Text
$sel:dataAccessRoleArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
dataAccessRoleArn} -> Maybe Text
dataAccessRoleArn) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:dataAccessRoleArn:SentimentDetectionJobProperties' :: Maybe Text
dataAccessRoleArn = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | The time that the sentiment detection job ended.
sentimentDetectionJobProperties_endTime :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.UTCTime)
sentimentDetectionJobProperties_endTime :: Lens' SentimentDetectionJobProperties (Maybe UTCTime)
sentimentDetectionJobProperties_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe POSIX
a -> SentimentDetectionJobProperties
s {$sel:endTime:SentimentDetectionJobProperties' :: Maybe POSIX
endTime = Maybe POSIX
a} :: SentimentDetectionJobProperties) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The input data configuration that you supplied when you created the
-- sentiment detection job.
sentimentDetectionJobProperties_inputDataConfig :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe InputDataConfig)
sentimentDetectionJobProperties_inputDataConfig :: Lens' SentimentDetectionJobProperties (Maybe InputDataConfig)
sentimentDetectionJobProperties_inputDataConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe InputDataConfig
inputDataConfig :: Maybe InputDataConfig
$sel:inputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe InputDataConfig
inputDataConfig} -> Maybe InputDataConfig
inputDataConfig) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe InputDataConfig
a -> SentimentDetectionJobProperties
s {$sel:inputDataConfig:SentimentDetectionJobProperties' :: Maybe InputDataConfig
inputDataConfig = Maybe InputDataConfig
a} :: SentimentDetectionJobProperties)

-- | The Amazon Resource Name (ARN) of the sentiment detection job. It is a
-- unique, fully qualified identifier for the job. It includes the AWS
-- account, Region, and the job ID. The format of the ARN is as follows:
--
-- @arn:\<partition>:comprehend:\<region>:\<account-id>:sentiment-detection-job\/\<job-id>@
--
-- The following is an example job ARN:
--
-- @arn:aws:comprehend:us-west-2:111122223333:sentiment-detection-job\/1234abcd12ab34cd56ef1234567890ab@
sentimentDetectionJobProperties_jobArn :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_jobArn :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_jobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
jobArn :: Maybe Text
$sel:jobArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
jobArn} -> Maybe Text
jobArn) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:jobArn:SentimentDetectionJobProperties' :: Maybe Text
jobArn = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | The identifier assigned to the sentiment detection job.
sentimentDetectionJobProperties_jobId :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_jobId :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
jobId :: Maybe Text
$sel:jobId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:jobId:SentimentDetectionJobProperties' :: Maybe Text
jobId = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | The name that you assigned to the sentiment detection job
sentimentDetectionJobProperties_jobName :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_jobName :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_jobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
jobName :: Maybe Text
$sel:jobName:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
jobName} -> Maybe Text
jobName) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:jobName:SentimentDetectionJobProperties' :: Maybe Text
jobName = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | The current status of the sentiment detection job. If the status is
-- @FAILED@, the @Messages@ field shows the reason for the failure.
sentimentDetectionJobProperties_jobStatus :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe JobStatus)
sentimentDetectionJobProperties_jobStatus :: Lens' SentimentDetectionJobProperties (Maybe JobStatus)
sentimentDetectionJobProperties_jobStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe JobStatus
jobStatus :: Maybe JobStatus
$sel:jobStatus:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe JobStatus
jobStatus} -> Maybe JobStatus
jobStatus) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe JobStatus
a -> SentimentDetectionJobProperties
s {$sel:jobStatus:SentimentDetectionJobProperties' :: Maybe JobStatus
jobStatus = Maybe JobStatus
a} :: SentimentDetectionJobProperties)

-- | The language code of the input documents.
sentimentDetectionJobProperties_languageCode :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe LanguageCode)
sentimentDetectionJobProperties_languageCode :: Lens' SentimentDetectionJobProperties (Maybe LanguageCode)
sentimentDetectionJobProperties_languageCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe LanguageCode
languageCode :: Maybe LanguageCode
$sel:languageCode:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe LanguageCode
languageCode} -> Maybe LanguageCode
languageCode) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe LanguageCode
a -> SentimentDetectionJobProperties
s {$sel:languageCode:SentimentDetectionJobProperties' :: Maybe LanguageCode
languageCode = Maybe LanguageCode
a} :: SentimentDetectionJobProperties)

-- | A description of the status of a job.
sentimentDetectionJobProperties_message :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_message :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_message = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
message :: Maybe Text
$sel:message:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
message} -> Maybe Text
message) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:message:SentimentDetectionJobProperties' :: Maybe Text
message = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | The output data configuration that you supplied when you created the
-- sentiment detection job.
sentimentDetectionJobProperties_outputDataConfig :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe OutputDataConfig)
sentimentDetectionJobProperties_outputDataConfig :: Lens' SentimentDetectionJobProperties (Maybe OutputDataConfig)
sentimentDetectionJobProperties_outputDataConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe OutputDataConfig
outputDataConfig :: Maybe OutputDataConfig
$sel:outputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe OutputDataConfig
outputDataConfig} -> Maybe OutputDataConfig
outputDataConfig) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe OutputDataConfig
a -> SentimentDetectionJobProperties
s {$sel:outputDataConfig:SentimentDetectionJobProperties' :: Maybe OutputDataConfig
outputDataConfig = Maybe OutputDataConfig
a} :: SentimentDetectionJobProperties)

-- | The time that the sentiment detection job was submitted for processing.
sentimentDetectionJobProperties_submitTime :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.UTCTime)
sentimentDetectionJobProperties_submitTime :: Lens' SentimentDetectionJobProperties (Maybe UTCTime)
sentimentDetectionJobProperties_submitTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe POSIX
submitTime :: Maybe POSIX
$sel:submitTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
submitTime} -> Maybe POSIX
submitTime) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe POSIX
a -> SentimentDetectionJobProperties
s {$sel:submitTime:SentimentDetectionJobProperties' :: Maybe POSIX
submitTime = Maybe POSIX
a} :: SentimentDetectionJobProperties) 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

-- | ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
-- uses to encrypt data on the storage volume attached to the ML compute
-- instance(s) that process the analysis job. The VolumeKmsKeyId can be
-- either of the following formats:
--
-- -   KMS Key ID: @\"1234abcd-12ab-34cd-56ef-1234567890ab\"@
--
-- -   Amazon Resource Name (ARN) of a KMS Key:
--     @\"arn:aws:kms:us-west-2:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab\"@
sentimentDetectionJobProperties_volumeKmsKeyId :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe Prelude.Text)
sentimentDetectionJobProperties_volumeKmsKeyId :: Lens' SentimentDetectionJobProperties (Maybe Text)
sentimentDetectionJobProperties_volumeKmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe Text
volumeKmsKeyId :: Maybe Text
$sel:volumeKmsKeyId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
volumeKmsKeyId} -> Maybe Text
volumeKmsKeyId) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe Text
a -> SentimentDetectionJobProperties
s {$sel:volumeKmsKeyId:SentimentDetectionJobProperties' :: Maybe Text
volumeKmsKeyId = Maybe Text
a} :: SentimentDetectionJobProperties)

-- | Configuration parameters for a private Virtual Private Cloud (VPC)
-- containing the resources you are using for your sentiment detection job.
-- For more information, see
-- <https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC>.
sentimentDetectionJobProperties_vpcConfig :: Lens.Lens' SentimentDetectionJobProperties (Prelude.Maybe VpcConfig)
sentimentDetectionJobProperties_vpcConfig :: Lens' SentimentDetectionJobProperties (Maybe VpcConfig)
sentimentDetectionJobProperties_vpcConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SentimentDetectionJobProperties' {Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
$sel:vpcConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe VpcConfig
vpcConfig} -> Maybe VpcConfig
vpcConfig) (\s :: SentimentDetectionJobProperties
s@SentimentDetectionJobProperties' {} Maybe VpcConfig
a -> SentimentDetectionJobProperties
s {$sel:vpcConfig:SentimentDetectionJobProperties' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
a} :: SentimentDetectionJobProperties)

instance
  Data.FromJSON
    SentimentDetectionJobProperties
  where
  parseJSON :: Value -> Parser SentimentDetectionJobProperties
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"SentimentDetectionJobProperties"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe InputDataConfig
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe JobStatus
-> Maybe LanguageCode
-> Maybe Text
-> Maybe OutputDataConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe VpcConfig
-> SentimentDetectionJobProperties
SentimentDetectionJobProperties'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataAccessRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EndTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InputDataConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (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 -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"JobName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"LanguageCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Message")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OutputDataConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SubmitTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VolumeKmsKeyId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VpcConfig")
      )

instance
  Prelude.Hashable
    SentimentDetectionJobProperties
  where
  hashWithSalt :: Int -> SentimentDetectionJobProperties -> Int
hashWithSalt
    Int
_salt
    SentimentDetectionJobProperties' {Maybe Text
Maybe POSIX
Maybe InputDataConfig
Maybe JobStatus
Maybe LanguageCode
Maybe OutputDataConfig
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
volumeKmsKeyId :: Maybe Text
submitTime :: Maybe POSIX
outputDataConfig :: Maybe OutputDataConfig
message :: Maybe Text
languageCode :: Maybe LanguageCode
jobStatus :: Maybe JobStatus
jobName :: Maybe Text
jobId :: Maybe Text
jobArn :: Maybe Text
inputDataConfig :: Maybe InputDataConfig
endTime :: Maybe POSIX
dataAccessRoleArn :: Maybe Text
$sel:vpcConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe VpcConfig
$sel:volumeKmsKeyId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:submitTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
$sel:outputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe OutputDataConfig
$sel:message:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:languageCode:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe LanguageCode
$sel:jobStatus:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe JobStatus
$sel:jobName:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:jobId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:jobArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:inputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe InputDataConfig
$sel:endTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
$sel:dataAccessRoleArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dataAccessRoleArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InputDataConfig
inputDataConfig
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JobStatus
jobStatus
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LanguageCode
languageCode
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
message
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OutputDataConfig
outputDataConfig
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
submitTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
volumeKmsKeyId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VpcConfig
vpcConfig

instance
  Prelude.NFData
    SentimentDetectionJobProperties
  where
  rnf :: SentimentDetectionJobProperties -> ()
rnf SentimentDetectionJobProperties' {Maybe Text
Maybe POSIX
Maybe InputDataConfig
Maybe JobStatus
Maybe LanguageCode
Maybe OutputDataConfig
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
volumeKmsKeyId :: Maybe Text
submitTime :: Maybe POSIX
outputDataConfig :: Maybe OutputDataConfig
message :: Maybe Text
languageCode :: Maybe LanguageCode
jobStatus :: Maybe JobStatus
jobName :: Maybe Text
jobId :: Maybe Text
jobArn :: Maybe Text
inputDataConfig :: Maybe InputDataConfig
endTime :: Maybe POSIX
dataAccessRoleArn :: Maybe Text
$sel:vpcConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe VpcConfig
$sel:volumeKmsKeyId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:submitTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
$sel:outputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe OutputDataConfig
$sel:message:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:languageCode:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe LanguageCode
$sel:jobStatus:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe JobStatus
$sel:jobName:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:jobId:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:jobArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
$sel:inputDataConfig:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe InputDataConfig
$sel:endTime:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe POSIX
$sel:dataAccessRoleArn:SentimentDetectionJobProperties' :: SentimentDetectionJobProperties -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InputDataConfig
inputDataConfig
      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 Text
jobName
      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 LanguageCode
languageCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
message
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OutputDataConfig
outputDataConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
submitTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
volumeKmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VpcConfig
vpcConfig