{-# 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.EntityRecognizerProperties
-- 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.EntityRecognizerProperties where

import Amazonka.Comprehend.Types.EntityRecognizerInputDataConfig
import Amazonka.Comprehend.Types.EntityRecognizerMetadata
import Amazonka.Comprehend.Types.LanguageCode
import Amazonka.Comprehend.Types.ModelStatus
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

-- | Describes information about an entity recognizer.
--
-- /See:/ 'newEntityRecognizerProperties' smart constructor.
data EntityRecognizerProperties = EntityRecognizerProperties'
  { -- | The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM)
    -- role that grants Amazon Comprehend read access to your input data.
    EntityRecognizerProperties -> Maybe Text
dataAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The time that the recognizer creation completed.
    EntityRecognizerProperties -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) that identifies the entity recognizer.
    EntityRecognizerProperties -> Maybe Text
entityRecognizerArn :: Prelude.Maybe Prelude.Text,
    -- | The input data properties of an entity recognizer.
    EntityRecognizerProperties -> Maybe EntityRecognizerInputDataConfig
inputDataConfig :: Prelude.Maybe EntityRecognizerInputDataConfig,
    -- | The language of the input documents. All documents must be in the same
    -- language. Only English (\"en\") is currently supported.
    EntityRecognizerProperties -> Maybe LanguageCode
languageCode :: Prelude.Maybe LanguageCode,
    -- | A description of the status of the recognizer.
    EntityRecognizerProperties -> Maybe Text
message :: Prelude.Maybe Prelude.Text,
    -- | ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
    -- uses to encrypt trained custom models. The ModelKmsKeyId 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\"@
    EntityRecognizerProperties -> Maybe Text
modelKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Provides information about an entity recognizer.
    EntityRecognizerProperties
-> Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata :: Prelude.Maybe (Data.Sensitive EntityRecognizerMetadata),
    -- | The Amazon Resource Name (ARN) of the source model. This model was
    -- imported from a different AWS account to create the entity recognizer
    -- model in your AWS account.
    EntityRecognizerProperties -> Maybe Text
sourceModelArn :: Prelude.Maybe Prelude.Text,
    -- | Provides the status of the entity recognizer.
    EntityRecognizerProperties -> Maybe ModelStatus
status :: Prelude.Maybe ModelStatus,
    -- | The time that the recognizer was submitted for processing.
    EntityRecognizerProperties -> Maybe POSIX
submitTime :: Prelude.Maybe Data.POSIX,
    -- | The time that training of the entity recognizer was completed.
    EntityRecognizerProperties -> Maybe POSIX
trainingEndTime :: Prelude.Maybe Data.POSIX,
    -- | The time that training of the entity recognizer started.
    EntityRecognizerProperties -> Maybe POSIX
trainingStartTime :: Prelude.Maybe Data.POSIX,
    -- | The version name you assigned to the entity recognizer.
    EntityRecognizerProperties -> Maybe Text
versionName :: Prelude.Maybe Prelude.Text,
    -- | 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\"@
    EntityRecognizerProperties -> Maybe Text
volumeKmsKeyId :: Prelude.Maybe Prelude.Text,
    -- | Configuration parameters for a private Virtual Private Cloud (VPC)
    -- containing the resources you are using for your custom entity
    -- recognizer. For more information, see
    -- <https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC>.
    EntityRecognizerProperties -> Maybe VpcConfig
vpcConfig :: Prelude.Maybe VpcConfig
  }
  deriving (EntityRecognizerProperties -> EntityRecognizerProperties -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EntityRecognizerProperties -> EntityRecognizerProperties -> Bool
$c/= :: EntityRecognizerProperties -> EntityRecognizerProperties -> Bool
== :: EntityRecognizerProperties -> EntityRecognizerProperties -> Bool
$c== :: EntityRecognizerProperties -> EntityRecognizerProperties -> Bool
Prelude.Eq, Int -> EntityRecognizerProperties -> ShowS
[EntityRecognizerProperties] -> ShowS
EntityRecognizerProperties -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EntityRecognizerProperties] -> ShowS
$cshowList :: [EntityRecognizerProperties] -> ShowS
show :: EntityRecognizerProperties -> String
$cshow :: EntityRecognizerProperties -> String
showsPrec :: Int -> EntityRecognizerProperties -> ShowS
$cshowsPrec :: Int -> EntityRecognizerProperties -> ShowS
Prelude.Show, forall x.
Rep EntityRecognizerProperties x -> EntityRecognizerProperties
forall x.
EntityRecognizerProperties -> Rep EntityRecognizerProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EntityRecognizerProperties x -> EntityRecognizerProperties
$cfrom :: forall x.
EntityRecognizerProperties -> Rep EntityRecognizerProperties x
Prelude.Generic)

-- |
-- Create a value of 'EntityRecognizerProperties' 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', 'entityRecognizerProperties_dataAccessRoleArn' - The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM)
-- role that grants Amazon Comprehend read access to your input data.
--
-- 'endTime', 'entityRecognizerProperties_endTime' - The time that the recognizer creation completed.
--
-- 'entityRecognizerArn', 'entityRecognizerProperties_entityRecognizerArn' - The Amazon Resource Name (ARN) that identifies the entity recognizer.
--
-- 'inputDataConfig', 'entityRecognizerProperties_inputDataConfig' - The input data properties of an entity recognizer.
--
-- 'languageCode', 'entityRecognizerProperties_languageCode' - The language of the input documents. All documents must be in the same
-- language. Only English (\"en\") is currently supported.
--
-- 'message', 'entityRecognizerProperties_message' - A description of the status of the recognizer.
--
-- 'modelKmsKeyId', 'entityRecognizerProperties_modelKmsKeyId' - ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
-- uses to encrypt trained custom models. The ModelKmsKeyId 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\"@
--
-- 'recognizerMetadata', 'entityRecognizerProperties_recognizerMetadata' - Provides information about an entity recognizer.
--
-- 'sourceModelArn', 'entityRecognizerProperties_sourceModelArn' - The Amazon Resource Name (ARN) of the source model. This model was
-- imported from a different AWS account to create the entity recognizer
-- model in your AWS account.
--
-- 'status', 'entityRecognizerProperties_status' - Provides the status of the entity recognizer.
--
-- 'submitTime', 'entityRecognizerProperties_submitTime' - The time that the recognizer was submitted for processing.
--
-- 'trainingEndTime', 'entityRecognizerProperties_trainingEndTime' - The time that training of the entity recognizer was completed.
--
-- 'trainingStartTime', 'entityRecognizerProperties_trainingStartTime' - The time that training of the entity recognizer started.
--
-- 'versionName', 'entityRecognizerProperties_versionName' - The version name you assigned to the entity recognizer.
--
-- 'volumeKmsKeyId', 'entityRecognizerProperties_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', 'entityRecognizerProperties_vpcConfig' - Configuration parameters for a private Virtual Private Cloud (VPC)
-- containing the resources you are using for your custom entity
-- recognizer. For more information, see
-- <https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html Amazon VPC>.
newEntityRecognizerProperties ::
  EntityRecognizerProperties
newEntityRecognizerProperties :: EntityRecognizerProperties
newEntityRecognizerProperties =
  EntityRecognizerProperties'
    { $sel:dataAccessRoleArn:EntityRecognizerProperties' :: Maybe Text
dataAccessRoleArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:EntityRecognizerProperties' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
      $sel:entityRecognizerArn:EntityRecognizerProperties' :: Maybe Text
entityRecognizerArn = forall a. Maybe a
Prelude.Nothing,
      $sel:inputDataConfig:EntityRecognizerProperties' :: Maybe EntityRecognizerInputDataConfig
inputDataConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:languageCode:EntityRecognizerProperties' :: Maybe LanguageCode
languageCode = forall a. Maybe a
Prelude.Nothing,
      $sel:message:EntityRecognizerProperties' :: Maybe Text
message = forall a. Maybe a
Prelude.Nothing,
      $sel:modelKmsKeyId:EntityRecognizerProperties' :: Maybe Text
modelKmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:recognizerMetadata:EntityRecognizerProperties' :: Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceModelArn:EntityRecognizerProperties' :: Maybe Text
sourceModelArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:EntityRecognizerProperties' :: Maybe ModelStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:submitTime:EntityRecognizerProperties' :: Maybe POSIX
submitTime = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingEndTime:EntityRecognizerProperties' :: Maybe POSIX
trainingEndTime = forall a. Maybe a
Prelude.Nothing,
      $sel:trainingStartTime:EntityRecognizerProperties' :: Maybe POSIX
trainingStartTime = forall a. Maybe a
Prelude.Nothing,
      $sel:versionName:EntityRecognizerProperties' :: Maybe Text
versionName = forall a. Maybe a
Prelude.Nothing,
      $sel:volumeKmsKeyId:EntityRecognizerProperties' :: Maybe Text
volumeKmsKeyId = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:EntityRecognizerProperties' :: Maybe VpcConfig
vpcConfig = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of the AWS Identity and Management (IAM)
-- role that grants Amazon Comprehend read access to your input data.
entityRecognizerProperties_dataAccessRoleArn :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_dataAccessRoleArn :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_dataAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
dataAccessRoleArn :: Maybe Text
$sel:dataAccessRoleArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
dataAccessRoleArn} -> Maybe Text
dataAccessRoleArn) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:dataAccessRoleArn:EntityRecognizerProperties' :: Maybe Text
dataAccessRoleArn = Maybe Text
a} :: EntityRecognizerProperties)

-- | The time that the recognizer creation completed.
entityRecognizerProperties_endTime :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.UTCTime)
entityRecognizerProperties_endTime :: Lens' EntityRecognizerProperties (Maybe UTCTime)
entityRecognizerProperties_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe POSIX
a -> EntityRecognizerProperties
s {$sel:endTime:EntityRecognizerProperties' :: Maybe POSIX
endTime = Maybe POSIX
a} :: EntityRecognizerProperties) 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 Amazon Resource Name (ARN) that identifies the entity recognizer.
entityRecognizerProperties_entityRecognizerArn :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_entityRecognizerArn :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_entityRecognizerArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
entityRecognizerArn :: Maybe Text
$sel:entityRecognizerArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
entityRecognizerArn} -> Maybe Text
entityRecognizerArn) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:entityRecognizerArn:EntityRecognizerProperties' :: Maybe Text
entityRecognizerArn = Maybe Text
a} :: EntityRecognizerProperties)

-- | The input data properties of an entity recognizer.
entityRecognizerProperties_inputDataConfig :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe EntityRecognizerInputDataConfig)
entityRecognizerProperties_inputDataConfig :: Lens'
  EntityRecognizerProperties (Maybe EntityRecognizerInputDataConfig)
entityRecognizerProperties_inputDataConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe EntityRecognizerInputDataConfig
inputDataConfig :: Maybe EntityRecognizerInputDataConfig
$sel:inputDataConfig:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe EntityRecognizerInputDataConfig
inputDataConfig} -> Maybe EntityRecognizerInputDataConfig
inputDataConfig) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe EntityRecognizerInputDataConfig
a -> EntityRecognizerProperties
s {$sel:inputDataConfig:EntityRecognizerProperties' :: Maybe EntityRecognizerInputDataConfig
inputDataConfig = Maybe EntityRecognizerInputDataConfig
a} :: EntityRecognizerProperties)

-- | The language of the input documents. All documents must be in the same
-- language. Only English (\"en\") is currently supported.
entityRecognizerProperties_languageCode :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe LanguageCode)
entityRecognizerProperties_languageCode :: Lens' EntityRecognizerProperties (Maybe LanguageCode)
entityRecognizerProperties_languageCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe LanguageCode
languageCode :: Maybe LanguageCode
$sel:languageCode:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe LanguageCode
languageCode} -> Maybe LanguageCode
languageCode) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe LanguageCode
a -> EntityRecognizerProperties
s {$sel:languageCode:EntityRecognizerProperties' :: Maybe LanguageCode
languageCode = Maybe LanguageCode
a} :: EntityRecognizerProperties)

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

-- | ID for the AWS Key Management Service (KMS) key that Amazon Comprehend
-- uses to encrypt trained custom models. The ModelKmsKeyId 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\"@
entityRecognizerProperties_modelKmsKeyId :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_modelKmsKeyId :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_modelKmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
modelKmsKeyId :: Maybe Text
$sel:modelKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
modelKmsKeyId} -> Maybe Text
modelKmsKeyId) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:modelKmsKeyId:EntityRecognizerProperties' :: Maybe Text
modelKmsKeyId = Maybe Text
a} :: EntityRecognizerProperties)

-- | Provides information about an entity recognizer.
entityRecognizerProperties_recognizerMetadata :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe EntityRecognizerMetadata)
entityRecognizerProperties_recognizerMetadata :: Lens' EntityRecognizerProperties (Maybe EntityRecognizerMetadata)
entityRecognizerProperties_recognizerMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata :: Maybe (Sensitive EntityRecognizerMetadata)
$sel:recognizerMetadata:EntityRecognizerProperties' :: EntityRecognizerProperties
-> Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata} -> Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe (Sensitive EntityRecognizerMetadata)
a -> EntityRecognizerProperties
s {$sel:recognizerMetadata:EntityRecognizerProperties' :: Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata = Maybe (Sensitive EntityRecognizerMetadata)
a} :: EntityRecognizerProperties) 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. Iso' (Sensitive a) a
Data._Sensitive

-- | The Amazon Resource Name (ARN) of the source model. This model was
-- imported from a different AWS account to create the entity recognizer
-- model in your AWS account.
entityRecognizerProperties_sourceModelArn :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_sourceModelArn :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_sourceModelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
sourceModelArn :: Maybe Text
$sel:sourceModelArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
sourceModelArn} -> Maybe Text
sourceModelArn) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:sourceModelArn:EntityRecognizerProperties' :: Maybe Text
sourceModelArn = Maybe Text
a} :: EntityRecognizerProperties)

-- | Provides the status of the entity recognizer.
entityRecognizerProperties_status :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe ModelStatus)
entityRecognizerProperties_status :: Lens' EntityRecognizerProperties (Maybe ModelStatus)
entityRecognizerProperties_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe ModelStatus
status :: Maybe ModelStatus
$sel:status:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe ModelStatus
status} -> Maybe ModelStatus
status) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe ModelStatus
a -> EntityRecognizerProperties
s {$sel:status:EntityRecognizerProperties' :: Maybe ModelStatus
status = Maybe ModelStatus
a} :: EntityRecognizerProperties)

-- | The time that the recognizer was submitted for processing.
entityRecognizerProperties_submitTime :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.UTCTime)
entityRecognizerProperties_submitTime :: Lens' EntityRecognizerProperties (Maybe UTCTime)
entityRecognizerProperties_submitTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe POSIX
submitTime :: Maybe POSIX
$sel:submitTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
submitTime} -> Maybe POSIX
submitTime) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe POSIX
a -> EntityRecognizerProperties
s {$sel:submitTime:EntityRecognizerProperties' :: Maybe POSIX
submitTime = Maybe POSIX
a} :: EntityRecognizerProperties) 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 time that training of the entity recognizer was completed.
entityRecognizerProperties_trainingEndTime :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.UTCTime)
entityRecognizerProperties_trainingEndTime :: Lens' EntityRecognizerProperties (Maybe UTCTime)
entityRecognizerProperties_trainingEndTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe POSIX
trainingEndTime :: Maybe POSIX
$sel:trainingEndTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
trainingEndTime} -> Maybe POSIX
trainingEndTime) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe POSIX
a -> EntityRecognizerProperties
s {$sel:trainingEndTime:EntityRecognizerProperties' :: Maybe POSIX
trainingEndTime = Maybe POSIX
a} :: EntityRecognizerProperties) 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 time that training of the entity recognizer started.
entityRecognizerProperties_trainingStartTime :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.UTCTime)
entityRecognizerProperties_trainingStartTime :: Lens' EntityRecognizerProperties (Maybe UTCTime)
entityRecognizerProperties_trainingStartTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe POSIX
trainingStartTime :: Maybe POSIX
$sel:trainingStartTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
trainingStartTime} -> Maybe POSIX
trainingStartTime) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe POSIX
a -> EntityRecognizerProperties
s {$sel:trainingStartTime:EntityRecognizerProperties' :: Maybe POSIX
trainingStartTime = Maybe POSIX
a} :: EntityRecognizerProperties) 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 version name you assigned to the entity recognizer.
entityRecognizerProperties_versionName :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_versionName :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_versionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
versionName :: Maybe Text
$sel:versionName:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
versionName} -> Maybe Text
versionName) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:versionName:EntityRecognizerProperties' :: Maybe Text
versionName = Maybe Text
a} :: EntityRecognizerProperties)

-- | 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\"@
entityRecognizerProperties_volumeKmsKeyId :: Lens.Lens' EntityRecognizerProperties (Prelude.Maybe Prelude.Text)
entityRecognizerProperties_volumeKmsKeyId :: Lens' EntityRecognizerProperties (Maybe Text)
entityRecognizerProperties_volumeKmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EntityRecognizerProperties' {Maybe Text
volumeKmsKeyId :: Maybe Text
$sel:volumeKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
volumeKmsKeyId} -> Maybe Text
volumeKmsKeyId) (\s :: EntityRecognizerProperties
s@EntityRecognizerProperties' {} Maybe Text
a -> EntityRecognizerProperties
s {$sel:volumeKmsKeyId:EntityRecognizerProperties' :: Maybe Text
volumeKmsKeyId = Maybe Text
a} :: EntityRecognizerProperties)

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

instance Data.FromJSON EntityRecognizerProperties where
  parseJSON :: Value -> Parser EntityRecognizerProperties
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"EntityRecognizerProperties"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe EntityRecognizerInputDataConfig
-> Maybe LanguageCode
-> Maybe Text
-> Maybe Text
-> Maybe (Sensitive EntityRecognizerMetadata)
-> Maybe Text
-> Maybe ModelStatus
-> Maybe POSIX
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe VpcConfig
-> EntityRecognizerProperties
EntityRecognizerProperties'
            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
"EntityRecognizerArn")
            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
"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
"ModelKmsKeyId")
            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
"RecognizerMetadata")
            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
"SourceModelArn")
            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
"Status")
            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
"TrainingEndTime")
            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
"TrainingStartTime")
            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
"VersionName")
            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 EntityRecognizerProperties where
  hashWithSalt :: Int -> EntityRecognizerProperties -> Int
hashWithSalt Int
_salt EntityRecognizerProperties' {Maybe Text
Maybe (Sensitive EntityRecognizerMetadata)
Maybe POSIX
Maybe LanguageCode
Maybe ModelStatus
Maybe EntityRecognizerInputDataConfig
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
volumeKmsKeyId :: Maybe Text
versionName :: Maybe Text
trainingStartTime :: Maybe POSIX
trainingEndTime :: Maybe POSIX
submitTime :: Maybe POSIX
status :: Maybe ModelStatus
sourceModelArn :: Maybe Text
recognizerMetadata :: Maybe (Sensitive EntityRecognizerMetadata)
modelKmsKeyId :: Maybe Text
message :: Maybe Text
languageCode :: Maybe LanguageCode
inputDataConfig :: Maybe EntityRecognizerInputDataConfig
entityRecognizerArn :: Maybe Text
endTime :: Maybe POSIX
dataAccessRoleArn :: Maybe Text
$sel:vpcConfig:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe VpcConfig
$sel:volumeKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:versionName:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:trainingStartTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:trainingEndTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:submitTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:status:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe ModelStatus
$sel:sourceModelArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:recognizerMetadata:EntityRecognizerProperties' :: EntityRecognizerProperties
-> Maybe (Sensitive EntityRecognizerMetadata)
$sel:modelKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:message:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:languageCode:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe LanguageCode
$sel:inputDataConfig:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe EntityRecognizerInputDataConfig
$sel:entityRecognizerArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:endTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:dataAccessRoleArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> 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 Text
entityRecognizerArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EntityRecognizerInputDataConfig
inputDataConfig
      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 Text
modelKmsKeyId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
sourceModelArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
submitTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
trainingEndTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
trainingStartTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
versionName
      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 EntityRecognizerProperties where
  rnf :: EntityRecognizerProperties -> ()
rnf EntityRecognizerProperties' {Maybe Text
Maybe (Sensitive EntityRecognizerMetadata)
Maybe POSIX
Maybe LanguageCode
Maybe ModelStatus
Maybe EntityRecognizerInputDataConfig
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
volumeKmsKeyId :: Maybe Text
versionName :: Maybe Text
trainingStartTime :: Maybe POSIX
trainingEndTime :: Maybe POSIX
submitTime :: Maybe POSIX
status :: Maybe ModelStatus
sourceModelArn :: Maybe Text
recognizerMetadata :: Maybe (Sensitive EntityRecognizerMetadata)
modelKmsKeyId :: Maybe Text
message :: Maybe Text
languageCode :: Maybe LanguageCode
inputDataConfig :: Maybe EntityRecognizerInputDataConfig
entityRecognizerArn :: Maybe Text
endTime :: Maybe POSIX
dataAccessRoleArn :: Maybe Text
$sel:vpcConfig:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe VpcConfig
$sel:volumeKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:versionName:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:trainingStartTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:trainingEndTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:submitTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:status:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe ModelStatus
$sel:sourceModelArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:recognizerMetadata:EntityRecognizerProperties' :: EntityRecognizerProperties
-> Maybe (Sensitive EntityRecognizerMetadata)
$sel:modelKmsKeyId:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:message:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:languageCode:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe LanguageCode
$sel:inputDataConfig:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe EntityRecognizerInputDataConfig
$sel:entityRecognizerArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe Text
$sel:endTime:EntityRecognizerProperties' :: EntityRecognizerProperties -> Maybe POSIX
$sel:dataAccessRoleArn:EntityRecognizerProperties' :: EntityRecognizerProperties -> 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 Text
entityRecognizerArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EntityRecognizerInputDataConfig
inputDataConfig
      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 Text
modelKmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive EntityRecognizerMetadata)
recognizerMetadata
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceModelArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelStatus
status
      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 POSIX
trainingEndTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
trainingStartTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
versionName
      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