{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.ModelPackage where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
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'
  { -- | The time that the model package was created.
    ModelPackage -> Maybe POSIX
creationTime :: Prelude.Maybe Core.POSIX,
    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,
    ModelPackage -> Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification :: Prelude.Maybe SourceAlgorithmSpecification,
    -- | The name of the model.
    ModelPackage -> Maybe Text
modelPackageName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the model package.
    ModelPackage -> Maybe Text
modelPackageArn :: Prelude.Maybe Prelude.Text,
    -- | Metrics for the model.
    ModelPackage -> Maybe ModelMetrics
modelMetrics :: Prelude.Maybe ModelMetrics,
    -- | The description of the model package.
    ModelPackage -> Maybe Text
modelPackageDescription :: Prelude.Maybe Prelude.Text,
    ModelPackage -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
    -- | The last time the model package was modified.
    ModelPackage -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Core.POSIX,
    ModelPackage -> Maybe ModelPackageValidationSpecification
validationSpecification :: Prelude.Maybe ModelPackageValidationSpecification,
    ModelPackage -> Maybe InferenceSpecification
inferenceSpecification :: Prelude.Maybe InferenceSpecification,
    -- | A description provided when the model approval is set.
    ModelPackage -> Maybe Text
approvalDescription :: Prelude.Maybe Prelude.Text,
    -- | The version number of a versioned model.
    ModelPackage -> Maybe Natural
modelPackageVersion :: Prelude.Maybe Prelude.Natural,
    -- | 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,
    -- | The model group to which the model belongs.
    ModelPackage -> Maybe Text
modelPackageGroupName :: Prelude.Maybe Prelude.Text,
    ModelPackage -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    ModelPackage -> Maybe ModelPackageStatusDetails
modelPackageStatusDetails :: Prelude.Maybe ModelPackageStatusDetails,
    -- | 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 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
  }
  deriving (ModelPackage -> ModelPackage -> Bool
(ModelPackage -> ModelPackage -> Bool)
-> (ModelPackage -> ModelPackage -> Bool) -> Eq ModelPackage
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]
(Int -> ReadS ModelPackage)
-> ReadS [ModelPackage]
-> ReadPrec ModelPackage
-> ReadPrec [ModelPackage]
-> Read 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
(Int -> ModelPackage -> ShowS)
-> (ModelPackage -> String)
-> ([ModelPackage] -> ShowS)
-> Show ModelPackage
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. ModelPackage -> Rep ModelPackage x)
-> (forall x. Rep ModelPackage x -> ModelPackage)
-> Generic ModelPackage
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:
--
-- 'creationTime', 'modelPackage_creationTime' - The time that the model package was created.
--
-- 'metadataProperties', 'modelPackage_metadataProperties' - Undocumented member.
--
-- '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.
--
-- 'sourceAlgorithmSpecification', 'modelPackage_sourceAlgorithmSpecification' - Undocumented member.
--
-- 'modelPackageName', 'modelPackage_modelPackageName' - The name of the model.
--
-- 'modelPackageArn', 'modelPackage_modelPackageArn' - The Amazon Resource Name (ARN) of the model package.
--
-- 'modelMetrics', 'modelPackage_modelMetrics' - Metrics for the model.
--
-- 'modelPackageDescription', 'modelPackage_modelPackageDescription' - The description of the model package.
--
-- 'createdBy', 'modelPackage_createdBy' - Undocumented member.
--
-- 'lastModifiedTime', 'modelPackage_lastModifiedTime' - The last time the model package was modified.
--
-- 'validationSpecification', 'modelPackage_validationSpecification' - Undocumented member.
--
-- 'inferenceSpecification', 'modelPackage_inferenceSpecification' - Undocumented member.
--
-- 'approvalDescription', 'modelPackage_approvalDescription' - A description provided when the model approval is set.
--
-- 'modelPackageVersion', 'modelPackage_modelPackageVersion' - The version number of a versioned model.
--
-- '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>.
--
-- 'modelPackageGroupName', 'modelPackage_modelPackageGroupName' - The model group to which the model belongs.
--
-- 'lastModifiedBy', 'modelPackage_lastModifiedBy' - Undocumented member.
--
-- 'modelPackageStatusDetails', 'modelPackage_modelPackageStatusDetails' - Undocumented member.
--
-- '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/.
--
-- '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.
newModelPackage ::
  ModelPackage
newModelPackage :: ModelPackage
newModelPackage =
  ModelPackage' :: Maybe POSIX
-> Maybe MetadataProperties
-> Maybe ModelApprovalStatus
-> Maybe SourceAlgorithmSpecification
-> Maybe Text
-> Maybe Text
-> Maybe ModelMetrics
-> Maybe Text
-> Maybe UserContext
-> Maybe POSIX
-> Maybe ModelPackageValidationSpecification
-> Maybe InferenceSpecification
-> Maybe Text
-> Maybe Natural
-> Maybe Bool
-> Maybe Text
-> Maybe UserContext
-> Maybe ModelPackageStatusDetails
-> Maybe [Tag]
-> Maybe ModelPackageStatus
-> ModelPackage
ModelPackage'
    { $sel:creationTime:ModelPackage' :: Maybe POSIX
creationTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:metadataProperties:ModelPackage' :: Maybe MetadataProperties
metadataProperties = Maybe MetadataProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:modelApprovalStatus:ModelPackage' :: Maybe ModelApprovalStatus
modelApprovalStatus = Maybe ModelApprovalStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceAlgorithmSpecification:ModelPackage' :: Maybe SourceAlgorithmSpecification
sourceAlgorithmSpecification = Maybe SourceAlgorithmSpecification
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageName:ModelPackage' :: Maybe Text
modelPackageName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageArn:ModelPackage' :: Maybe Text
modelPackageArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelMetrics:ModelPackage' :: Maybe ModelMetrics
modelMetrics = Maybe ModelMetrics
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageDescription:ModelPackage' :: Maybe Text
modelPackageDescription = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:ModelPackage' :: Maybe UserContext
createdBy = Maybe UserContext
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:ModelPackage' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:validationSpecification:ModelPackage' :: Maybe ModelPackageValidationSpecification
validationSpecification = Maybe ModelPackageValidationSpecification
forall a. Maybe a
Prelude.Nothing,
      $sel:inferenceSpecification:ModelPackage' :: Maybe InferenceSpecification
inferenceSpecification = Maybe InferenceSpecification
forall a. Maybe a
Prelude.Nothing,
      $sel:approvalDescription:ModelPackage' :: Maybe Text
approvalDescription = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageVersion:ModelPackage' :: Maybe Natural
modelPackageVersion = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:certifyForMarketplace:ModelPackage' :: Maybe Bool
certifyForMarketplace = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageGroupName:ModelPackage' :: Maybe Text
modelPackageGroupName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:ModelPackage' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageStatusDetails:ModelPackage' :: Maybe ModelPackageStatusDetails
modelPackageStatusDetails = Maybe ModelPackageStatusDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ModelPackage' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageStatus:ModelPackage' :: Maybe ModelPackageStatus
modelPackageStatus = Maybe ModelPackageStatus
forall a. Maybe a
Prelude.Nothing
    }

-- | The time that the model package was created.
modelPackage_creationTime :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.UTCTime)
modelPackage_creationTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ModelPackage -> f ModelPackage
modelPackage_creationTime = (ModelPackage -> Maybe POSIX)
-> (ModelPackage -> Maybe POSIX -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> ModelPackage -> f ModelPackage)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ModelPackage
-> f ModelPackage
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Undocumented member.
modelPackage_metadataProperties :: Lens.Lens' ModelPackage (Prelude.Maybe MetadataProperties)
modelPackage_metadataProperties :: (Maybe MetadataProperties -> f (Maybe MetadataProperties))
-> ModelPackage -> f ModelPackage
modelPackage_metadataProperties = (ModelPackage -> Maybe MetadataProperties)
-> (ModelPackage -> Maybe MetadataProperties -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe MetadataProperties)
     (Maybe 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 :: (Maybe ModelApprovalStatus -> f (Maybe ModelApprovalStatus))
-> ModelPackage -> f ModelPackage
modelPackage_modelApprovalStatus = (ModelPackage -> Maybe ModelApprovalStatus)
-> (ModelPackage -> Maybe ModelApprovalStatus -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe ModelApprovalStatus)
     (Maybe 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)

-- | Undocumented member.
modelPackage_sourceAlgorithmSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe SourceAlgorithmSpecification)
modelPackage_sourceAlgorithmSpecification :: (Maybe SourceAlgorithmSpecification
 -> f (Maybe SourceAlgorithmSpecification))
-> ModelPackage -> f ModelPackage
modelPackage_sourceAlgorithmSpecification = (ModelPackage -> Maybe SourceAlgorithmSpecification)
-> (ModelPackage
    -> Maybe SourceAlgorithmSpecification -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe SourceAlgorithmSpecification)
     (Maybe 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)

-- | The name of the model.
modelPackage_modelPackageName :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageName :: (Maybe Text -> f (Maybe Text)) -> ModelPackage -> f ModelPackage
modelPackage_modelPackageName = (ModelPackage -> Maybe Text)
-> (ModelPackage -> Maybe Text -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Text) (Maybe Text)
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 Amazon Resource Name (ARN) of the model package.
modelPackage_modelPackageArn :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageArn :: (Maybe Text -> f (Maybe Text)) -> ModelPackage -> f ModelPackage
modelPackage_modelPackageArn = (ModelPackage -> Maybe Text)
-> (ModelPackage -> Maybe Text -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Text) (Maybe Text)
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)

-- | Metrics for the model.
modelPackage_modelMetrics :: Lens.Lens' ModelPackage (Prelude.Maybe ModelMetrics)
modelPackage_modelMetrics :: (Maybe ModelMetrics -> f (Maybe ModelMetrics))
-> ModelPackage -> f ModelPackage
modelPackage_modelMetrics = (ModelPackage -> Maybe ModelMetrics)
-> (ModelPackage -> Maybe ModelMetrics -> ModelPackage)
-> Lens
     ModelPackage ModelPackage (Maybe ModelMetrics) (Maybe 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 description of the model package.
modelPackage_modelPackageDescription :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageDescription :: (Maybe Text -> f (Maybe Text)) -> ModelPackage -> f ModelPackage
modelPackage_modelPackageDescription = (ModelPackage -> Maybe Text)
-> (ModelPackage -> Maybe Text -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Text) (Maybe Text)
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)

-- | Undocumented member.
modelPackage_createdBy :: Lens.Lens' ModelPackage (Prelude.Maybe UserContext)
modelPackage_createdBy :: (Maybe UserContext -> f (Maybe UserContext))
-> ModelPackage -> f ModelPackage
modelPackage_createdBy = (ModelPackage -> Maybe UserContext)
-> (ModelPackage -> Maybe UserContext -> ModelPackage)
-> Lens
     ModelPackage ModelPackage (Maybe UserContext) (Maybe UserContext)
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 last time the model package was modified.
modelPackage_lastModifiedTime :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.UTCTime)
modelPackage_lastModifiedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ModelPackage -> f ModelPackage
modelPackage_lastModifiedTime = (ModelPackage -> Maybe POSIX)
-> (ModelPackage -> Maybe POSIX -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> ModelPackage -> f ModelPackage)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ModelPackage
-> f ModelPackage
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Undocumented member.
modelPackage_validationSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe ModelPackageValidationSpecification)
modelPackage_validationSpecification :: (Maybe ModelPackageValidationSpecification
 -> f (Maybe ModelPackageValidationSpecification))
-> ModelPackage -> f ModelPackage
modelPackage_validationSpecification = (ModelPackage -> Maybe ModelPackageValidationSpecification)
-> (ModelPackage
    -> Maybe ModelPackageValidationSpecification -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe ModelPackageValidationSpecification)
     (Maybe ModelPackageValidationSpecification)
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)

-- | Undocumented member.
modelPackage_inferenceSpecification :: Lens.Lens' ModelPackage (Prelude.Maybe InferenceSpecification)
modelPackage_inferenceSpecification :: (Maybe InferenceSpecification -> f (Maybe InferenceSpecification))
-> ModelPackage -> f ModelPackage
modelPackage_inferenceSpecification = (ModelPackage -> Maybe InferenceSpecification)
-> (ModelPackage -> Maybe InferenceSpecification -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe InferenceSpecification)
     (Maybe 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)

-- | A description provided when the model approval is set.
modelPackage_approvalDescription :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_approvalDescription :: (Maybe Text -> f (Maybe Text)) -> ModelPackage -> f ModelPackage
modelPackage_approvalDescription = (ModelPackage -> Maybe Text)
-> (ModelPackage -> Maybe Text -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Text) (Maybe Text)
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)

-- | The version number of a versioned model.
modelPackage_modelPackageVersion :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Natural)
modelPackage_modelPackageVersion :: (Maybe Natural -> f (Maybe Natural))
-> ModelPackage -> f ModelPackage
modelPackage_modelPackageVersion = (ModelPackage -> Maybe Natural)
-> (ModelPackage -> Maybe Natural -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Natural) (Maybe Natural)
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)

-- | 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 :: (Maybe Bool -> f (Maybe Bool)) -> ModelPackage -> f ModelPackage
modelPackage_certifyForMarketplace = (ModelPackage -> Maybe Bool)
-> (ModelPackage -> Maybe Bool -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Bool) (Maybe Bool)
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)

-- | The model group to which the model belongs.
modelPackage_modelPackageGroupName :: Lens.Lens' ModelPackage (Prelude.Maybe Prelude.Text)
modelPackage_modelPackageGroupName :: (Maybe Text -> f (Maybe Text)) -> ModelPackage -> f ModelPackage
modelPackage_modelPackageGroupName = (ModelPackage -> Maybe Text)
-> (ModelPackage -> Maybe Text -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe Text) (Maybe Text)
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)

-- | Undocumented member.
modelPackage_lastModifiedBy :: Lens.Lens' ModelPackage (Prelude.Maybe UserContext)
modelPackage_lastModifiedBy :: (Maybe UserContext -> f (Maybe UserContext))
-> ModelPackage -> f ModelPackage
modelPackage_lastModifiedBy = (ModelPackage -> Maybe UserContext)
-> (ModelPackage -> Maybe UserContext -> ModelPackage)
-> Lens
     ModelPackage ModelPackage (Maybe UserContext) (Maybe UserContext)
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)

-- | Undocumented member.
modelPackage_modelPackageStatusDetails :: Lens.Lens' ModelPackage (Prelude.Maybe ModelPackageStatusDetails)
modelPackage_modelPackageStatusDetails :: (Maybe ModelPackageStatusDetails
 -> f (Maybe ModelPackageStatusDetails))
-> ModelPackage -> f ModelPackage
modelPackage_modelPackageStatusDetails = (ModelPackage -> Maybe ModelPackageStatusDetails)
-> (ModelPackage
    -> Maybe ModelPackageStatusDetails -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe ModelPackageStatusDetails)
     (Maybe 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)

-- | 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 :: (Maybe [Tag] -> f (Maybe [Tag])) -> ModelPackage -> f ModelPackage
modelPackage_tags = (ModelPackage -> Maybe [Tag])
-> (ModelPackage -> Maybe [Tag] -> ModelPackage)
-> Lens ModelPackage ModelPackage (Maybe [Tag]) (Maybe [Tag])
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) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> ModelPackage -> f ModelPackage)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> ModelPackage
-> f ModelPackage
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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 :: (Maybe ModelPackageStatus -> f (Maybe ModelPackageStatus))
-> ModelPackage -> f ModelPackage
modelPackage_modelPackageStatus = (ModelPackage -> Maybe ModelPackageStatus)
-> (ModelPackage -> Maybe ModelPackageStatus -> ModelPackage)
-> Lens
     ModelPackage
     ModelPackage
     (Maybe ModelPackageStatus)
     (Maybe 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)

instance Core.FromJSON ModelPackage where
  parseJSON :: Value -> Parser ModelPackage
parseJSON =
    String
-> (Object -> Parser ModelPackage) -> Value -> Parser ModelPackage
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ModelPackage"
      ( \Object
x ->
          Maybe POSIX
-> Maybe MetadataProperties
-> Maybe ModelApprovalStatus
-> Maybe SourceAlgorithmSpecification
-> Maybe Text
-> Maybe Text
-> Maybe ModelMetrics
-> Maybe Text
-> Maybe UserContext
-> Maybe POSIX
-> Maybe ModelPackageValidationSpecification
-> Maybe InferenceSpecification
-> Maybe Text
-> Maybe Natural
-> Maybe Bool
-> Maybe Text
-> Maybe UserContext
-> Maybe ModelPackageStatusDetails
-> Maybe [Tag]
-> Maybe ModelPackageStatus
-> ModelPackage
ModelPackage'
            (Maybe POSIX
 -> Maybe MetadataProperties
 -> Maybe ModelApprovalStatus
 -> Maybe SourceAlgorithmSpecification
 -> Maybe Text
 -> Maybe Text
 -> Maybe ModelMetrics
 -> Maybe Text
 -> Maybe UserContext
 -> Maybe POSIX
 -> Maybe ModelPackageValidationSpecification
 -> Maybe InferenceSpecification
 -> Maybe Text
 -> Maybe Natural
 -> Maybe Bool
 -> Maybe Text
 -> Maybe UserContext
 -> Maybe ModelPackageStatusDetails
 -> Maybe [Tag]
 -> Maybe ModelPackageStatus
 -> ModelPackage)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe MetadataProperties
      -> Maybe ModelApprovalStatus
      -> Maybe SourceAlgorithmSpecification
      -> Maybe Text
      -> Maybe Text
      -> Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreationTime")
            Parser
  (Maybe MetadataProperties
   -> Maybe ModelApprovalStatus
   -> Maybe SourceAlgorithmSpecification
   -> Maybe Text
   -> Maybe Text
   -> Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe MetadataProperties)
-> Parser
     (Maybe ModelApprovalStatus
      -> Maybe SourceAlgorithmSpecification
      -> Maybe Text
      -> Maybe Text
      -> Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe MetadataProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MetadataProperties")
            Parser
  (Maybe ModelApprovalStatus
   -> Maybe SourceAlgorithmSpecification
   -> Maybe Text
   -> Maybe Text
   -> Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe ModelApprovalStatus)
-> Parser
     (Maybe SourceAlgorithmSpecification
      -> Maybe Text
      -> Maybe Text
      -> Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelApprovalStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelApprovalStatus")
            Parser
  (Maybe SourceAlgorithmSpecification
   -> Maybe Text
   -> Maybe Text
   -> Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe SourceAlgorithmSpecification)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SourceAlgorithmSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SourceAlgorithmSpecification")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageName")
            Parser
  (Maybe Text
   -> Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Text)
-> Parser
     (Maybe ModelMetrics
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageArn")
            Parser
  (Maybe ModelMetrics
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe ModelMetrics)
-> Parser
     (Maybe Text
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelMetrics)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelMetrics")
            Parser
  (Maybe Text
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Text)
-> Parser
     (Maybe UserContext
      -> Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageDescription")
            Parser
  (Maybe UserContext
   -> Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe UserContext)
-> Parser
     (Maybe POSIX
      -> Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe UserContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreatedBy")
            Parser
  (Maybe POSIX
   -> Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe ModelPackageValidationSpecification
      -> Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LastModifiedTime")
            Parser
  (Maybe ModelPackageValidationSpecification
   -> Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe ModelPackageValidationSpecification)
-> Parser
     (Maybe InferenceSpecification
      -> Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe ModelPackageValidationSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ValidationSpecification")
            Parser
  (Maybe InferenceSpecification
   -> Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe InferenceSpecification)
-> Parser
     (Maybe Text
      -> Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe InferenceSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InferenceSpecification")
            Parser
  (Maybe Text
   -> Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Text)
-> Parser
     (Maybe Natural
      -> Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ApprovalDescription")
            Parser
  (Maybe Natural
   -> Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageVersion")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CertifyForMarketplace")
            Parser
  (Maybe Text
   -> Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe Text)
-> Parser
     (Maybe UserContext
      -> Maybe ModelPackageStatusDetails
      -> Maybe [Tag]
      -> Maybe ModelPackageStatus
      -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageGroupName")
            Parser
  (Maybe UserContext
   -> Maybe ModelPackageStatusDetails
   -> Maybe [Tag]
   -> Maybe ModelPackageStatus
   -> ModelPackage)
-> Parser (Maybe UserContext)
-> Parser
     (Maybe ModelPackageStatusDetails
      -> Maybe [Tag] -> Maybe ModelPackageStatus -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe UserContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LastModifiedBy")
            Parser
  (Maybe ModelPackageStatusDetails
   -> Maybe [Tag] -> Maybe ModelPackageStatus -> ModelPackage)
-> Parser (Maybe ModelPackageStatusDetails)
-> Parser (Maybe [Tag] -> Maybe ModelPackageStatus -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelPackageStatusDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageStatusDetails")
            Parser (Maybe [Tag] -> Maybe ModelPackageStatus -> ModelPackage)
-> Parser (Maybe [Tag])
-> Parser (Maybe ModelPackageStatus -> ModelPackage)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Tags" Parser (Maybe (Maybe [Tag])) -> Maybe [Tag] -> Parser (Maybe [Tag])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
            Parser (Maybe ModelPackageStatus -> ModelPackage)
-> Parser (Maybe ModelPackageStatus) -> Parser ModelPackage
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelPackageStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelPackageStatus")
      )

instance Prelude.Hashable ModelPackage

instance Prelude.NFData ModelPackage