{-# 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.SageMaker.Types.ModelPackage
-- 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.SageMaker.Types.ModelPackage where

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
import Amazonka.SageMaker.Types.AdditionalInferenceSpecificationDefinition
import Amazonka.SageMaker.Types.DriftCheckBaselines
import Amazonka.SageMaker.Types.InferenceSpecification
import Amazonka.SageMaker.Types.MetadataProperties
import Amazonka.SageMaker.Types.ModelApprovalStatus
import Amazonka.SageMaker.Types.ModelMetrics
import Amazonka.SageMaker.Types.ModelPackageStatus
import Amazonka.SageMaker.Types.ModelPackageStatusDetails
import Amazonka.SageMaker.Types.ModelPackageValidationSpecification
import Amazonka.SageMaker.Types.SourceAlgorithmSpecification
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.UserContext

-- | A versioned model that can be deployed for SageMaker inference.
--
-- /See:/ 'newModelPackage' smart constructor.
data ModelPackage = ModelPackage'
  { -- | An array of additional Inference Specification objects.
    ModelPackage
-> Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications :: Prelude.Maybe (Prelude.NonEmpty AdditionalInferenceSpecificationDefinition),
    -- | A description provided when the model approval is set.
    ModelPackage -> Maybe Text
approvalDescription :: Prelude.Maybe Prelude.Text,
    -- | Whether the model package is to be certified to be listed on Amazon Web
    -- Services Marketplace. For information about listing model packages on
    -- Amazon Web Services Marketplace, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html List Your Algorithm or Model Package on Amazon Web Services Marketplace>.
    ModelPackage -> Maybe Bool
certifyForMarketplace :: Prelude.Maybe Prelude.Bool,
    -- | Information about the user who created or modified an experiment, trial,
    -- trial component, lineage group, or project.
    ModelPackage -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
    -- | The time that the model package was created.
    ModelPackage -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The metadata properties for the model package.
    ModelPackage -> Maybe (HashMap Text Text)
customerMetadataProperties :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The machine learning domain of your model package and its components.
    -- Common machine learning domains include computer vision and natural
    -- language processing.
    ModelPackage -> Maybe Text
domain :: Prelude.Maybe Prelude.Text,
    -- | Represents the drift check baselines that can be used when the model
    -- monitor is set using the model package.
    ModelPackage -> Maybe DriftCheckBaselines
driftCheckBaselines :: Prelude.Maybe DriftCheckBaselines,
    -- | Defines how to perform inference generation after a training job is run.
    ModelPackage -> Maybe InferenceSpecification
inferenceSpecification :: Prelude.Maybe InferenceSpecification,
    -- | Information about the user who created or modified an experiment, trial,
    -- trial component, lineage group, or project.
    ModelPackage -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    -- | The last time the model package was modified.
    ModelPackage -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | Metadata properties of the tracking entity, trial, or trial component.
    ModelPackage -> Maybe MetadataProperties
metadataProperties :: Prelude.Maybe MetadataProperties,
    -- | The approval status of the model. This can be one of the following
    -- values.
    --
    -- -   @APPROVED@ - The model is approved
    --
    -- -   @REJECTED@ - The model is rejected.
    --
    -- -   @PENDING_MANUAL_APPROVAL@ - The model is waiting for manual
    --     approval.
    ModelPackage -> Maybe ModelApprovalStatus
modelApprovalStatus :: Prelude.Maybe ModelApprovalStatus,
    -- | Metrics for the model.
    ModelPackage -> Maybe ModelMetrics
modelMetrics :: Prelude.Maybe ModelMetrics,
    -- | The Amazon Resource Name (ARN) of the model package.
    ModelPackage -> Maybe Text
modelPackageArn :: Prelude.Maybe Prelude.Text,
    -- | The description of the model package.
    ModelPackage -> Maybe Text
modelPackageDescription :: Prelude.Maybe Prelude.Text,
    -- | The model group to which the model belongs.
    ModelPackage -> Maybe Text
modelPackageGroupName :: Prelude.Maybe Prelude.Text,
    -- | The name of the model.
    ModelPackage -> Maybe Text
modelPackageName :: Prelude.Maybe Prelude.Text,
    -- | The status of the model package. This can be one of the following
    -- values.
    --
    -- -   @PENDING@ - The model package is pending being created.
    --
    -- -   @IN_PROGRESS@ - The model package is in the process of being
    --     created.
    --
    -- -   @COMPLETED@ - The model package was successfully created.
    --
    -- -   @FAILED@ - The model package failed.
    --
    -- -   @DELETING@ - The model package is in the process of being deleted.
    ModelPackage -> Maybe ModelPackageStatus
modelPackageStatus :: Prelude.Maybe ModelPackageStatus,
    -- | Specifies the validation and image scan statuses of the model package.
    ModelPackage -> Maybe ModelPackageStatusDetails
modelPackageStatusDetails :: Prelude.Maybe ModelPackageStatusDetails,
    -- | The version number of a versioned model.
    ModelPackage -> Maybe Natural
modelPackageVersion :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Simple Storage Service path where the sample payload are
    -- stored. This path must point to a single gzip compressed tar archive
    -- (.tar.gz suffix).
    ModelPackage -> Maybe Text
samplePayloadUrl :: Prelude.Maybe Prelude.Text,
    -- | A list of algorithms that were used to create a model package.
    ModelPackage -> Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification :: Prelude.Maybe SourceAlgorithmSpecification,
    -- | A list of the tags associated with the model package. For more
    -- information, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services resources>
    -- in the /Amazon Web Services General Reference Guide/.
    ModelPackage -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The machine learning task your model package accomplishes. Common
    -- machine learning tasks include object detection and image
    -- classification.
    ModelPackage -> Maybe Text
task :: Prelude.Maybe Prelude.Text,
    -- | Specifies batch transform jobs that SageMaker runs to validate your
    -- model package.
    ModelPackage -> Maybe ModelPackageValidationSpecification
validationSpecification :: Prelude.Maybe ModelPackageValidationSpecification
  }
  deriving (ModelPackage -> ModelPackage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ModelPackage -> ModelPackage -> Bool
$c/= :: ModelPackage -> ModelPackage -> Bool
== :: ModelPackage -> ModelPackage -> Bool
$c== :: ModelPackage -> ModelPackage -> Bool
Prelude.Eq, ReadPrec [ModelPackage]
ReadPrec ModelPackage
Int -> ReadS ModelPackage
ReadS [ModelPackage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ModelPackage]
$creadListPrec :: ReadPrec [ModelPackage]
readPrec :: ReadPrec ModelPackage
$creadPrec :: ReadPrec ModelPackage
readList :: ReadS [ModelPackage]
$creadList :: ReadS [ModelPackage]
readsPrec :: Int -> ReadS ModelPackage
$creadsPrec :: Int -> ReadS ModelPackage
Prelude.Read, Int -> ModelPackage -> ShowS
[ModelPackage] -> ShowS
ModelPackage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ModelPackage] -> ShowS
$cshowList :: [ModelPackage] -> ShowS
show :: ModelPackage -> String
$cshow :: ModelPackage -> String
showsPrec :: Int -> ModelPackage -> ShowS
$cshowsPrec :: Int -> ModelPackage -> ShowS
Prelude.Show, forall x. Rep ModelPackage x -> ModelPackage
forall x. ModelPackage -> Rep ModelPackage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ModelPackage x -> ModelPackage
$cfrom :: forall x. ModelPackage -> Rep ModelPackage x
Prelude.Generic)

-- |
-- Create a value of 'ModelPackage' 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:
--
-- 'additionalInferenceSpecifications', 'modelPackage_additionalInferenceSpecifications' - An array of additional Inference Specification objects.
--
-- 'approvalDescription', 'modelPackage_approvalDescription' - A description provided when the model approval is set.
--
-- 'certifyForMarketplace', 'modelPackage_certifyForMarketplace' - Whether the model package is to be certified to be listed on Amazon Web
-- Services Marketplace. For information about listing model packages on
-- Amazon Web Services Marketplace, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html List Your Algorithm or Model Package on Amazon Web Services Marketplace>.
--
-- 'createdBy', 'modelPackage_createdBy' - Information about the user who created or modified an experiment, trial,
-- trial component, lineage group, or project.
--
-- 'creationTime', 'modelPackage_creationTime' - The time that the model package was created.
--
-- 'customerMetadataProperties', 'modelPackage_customerMetadataProperties' - The metadata properties for the model package.
--
-- 'domain', 'modelPackage_domain' - The machine learning domain of your model package and its components.
-- Common machine learning domains include computer vision and natural
-- language processing.
--
-- 'driftCheckBaselines', 'modelPackage_driftCheckBaselines' - Represents the drift check baselines that can be used when the model
-- monitor is set using the model package.
--
-- 'inferenceSpecification', 'modelPackage_inferenceSpecification' - Defines how to perform inference generation after a training job is run.
--
-- 'lastModifiedBy', 'modelPackage_lastModifiedBy' - Information about the user who created or modified an experiment, trial,
-- trial component, lineage group, or project.
--
-- 'lastModifiedTime', 'modelPackage_lastModifiedTime' - The last time the model package was modified.
--
-- 'metadataProperties', 'modelPackage_metadataProperties' - Metadata properties of the tracking entity, trial, or trial component.
--
-- 'modelApprovalStatus', 'modelPackage_modelApprovalStatus' - The approval status of the model. This can be one of the following
-- values.
--
-- -   @APPROVED@ - The model is approved
--
-- -   @REJECTED@ - The model is rejected.
--
-- -   @PENDING_MANUAL_APPROVAL@ - The model is waiting for manual
--     approval.
--
-- 'modelMetrics', 'modelPackage_modelMetrics' - Metrics for the model.
--
-- 'modelPackageArn', 'modelPackage_modelPackageArn' - The Amazon Resource Name (ARN) of the model package.
--
-- 'modelPackageDescription', 'modelPackage_modelPackageDescription' - The description of the model package.
--
-- 'modelPackageGroupName', 'modelPackage_modelPackageGroupName' - The model group to which the model belongs.
--
-- 'modelPackageName', 'modelPackage_modelPackageName' - The name of the model.
--
-- 'modelPackageStatus', 'modelPackage_modelPackageStatus' - The status of the model package. This can be one of the following
-- values.
--
-- -   @PENDING@ - The model package is pending being created.
--
-- -   @IN_PROGRESS@ - The model package is in the process of being
--     created.
--
-- -   @COMPLETED@ - The model package was successfully created.
--
-- -   @FAILED@ - The model package failed.
--
-- -   @DELETING@ - The model package is in the process of being deleted.
--
-- 'modelPackageStatusDetails', 'modelPackage_modelPackageStatusDetails' - Specifies the validation and image scan statuses of the model package.
--
-- 'modelPackageVersion', 'modelPackage_modelPackageVersion' - The version number of a versioned model.
--
-- 'samplePayloadUrl', 'modelPackage_samplePayloadUrl' - The Amazon Simple Storage Service path where the sample payload are
-- stored. This path must point to a single gzip compressed tar archive
-- (.tar.gz suffix).
--
-- 'sourceAlgorithmSpecification', 'modelPackage_sourceAlgorithmSpecification' - A list of algorithms that were used to create a model package.
--
-- 'tags', 'modelPackage_tags' - A list of the tags associated with the model package. For more
-- information, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services resources>
-- in the /Amazon Web Services General Reference Guide/.
--
-- 'task', 'modelPackage_task' - The machine learning task your model package accomplishes. Common
-- machine learning tasks include object detection and image
-- classification.
--
-- 'validationSpecification', 'modelPackage_validationSpecification' - Specifies batch transform jobs that SageMaker runs to validate your
-- model package.
newModelPackage ::
  ModelPackage
newModelPackage :: ModelPackage
newModelPackage =
  ModelPackage'
    { $sel:additionalInferenceSpecifications:ModelPackage' :: Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications =
        forall a. Maybe a
Prelude.Nothing,
      $sel:approvalDescription:ModelPackage' :: Maybe Text
approvalDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:certifyForMarketplace:ModelPackage' :: Maybe Bool
certifyForMarketplace = forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:ModelPackage' :: Maybe UserContext
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:ModelPackage' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:customerMetadataProperties:ModelPackage' :: Maybe (HashMap Text Text)
customerMetadataProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:domain:ModelPackage' :: Maybe Text
domain = forall a. Maybe a
Prelude.Nothing,
      $sel:driftCheckBaselines:ModelPackage' :: Maybe DriftCheckBaselines
driftCheckBaselines = forall a. Maybe a
Prelude.Nothing,
      $sel:inferenceSpecification:ModelPackage' :: Maybe InferenceSpecification
inferenceSpecification = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:ModelPackage' :: Maybe UserContext
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:ModelPackage' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:metadataProperties:ModelPackage' :: Maybe MetadataProperties
metadataProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:modelApprovalStatus:ModelPackage' :: Maybe ModelApprovalStatus
modelApprovalStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:modelMetrics:ModelPackage' :: Maybe ModelMetrics
modelMetrics = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageArn:ModelPackage' :: Maybe Text
modelPackageArn = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageDescription:ModelPackage' :: Maybe Text
modelPackageDescription = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageGroupName:ModelPackage' :: Maybe Text
modelPackageGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageName:ModelPackage' :: Maybe Text
modelPackageName = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageStatus:ModelPackage' :: Maybe ModelPackageStatus
modelPackageStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageStatusDetails:ModelPackage' :: Maybe ModelPackageStatusDetails
modelPackageStatusDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageVersion:ModelPackage' :: Maybe Natural
modelPackageVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:samplePayloadUrl:ModelPackage' :: Maybe Text
samplePayloadUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceAlgorithmSpecification:ModelPackage' :: Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ModelPackage' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:task:ModelPackage' :: Maybe Text
task = forall a. Maybe a
Prelude.Nothing,
      $sel:validationSpecification:ModelPackage' :: Maybe ModelPackageValidationSpecification
validationSpecification = forall a. Maybe a
Prelude.Nothing
    }

-- | An array of additional Inference Specification objects.
modelPackage_additionalInferenceSpecifications :: Lens.Lens' ModelPackage (Prelude.Maybe (Prelude.NonEmpty AdditionalInferenceSpecificationDefinition))
modelPackage_additionalInferenceSpecifications :: Lens'
  ModelPackage
  (Maybe (NonEmpty AdditionalInferenceSpecificationDefinition))
modelPackage_additionalInferenceSpecifications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications :: Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
$sel:additionalInferenceSpecifications:ModelPackage' :: ModelPackage
-> Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications} -> Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications) (\s :: ModelPackage
s@ModelPackage' {} Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
a -> ModelPackage
s {$sel:additionalInferenceSpecifications:ModelPackage' :: Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications = Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
a} :: ModelPackage) 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

-- | A description provided when the model approval is set.
modelPackage_approvalDescription :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_approvalDescription :: Lens' ModelPackage (Maybe Text)
modelPackage_approvalDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
approvalDescription :: Maybe Text
$sel:approvalDescription:ModelPackage' :: ModelPackage -> Maybe Text
approvalDescription} -> Maybe Text
approvalDescription) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:approvalDescription:ModelPackage' :: Maybe Text
approvalDescription = Maybe Text
a} :: ModelPackage)

-- | Whether the model package is to be certified to be listed on Amazon Web
-- Services Marketplace. For information about listing model packages on
-- Amazon Web Services Marketplace, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html List Your Algorithm or Model Package on Amazon Web Services Marketplace>.
modelPackage_certifyForMarketplace :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Bool)
modelPackage_certifyForMarketplace :: Lens' ModelPackage (Maybe Bool)
modelPackage_certifyForMarketplace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Bool
certifyForMarketplace :: Maybe Bool
$sel:certifyForMarketplace:ModelPackage' :: ModelPackage -> Maybe Bool
certifyForMarketplace} -> Maybe Bool
certifyForMarketplace) (\s :: ModelPackage
s@ModelPackage' {} Maybe Bool
a -> ModelPackage
s {$sel:certifyForMarketplace:ModelPackage' :: Maybe Bool
certifyForMarketplace = Maybe Bool
a} :: ModelPackage)

-- | Information about the user who created or modified an experiment, trial,
-- trial component, lineage group, or project.
modelPackage_createdBy :: Lens.Lens' ModelPackage (Prelude.Maybe UserContext)
modelPackage_createdBy :: Lens' ModelPackage (Maybe UserContext)
modelPackage_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe UserContext
createdBy :: Maybe UserContext
$sel:createdBy:ModelPackage' :: ModelPackage -> Maybe UserContext
createdBy} -> Maybe UserContext
createdBy) (\s :: ModelPackage
s@ModelPackage' {} Maybe UserContext
a -> ModelPackage
s {$sel:createdBy:ModelPackage' :: Maybe UserContext
createdBy = Maybe UserContext
a} :: ModelPackage)

-- | The time that the model package was created.
modelPackage_creationTime :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.UTCTime)
modelPackage_creationTime :: Lens' ModelPackage (Maybe UTCTime)
modelPackage_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:ModelPackage' :: ModelPackage -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: ModelPackage
s@ModelPackage' {} Maybe POSIX
a -> ModelPackage
s {$sel:creationTime:ModelPackage' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: ModelPackage) 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 metadata properties for the model package.
modelPackage_customerMetadataProperties :: Lens.Lens' ModelPackage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
modelPackage_customerMetadataProperties :: Lens' ModelPackage (Maybe (HashMap Text Text))
modelPackage_customerMetadataProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe (HashMap Text Text)
customerMetadataProperties :: Maybe (HashMap Text Text)
$sel:customerMetadataProperties:ModelPackage' :: ModelPackage -> Maybe (HashMap Text Text)
customerMetadataProperties} -> Maybe (HashMap Text Text)
customerMetadataProperties) (\s :: ModelPackage
s@ModelPackage' {} Maybe (HashMap Text Text)
a -> ModelPackage
s {$sel:customerMetadataProperties:ModelPackage' :: Maybe (HashMap Text Text)
customerMetadataProperties = Maybe (HashMap Text Text)
a} :: ModelPackage) 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 machine learning domain of your model package and its components.
-- Common machine learning domains include computer vision and natural
-- language processing.
modelPackage_domain :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_domain :: Lens' ModelPackage (Maybe Text)
modelPackage_domain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
domain :: Maybe Text
$sel:domain:ModelPackage' :: ModelPackage -> Maybe Text
domain} -> Maybe Text
domain) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:domain:ModelPackage' :: Maybe Text
domain = Maybe Text
a} :: ModelPackage)

-- | Represents the drift check baselines that can be used when the model
-- monitor is set using the model package.
modelPackage_driftCheckBaselines :: Lens.Lens' ModelPackage (Prelude.Maybe DriftCheckBaselines)
modelPackage_driftCheckBaselines :: Lens' ModelPackage (Maybe DriftCheckBaselines)
modelPackage_driftCheckBaselines = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe DriftCheckBaselines
driftCheckBaselines :: Maybe DriftCheckBaselines
$sel:driftCheckBaselines:ModelPackage' :: ModelPackage -> Maybe DriftCheckBaselines
driftCheckBaselines} -> Maybe DriftCheckBaselines
driftCheckBaselines) (\s :: ModelPackage
s@ModelPackage' {} Maybe DriftCheckBaselines
a -> ModelPackage
s {$sel:driftCheckBaselines:ModelPackage' :: Maybe DriftCheckBaselines
driftCheckBaselines = Maybe DriftCheckBaselines
a} :: ModelPackage)

-- | Defines how to perform inference generation after a training job is run.
modelPackage_inferenceSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe InferenceSpecification)
modelPackage_inferenceSpecification :: Lens' ModelPackage (Maybe InferenceSpecification)
modelPackage_inferenceSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe InferenceSpecification
inferenceSpecification :: Maybe InferenceSpecification
$sel:inferenceSpecification:ModelPackage' :: ModelPackage -> Maybe InferenceSpecification
inferenceSpecification} -> Maybe InferenceSpecification
inferenceSpecification) (\s :: ModelPackage
s@ModelPackage' {} Maybe InferenceSpecification
a -> ModelPackage
s {$sel:inferenceSpecification:ModelPackage' :: Maybe InferenceSpecification
inferenceSpecification = Maybe InferenceSpecification
a} :: ModelPackage)

-- | Information about the user who created or modified an experiment, trial,
-- trial component, lineage group, or project.
modelPackage_lastModifiedBy :: Lens.Lens' ModelPackage (Prelude.Maybe UserContext)
modelPackage_lastModifiedBy :: Lens' ModelPackage (Maybe UserContext)
modelPackage_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe UserContext
lastModifiedBy :: Maybe UserContext
$sel:lastModifiedBy:ModelPackage' :: ModelPackage -> Maybe UserContext
lastModifiedBy} -> Maybe UserContext
lastModifiedBy) (\s :: ModelPackage
s@ModelPackage' {} Maybe UserContext
a -> ModelPackage
s {$sel:lastModifiedBy:ModelPackage' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
a} :: ModelPackage)

-- | The last time the model package was modified.
modelPackage_lastModifiedTime :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.UTCTime)
modelPackage_lastModifiedTime :: Lens' ModelPackage (Maybe UTCTime)
modelPackage_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:ModelPackage' :: ModelPackage -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: ModelPackage
s@ModelPackage' {} Maybe POSIX
a -> ModelPackage
s {$sel:lastModifiedTime:ModelPackage' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: ModelPackage) 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

-- | Metadata properties of the tracking entity, trial, or trial component.
modelPackage_metadataProperties :: Lens.Lens' ModelPackage (Prelude.Maybe MetadataProperties)
modelPackage_metadataProperties :: Lens' ModelPackage (Maybe MetadataProperties)
modelPackage_metadataProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe MetadataProperties
metadataProperties :: Maybe MetadataProperties
$sel:metadataProperties:ModelPackage' :: ModelPackage -> Maybe MetadataProperties
metadataProperties} -> Maybe MetadataProperties
metadataProperties) (\s :: ModelPackage
s@ModelPackage' {} Maybe MetadataProperties
a -> ModelPackage
s {$sel:metadataProperties:ModelPackage' :: Maybe MetadataProperties
metadataProperties = Maybe MetadataProperties
a} :: ModelPackage)

-- | The approval status of the model. This can be one of the following
-- values.
--
-- -   @APPROVED@ - The model is approved
--
-- -   @REJECTED@ - The model is rejected.
--
-- -   @PENDING_MANUAL_APPROVAL@ - The model is waiting for manual
--     approval.
modelPackage_modelApprovalStatus :: Lens.Lens' ModelPackage (Prelude.Maybe ModelApprovalStatus)
modelPackage_modelApprovalStatus :: Lens' ModelPackage (Maybe ModelApprovalStatus)
modelPackage_modelApprovalStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe ModelApprovalStatus
modelApprovalStatus :: Maybe ModelApprovalStatus
$sel:modelApprovalStatus:ModelPackage' :: ModelPackage -> Maybe ModelApprovalStatus
modelApprovalStatus} -> Maybe ModelApprovalStatus
modelApprovalStatus) (\s :: ModelPackage
s@ModelPackage' {} Maybe ModelApprovalStatus
a -> ModelPackage
s {$sel:modelApprovalStatus:ModelPackage' :: Maybe ModelApprovalStatus
modelApprovalStatus = Maybe ModelApprovalStatus
a} :: ModelPackage)

-- | Metrics for the model.
modelPackage_modelMetrics :: Lens.Lens' ModelPackage (Prelude.Maybe ModelMetrics)
modelPackage_modelMetrics :: Lens' ModelPackage (Maybe ModelMetrics)
modelPackage_modelMetrics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe ModelMetrics
modelMetrics :: Maybe ModelMetrics
$sel:modelMetrics:ModelPackage' :: ModelPackage -> Maybe ModelMetrics
modelMetrics} -> Maybe ModelMetrics
modelMetrics) (\s :: ModelPackage
s@ModelPackage' {} Maybe ModelMetrics
a -> ModelPackage
s {$sel:modelMetrics:ModelPackage' :: Maybe ModelMetrics
modelMetrics = Maybe ModelMetrics
a} :: ModelPackage)

-- | The Amazon Resource Name (ARN) of the model package.
modelPackage_modelPackageArn :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageArn :: Lens' ModelPackage (Maybe Text)
modelPackage_modelPackageArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
modelPackageArn :: Maybe Text
$sel:modelPackageArn:ModelPackage' :: ModelPackage -> Maybe Text
modelPackageArn} -> Maybe Text
modelPackageArn) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:modelPackageArn:ModelPackage' :: Maybe Text
modelPackageArn = Maybe Text
a} :: ModelPackage)

-- | The description of the model package.
modelPackage_modelPackageDescription :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageDescription :: Lens' ModelPackage (Maybe Text)
modelPackage_modelPackageDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
modelPackageDescription :: Maybe Text
$sel:modelPackageDescription:ModelPackage' :: ModelPackage -> Maybe Text
modelPackageDescription} -> Maybe Text
modelPackageDescription) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:modelPackageDescription:ModelPackage' :: Maybe Text
modelPackageDescription = Maybe Text
a} :: ModelPackage)

-- | The model group to which the model belongs.
modelPackage_modelPackageGroupName :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageGroupName :: Lens' ModelPackage (Maybe Text)
modelPackage_modelPackageGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
modelPackageGroupName :: Maybe Text
$sel:modelPackageGroupName:ModelPackage' :: ModelPackage -> Maybe Text
modelPackageGroupName} -> Maybe Text
modelPackageGroupName) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:modelPackageGroupName:ModelPackage' :: Maybe Text
modelPackageGroupName = Maybe Text
a} :: ModelPackage)

-- | The name of the model.
modelPackage_modelPackageName :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageName :: Lens' ModelPackage (Maybe Text)
modelPackage_modelPackageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
modelPackageName :: Maybe Text
$sel:modelPackageName:ModelPackage' :: ModelPackage -> Maybe Text
modelPackageName} -> Maybe Text
modelPackageName) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:modelPackageName:ModelPackage' :: Maybe Text
modelPackageName = Maybe Text
a} :: ModelPackage)

-- | The status of the model package. This can be one of the following
-- values.
--
-- -   @PENDING@ - The model package is pending being created.
--
-- -   @IN_PROGRESS@ - The model package is in the process of being
--     created.
--
-- -   @COMPLETED@ - The model package was successfully created.
--
-- -   @FAILED@ - The model package failed.
--
-- -   @DELETING@ - The model package is in the process of being deleted.
modelPackage_modelPackageStatus :: Lens.Lens' ModelPackage (Prelude.Maybe ModelPackageStatus)
modelPackage_modelPackageStatus :: Lens' ModelPackage (Maybe ModelPackageStatus)
modelPackage_modelPackageStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe ModelPackageStatus
modelPackageStatus :: Maybe ModelPackageStatus
$sel:modelPackageStatus:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatus
modelPackageStatus} -> Maybe ModelPackageStatus
modelPackageStatus) (\s :: ModelPackage
s@ModelPackage' {} Maybe ModelPackageStatus
a -> ModelPackage
s {$sel:modelPackageStatus:ModelPackage' :: Maybe ModelPackageStatus
modelPackageStatus = Maybe ModelPackageStatus
a} :: ModelPackage)

-- | Specifies the validation and image scan statuses of the model package.
modelPackage_modelPackageStatusDetails :: Lens.Lens' ModelPackage (Prelude.Maybe ModelPackageStatusDetails)
modelPackage_modelPackageStatusDetails :: Lens' ModelPackage (Maybe ModelPackageStatusDetails)
modelPackage_modelPackageStatusDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe ModelPackageStatusDetails
modelPackageStatusDetails :: Maybe ModelPackageStatusDetails
$sel:modelPackageStatusDetails:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatusDetails
modelPackageStatusDetails} -> Maybe ModelPackageStatusDetails
modelPackageStatusDetails) (\s :: ModelPackage
s@ModelPackage' {} Maybe ModelPackageStatusDetails
a -> ModelPackage
s {$sel:modelPackageStatusDetails:ModelPackage' :: Maybe ModelPackageStatusDetails
modelPackageStatusDetails = Maybe ModelPackageStatusDetails
a} :: ModelPackage)

-- | The version number of a versioned model.
modelPackage_modelPackageVersion :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Natural)
modelPackage_modelPackageVersion :: Lens' ModelPackage (Maybe Natural)
modelPackage_modelPackageVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Natural
modelPackageVersion :: Maybe Natural
$sel:modelPackageVersion:ModelPackage' :: ModelPackage -> Maybe Natural
modelPackageVersion} -> Maybe Natural
modelPackageVersion) (\s :: ModelPackage
s@ModelPackage' {} Maybe Natural
a -> ModelPackage
s {$sel:modelPackageVersion:ModelPackage' :: Maybe Natural
modelPackageVersion = Maybe Natural
a} :: ModelPackage)

-- | The Amazon Simple Storage Service path where the sample payload are
-- stored. This path must point to a single gzip compressed tar archive
-- (.tar.gz suffix).
modelPackage_samplePayloadUrl :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_samplePayloadUrl :: Lens' ModelPackage (Maybe Text)
modelPackage_samplePayloadUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
samplePayloadUrl :: Maybe Text
$sel:samplePayloadUrl:ModelPackage' :: ModelPackage -> Maybe Text
samplePayloadUrl} -> Maybe Text
samplePayloadUrl) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:samplePayloadUrl:ModelPackage' :: Maybe Text
samplePayloadUrl = Maybe Text
a} :: ModelPackage)

-- | A list of algorithms that were used to create a model package.
modelPackage_sourceAlgorithmSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe SourceAlgorithmSpecification)
modelPackage_sourceAlgorithmSpecification :: Lens' ModelPackage (Maybe SourceAlgorithmSpecification)
modelPackage_sourceAlgorithmSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification :: Maybe SourceAlgorithmSpecification
$sel:sourceAlgorithmSpecification:ModelPackage' :: ModelPackage -> Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification} -> Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification) (\s :: ModelPackage
s@ModelPackage' {} Maybe SourceAlgorithmSpecification
a -> ModelPackage
s {$sel:sourceAlgorithmSpecification:ModelPackage' :: Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification = Maybe SourceAlgorithmSpecification
a} :: ModelPackage)

-- | A list of the tags associated with the model package. For more
-- information, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services resources>
-- in the /Amazon Web Services General Reference Guide/.
modelPackage_tags :: Lens.Lens' ModelPackage (Prelude.Maybe [Tag])
modelPackage_tags :: Lens' ModelPackage (Maybe [Tag])
modelPackage_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:ModelPackage' :: ModelPackage -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: ModelPackage
s@ModelPackage' {} Maybe [Tag]
a -> ModelPackage
s {$sel:tags:ModelPackage' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: ModelPackage) 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 machine learning task your model package accomplishes. Common
-- machine learning tasks include object detection and image
-- classification.
modelPackage_task :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_task :: Lens' ModelPackage (Maybe Text)
modelPackage_task = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe Text
task :: Maybe Text
$sel:task:ModelPackage' :: ModelPackage -> Maybe Text
task} -> Maybe Text
task) (\s :: ModelPackage
s@ModelPackage' {} Maybe Text
a -> ModelPackage
s {$sel:task:ModelPackage' :: Maybe Text
task = Maybe Text
a} :: ModelPackage)

-- | Specifies batch transform jobs that SageMaker runs to validate your
-- model package.
modelPackage_validationSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe ModelPackageValidationSpecification)
modelPackage_validationSpecification :: Lens' ModelPackage (Maybe ModelPackageValidationSpecification)
modelPackage_validationSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ModelPackage' {Maybe ModelPackageValidationSpecification
validationSpecification :: Maybe ModelPackageValidationSpecification
$sel:validationSpecification:ModelPackage' :: ModelPackage -> Maybe ModelPackageValidationSpecification
validationSpecification} -> Maybe ModelPackageValidationSpecification
validationSpecification) (\s :: ModelPackage
s@ModelPackage' {} Maybe ModelPackageValidationSpecification
a -> ModelPackage
s {$sel:validationSpecification:ModelPackage' :: Maybe ModelPackageValidationSpecification
validationSpecification = Maybe ModelPackageValidationSpecification
a} :: ModelPackage)

instance Data.FromJSON ModelPackage where
  parseJSON :: Value -> Parser ModelPackage
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ModelPackage"
      ( \Object
x ->
          Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
-> Maybe Text
-> Maybe Bool
-> Maybe UserContext
-> Maybe POSIX
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe DriftCheckBaselines
-> Maybe InferenceSpecification
-> Maybe UserContext
-> Maybe POSIX
-> Maybe MetadataProperties
-> Maybe ModelApprovalStatus
-> Maybe ModelMetrics
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ModelPackageStatus
-> Maybe ModelPackageStatusDetails
-> Maybe Natural
-> Maybe Text
-> Maybe SourceAlgorithmSpecification
-> Maybe [Tag]
-> Maybe Text
-> Maybe ModelPackageValidationSpecification
-> ModelPackage
ModelPackage'
            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
"AdditionalInferenceSpecifications")
            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
"ApprovalDescription")
            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
"CertifyForMarketplace")
            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
"CreatedBy")
            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
"CreationTime")
            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
"CustomerMetadataProperties"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"Domain")
            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
"DriftCheckBaselines")
            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
"InferenceSpecification")
            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
"LastModifiedBy")
            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
"LastModifiedTime")
            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
"MetadataProperties")
            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
"ModelApprovalStatus")
            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
"ModelMetrics")
            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
"ModelPackageArn")
            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
"ModelPackageDescription")
            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
"ModelPackageGroupName")
            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
"ModelPackageName")
            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
"ModelPackageStatus")
            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
"ModelPackageStatusDetails")
            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
"ModelPackageVersion")
            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
"SamplePayloadUrl")
            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
"SourceAlgorithmSpecification")
            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
"Tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"Task")
            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
"ValidationSpecification")
      )

instance Prelude.Hashable ModelPackage where
  hashWithSalt :: Int -> ModelPackage -> Int
hashWithSalt Int
_salt ModelPackage' {Maybe Bool
Maybe Natural
Maybe [Tag]
Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe MetadataProperties
Maybe DriftCheckBaselines
Maybe ModelApprovalStatus
Maybe ModelPackageStatus
Maybe ModelPackageStatusDetails
Maybe ModelMetrics
Maybe SourceAlgorithmSpecification
Maybe InferenceSpecification
Maybe ModelPackageValidationSpecification
Maybe UserContext
validationSpecification :: Maybe ModelPackageValidationSpecification
task :: Maybe Text
tags :: Maybe [Tag]
sourceAlgorithmSpecification :: Maybe SourceAlgorithmSpecification
samplePayloadUrl :: Maybe Text
modelPackageVersion :: Maybe Natural
modelPackageStatusDetails :: Maybe ModelPackageStatusDetails
modelPackageStatus :: Maybe ModelPackageStatus
modelPackageName :: Maybe Text
modelPackageGroupName :: Maybe Text
modelPackageDescription :: Maybe Text
modelPackageArn :: Maybe Text
modelMetrics :: Maybe ModelMetrics
modelApprovalStatus :: Maybe ModelApprovalStatus
metadataProperties :: Maybe MetadataProperties
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
inferenceSpecification :: Maybe InferenceSpecification
driftCheckBaselines :: Maybe DriftCheckBaselines
domain :: Maybe Text
customerMetadataProperties :: Maybe (HashMap Text Text)
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
certifyForMarketplace :: Maybe Bool
approvalDescription :: Maybe Text
additionalInferenceSpecifications :: Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
$sel:validationSpecification:ModelPackage' :: ModelPackage -> Maybe ModelPackageValidationSpecification
$sel:task:ModelPackage' :: ModelPackage -> Maybe Text
$sel:tags:ModelPackage' :: ModelPackage -> Maybe [Tag]
$sel:sourceAlgorithmSpecification:ModelPackage' :: ModelPackage -> Maybe SourceAlgorithmSpecification
$sel:samplePayloadUrl:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageVersion:ModelPackage' :: ModelPackage -> Maybe Natural
$sel:modelPackageStatusDetails:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatusDetails
$sel:modelPackageStatus:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatus
$sel:modelPackageName:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageGroupName:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageDescription:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageArn:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelMetrics:ModelPackage' :: ModelPackage -> Maybe ModelMetrics
$sel:modelApprovalStatus:ModelPackage' :: ModelPackage -> Maybe ModelApprovalStatus
$sel:metadataProperties:ModelPackage' :: ModelPackage -> Maybe MetadataProperties
$sel:lastModifiedTime:ModelPackage' :: ModelPackage -> Maybe POSIX
$sel:lastModifiedBy:ModelPackage' :: ModelPackage -> Maybe UserContext
$sel:inferenceSpecification:ModelPackage' :: ModelPackage -> Maybe InferenceSpecification
$sel:driftCheckBaselines:ModelPackage' :: ModelPackage -> Maybe DriftCheckBaselines
$sel:domain:ModelPackage' :: ModelPackage -> Maybe Text
$sel:customerMetadataProperties:ModelPackage' :: ModelPackage -> Maybe (HashMap Text Text)
$sel:creationTime:ModelPackage' :: ModelPackage -> Maybe POSIX
$sel:createdBy:ModelPackage' :: ModelPackage -> Maybe UserContext
$sel:certifyForMarketplace:ModelPackage' :: ModelPackage -> Maybe Bool
$sel:approvalDescription:ModelPackage' :: ModelPackage -> Maybe Text
$sel:additionalInferenceSpecifications:ModelPackage' :: ModelPackage
-> Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
approvalDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
certifyForMarketplace
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserContext
createdBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
customerMetadataProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DriftCheckBaselines
driftCheckBaselines
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceSpecification
inferenceSpecification
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserContext
lastModifiedBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MetadataProperties
metadataProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelApprovalStatus
modelApprovalStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelMetrics
modelMetrics
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelPackageArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelPackageDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelPackageGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelPackageName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelPackageStatus
modelPackageStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelPackageStatusDetails
modelPackageStatusDetails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
modelPackageVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
samplePayloadUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
task
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelPackageValidationSpecification
validationSpecification

instance Prelude.NFData ModelPackage where
  rnf :: ModelPackage -> ()
rnf ModelPackage' {Maybe Bool
Maybe Natural
Maybe [Tag]
Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe MetadataProperties
Maybe DriftCheckBaselines
Maybe ModelApprovalStatus
Maybe ModelPackageStatus
Maybe ModelPackageStatusDetails
Maybe ModelMetrics
Maybe SourceAlgorithmSpecification
Maybe InferenceSpecification
Maybe ModelPackageValidationSpecification
Maybe UserContext
validationSpecification :: Maybe ModelPackageValidationSpecification
task :: Maybe Text
tags :: Maybe [Tag]
sourceAlgorithmSpecification :: Maybe SourceAlgorithmSpecification
samplePayloadUrl :: Maybe Text
modelPackageVersion :: Maybe Natural
modelPackageStatusDetails :: Maybe ModelPackageStatusDetails
modelPackageStatus :: Maybe ModelPackageStatus
modelPackageName :: Maybe Text
modelPackageGroupName :: Maybe Text
modelPackageDescription :: Maybe Text
modelPackageArn :: Maybe Text
modelMetrics :: Maybe ModelMetrics
modelApprovalStatus :: Maybe ModelApprovalStatus
metadataProperties :: Maybe MetadataProperties
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
inferenceSpecification :: Maybe InferenceSpecification
driftCheckBaselines :: Maybe DriftCheckBaselines
domain :: Maybe Text
customerMetadataProperties :: Maybe (HashMap Text Text)
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
certifyForMarketplace :: Maybe Bool
approvalDescription :: Maybe Text
additionalInferenceSpecifications :: Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
$sel:validationSpecification:ModelPackage' :: ModelPackage -> Maybe ModelPackageValidationSpecification
$sel:task:ModelPackage' :: ModelPackage -> Maybe Text
$sel:tags:ModelPackage' :: ModelPackage -> Maybe [Tag]
$sel:sourceAlgorithmSpecification:ModelPackage' :: ModelPackage -> Maybe SourceAlgorithmSpecification
$sel:samplePayloadUrl:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageVersion:ModelPackage' :: ModelPackage -> Maybe Natural
$sel:modelPackageStatusDetails:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatusDetails
$sel:modelPackageStatus:ModelPackage' :: ModelPackage -> Maybe ModelPackageStatus
$sel:modelPackageName:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageGroupName:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageDescription:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelPackageArn:ModelPackage' :: ModelPackage -> Maybe Text
$sel:modelMetrics:ModelPackage' :: ModelPackage -> Maybe ModelMetrics
$sel:modelApprovalStatus:ModelPackage' :: ModelPackage -> Maybe ModelApprovalStatus
$sel:metadataProperties:ModelPackage' :: ModelPackage -> Maybe MetadataProperties
$sel:lastModifiedTime:ModelPackage' :: ModelPackage -> Maybe POSIX
$sel:lastModifiedBy:ModelPackage' :: ModelPackage -> Maybe UserContext
$sel:inferenceSpecification:ModelPackage' :: ModelPackage -> Maybe InferenceSpecification
$sel:driftCheckBaselines:ModelPackage' :: ModelPackage -> Maybe DriftCheckBaselines
$sel:domain:ModelPackage' :: ModelPackage -> Maybe Text
$sel:customerMetadataProperties:ModelPackage' :: ModelPackage -> Maybe (HashMap Text Text)
$sel:creationTime:ModelPackage' :: ModelPackage -> Maybe POSIX
$sel:createdBy:ModelPackage' :: ModelPackage -> Maybe UserContext
$sel:certifyForMarketplace:ModelPackage' :: ModelPackage -> Maybe Bool
$sel:approvalDescription:ModelPackage' :: ModelPackage -> Maybe Text
$sel:additionalInferenceSpecifications:ModelPackage' :: ModelPackage
-> Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AdditionalInferenceSpecificationDefinition)
additionalInferenceSpecifications
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
approvalDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
certifyForMarketplace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
createdBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
customerMetadataProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DriftCheckBaselines
driftCheckBaselines
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceSpecification
inferenceSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
lastModifiedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MetadataProperties
metadataProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelApprovalStatus
modelApprovalStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelMetrics
modelMetrics
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelPackageArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelPackageDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelPackageGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelPackageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelPackageStatus
modelPackageStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ModelPackageStatusDetails
modelPackageStatusDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Natural
modelPackageVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe Text
samplePayloadUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
task
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe ModelPackageValidationSpecification
validationSpecification