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

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

-- |
-- Module      : Amazonka.SageMaker.DescribeModelCard
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the content, creation time, and security configuration of an
-- Amazon SageMaker Model Card.
module Amazonka.SageMaker.DescribeModelCard
  ( -- * Creating a Request
    DescribeModelCard (..),
    newDescribeModelCard,

    -- * Request Lenses
    describeModelCard_modelCardVersion,
    describeModelCard_modelCardName,

    -- * Destructuring the Response
    DescribeModelCardResponse (..),
    newDescribeModelCardResponse,

    -- * Response Lenses
    describeModelCardResponse_lastModifiedBy,
    describeModelCardResponse_lastModifiedTime,
    describeModelCardResponse_modelCardProcessingStatus,
    describeModelCardResponse_securityConfig,
    describeModelCardResponse_httpStatus,
    describeModelCardResponse_modelCardArn,
    describeModelCardResponse_modelCardName,
    describeModelCardResponse_modelCardVersion,
    describeModelCardResponse_content,
    describeModelCardResponse_modelCardStatus,
    describeModelCardResponse_creationTime,
    describeModelCardResponse_createdBy,
  )
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SageMaker.Types

-- | /See:/ 'newDescribeModelCard' smart constructor.
data DescribeModelCard = DescribeModelCard'
  { -- | The version of the model card to describe. If a version is not provided,
    -- then the latest version of the model card is described.
    DescribeModelCard -> Maybe Int
modelCardVersion :: Prelude.Maybe Prelude.Int,
    -- | The name of the model card to describe.
    DescribeModelCard -> Text
modelCardName :: Prelude.Text
  }
  deriving (DescribeModelCard -> DescribeModelCard -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelCard -> DescribeModelCard -> Bool
$c/= :: DescribeModelCard -> DescribeModelCard -> Bool
== :: DescribeModelCard -> DescribeModelCard -> Bool
$c== :: DescribeModelCard -> DescribeModelCard -> Bool
Prelude.Eq, ReadPrec [DescribeModelCard]
ReadPrec DescribeModelCard
Int -> ReadS DescribeModelCard
ReadS [DescribeModelCard]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeModelCard]
$creadListPrec :: ReadPrec [DescribeModelCard]
readPrec :: ReadPrec DescribeModelCard
$creadPrec :: ReadPrec DescribeModelCard
readList :: ReadS [DescribeModelCard]
$creadList :: ReadS [DescribeModelCard]
readsPrec :: Int -> ReadS DescribeModelCard
$creadsPrec :: Int -> ReadS DescribeModelCard
Prelude.Read, Int -> DescribeModelCard -> ShowS
[DescribeModelCard] -> ShowS
DescribeModelCard -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelCard] -> ShowS
$cshowList :: [DescribeModelCard] -> ShowS
show :: DescribeModelCard -> String
$cshow :: DescribeModelCard -> String
showsPrec :: Int -> DescribeModelCard -> ShowS
$cshowsPrec :: Int -> DescribeModelCard -> ShowS
Prelude.Show, forall x. Rep DescribeModelCard x -> DescribeModelCard
forall x. DescribeModelCard -> Rep DescribeModelCard x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeModelCard x -> DescribeModelCard
$cfrom :: forall x. DescribeModelCard -> Rep DescribeModelCard x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelCard' 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:
--
-- 'modelCardVersion', 'describeModelCard_modelCardVersion' - The version of the model card to describe. If a version is not provided,
-- then the latest version of the model card is described.
--
-- 'modelCardName', 'describeModelCard_modelCardName' - The name of the model card to describe.
newDescribeModelCard ::
  -- | 'modelCardName'
  Prelude.Text ->
  DescribeModelCard
newDescribeModelCard :: Text -> DescribeModelCard
newDescribeModelCard Text
pModelCardName_ =
  DescribeModelCard'
    { $sel:modelCardVersion:DescribeModelCard' :: Maybe Int
modelCardVersion =
        forall a. Maybe a
Prelude.Nothing,
      $sel:modelCardName:DescribeModelCard' :: Text
modelCardName = Text
pModelCardName_
    }

-- | The version of the model card to describe. If a version is not provided,
-- then the latest version of the model card is described.
describeModelCard_modelCardVersion :: Lens.Lens' DescribeModelCard (Prelude.Maybe Prelude.Int)
describeModelCard_modelCardVersion :: Lens' DescribeModelCard (Maybe Int)
describeModelCard_modelCardVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCard' {Maybe Int
modelCardVersion :: Maybe Int
$sel:modelCardVersion:DescribeModelCard' :: DescribeModelCard -> Maybe Int
modelCardVersion} -> Maybe Int
modelCardVersion) (\s :: DescribeModelCard
s@DescribeModelCard' {} Maybe Int
a -> DescribeModelCard
s {$sel:modelCardVersion:DescribeModelCard' :: Maybe Int
modelCardVersion = Maybe Int
a} :: DescribeModelCard)

-- | The name of the model card to describe.
describeModelCard_modelCardName :: Lens.Lens' DescribeModelCard Prelude.Text
describeModelCard_modelCardName :: Lens' DescribeModelCard Text
describeModelCard_modelCardName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCard' {Text
modelCardName :: Text
$sel:modelCardName:DescribeModelCard' :: DescribeModelCard -> Text
modelCardName} -> Text
modelCardName) (\s :: DescribeModelCard
s@DescribeModelCard' {} Text
a -> DescribeModelCard
s {$sel:modelCardName:DescribeModelCard' :: Text
modelCardName = Text
a} :: DescribeModelCard)

instance Core.AWSRequest DescribeModelCard where
  type
    AWSResponse DescribeModelCard =
      DescribeModelCardResponse
  request :: (Service -> Service)
-> DescribeModelCard -> Request DescribeModelCard
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeModelCard
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeModelCard)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe UserContext
-> Maybe POSIX
-> Maybe ModelCardProcessingStatus
-> Maybe ModelCardSecurityConfig
-> Int
-> Text
-> Text
-> Int
-> Sensitive Text
-> ModelCardStatus
-> POSIX
-> UserContext
-> DescribeModelCardResponse
DescribeModelCardResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModifiedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModifiedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ModelCardProcessingStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SecurityConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ModelCardArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ModelCardName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ModelCardVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Content")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ModelCardStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String 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 -> Either String a
Data..:> Key
"CreatedBy")
      )

instance Prelude.Hashable DescribeModelCard where
  hashWithSalt :: Int -> DescribeModelCard -> Int
hashWithSalt Int
_salt DescribeModelCard' {Maybe Int
Text
modelCardName :: Text
modelCardVersion :: Maybe Int
$sel:modelCardName:DescribeModelCard' :: DescribeModelCard -> Text
$sel:modelCardVersion:DescribeModelCard' :: DescribeModelCard -> Maybe Int
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
modelCardVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelCardName

instance Prelude.NFData DescribeModelCard where
  rnf :: DescribeModelCard -> ()
rnf DescribeModelCard' {Maybe Int
Text
modelCardName :: Text
modelCardVersion :: Maybe Int
$sel:modelCardName:DescribeModelCard' :: DescribeModelCard -> Text
$sel:modelCardVersion:DescribeModelCard' :: DescribeModelCard -> Maybe Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
modelCardVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelCardName

instance Data.ToHeaders DescribeModelCard where
  toHeaders :: DescribeModelCard -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"SageMaker.DescribeModelCard" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DescribeModelCard where
  toJSON :: DescribeModelCard -> Value
toJSON DescribeModelCard' {Maybe Int
Text
modelCardName :: Text
modelCardVersion :: Maybe Int
$sel:modelCardName:DescribeModelCard' :: DescribeModelCard -> Text
$sel:modelCardVersion:DescribeModelCard' :: DescribeModelCard -> Maybe Int
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ModelCardVersion" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
modelCardVersion,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ModelCardName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
modelCardName)
          ]
      )

instance Data.ToPath DescribeModelCard where
  toPath :: DescribeModelCard -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newDescribeModelCardResponse' smart constructor.
data DescribeModelCardResponse = DescribeModelCardResponse'
  { DescribeModelCardResponse -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    -- | The date and time the model card was last modified.
    DescribeModelCardResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | The processing status of model card deletion. The
    -- @ModelCardProcessingStatus@ updates throughout the different deletion
    -- steps.
    --
    -- -   @DeletePending@: Model card deletion request received.
    --
    -- -   @DeleteInProgress@: Model card deletion is in progress.
    --
    -- -   @ContentDeleted@: Deleted model card content.
    --
    -- -   @ExportJobsDeleted@: Deleted all export jobs associated with the
    --     model card.
    --
    -- -   @DeleteCompleted@: Successfully deleted the model card.
    --
    -- -   @DeleteFailed@: The model card failed to delete.
    DescribeModelCardResponse -> Maybe ModelCardProcessingStatus
modelCardProcessingStatus :: Prelude.Maybe ModelCardProcessingStatus,
    -- | The security configuration used to protect model card content.
    DescribeModelCardResponse -> Maybe ModelCardSecurityConfig
securityConfig :: Prelude.Maybe ModelCardSecurityConfig,
    -- | The response's http status code.
    DescribeModelCardResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the model card.
    DescribeModelCardResponse -> Text
modelCardArn :: Prelude.Text,
    -- | The name of the model card.
    DescribeModelCardResponse -> Text
modelCardName :: Prelude.Text,
    -- | The version of the model card.
    DescribeModelCardResponse -> Int
modelCardVersion :: Prelude.Int,
    -- | The content of the model card.
    DescribeModelCardResponse -> Sensitive Text
content :: Data.Sensitive Prelude.Text,
    -- | The approval status of the model card within your organization.
    -- Different organizations might have different criteria for model card
    -- review and approval.
    --
    -- -   @Draft@: The model card is a work in progress.
    --
    -- -   @PendingReview@: The model card is pending review.
    --
    -- -   @Approved@: The model card is approved.
    --
    -- -   @Archived@: The model card is archived. No more updates should be
    --     made to the model card, but it can still be exported.
    DescribeModelCardResponse -> ModelCardStatus
modelCardStatus :: ModelCardStatus,
    -- | The date and time the model card was created.
    DescribeModelCardResponse -> POSIX
creationTime :: Data.POSIX,
    DescribeModelCardResponse -> UserContext
createdBy :: UserContext
  }
  deriving (DescribeModelCardResponse -> DescribeModelCardResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeModelCardResponse -> DescribeModelCardResponse -> Bool
$c/= :: DescribeModelCardResponse -> DescribeModelCardResponse -> Bool
== :: DescribeModelCardResponse -> DescribeModelCardResponse -> Bool
$c== :: DescribeModelCardResponse -> DescribeModelCardResponse -> Bool
Prelude.Eq, Int -> DescribeModelCardResponse -> ShowS
[DescribeModelCardResponse] -> ShowS
DescribeModelCardResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeModelCardResponse] -> ShowS
$cshowList :: [DescribeModelCardResponse] -> ShowS
show :: DescribeModelCardResponse -> String
$cshow :: DescribeModelCardResponse -> String
showsPrec :: Int -> DescribeModelCardResponse -> ShowS
$cshowsPrec :: Int -> DescribeModelCardResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeModelCardResponse x -> DescribeModelCardResponse
forall x.
DescribeModelCardResponse -> Rep DescribeModelCardResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeModelCardResponse x -> DescribeModelCardResponse
$cfrom :: forall x.
DescribeModelCardResponse -> Rep DescribeModelCardResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeModelCardResponse' 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:
--
-- 'lastModifiedBy', 'describeModelCardResponse_lastModifiedBy' - Undocumented member.
--
-- 'lastModifiedTime', 'describeModelCardResponse_lastModifiedTime' - The date and time the model card was last modified.
--
-- 'modelCardProcessingStatus', 'describeModelCardResponse_modelCardProcessingStatus' - The processing status of model card deletion. The
-- @ModelCardProcessingStatus@ updates throughout the different deletion
-- steps.
--
-- -   @DeletePending@: Model card deletion request received.
--
-- -   @DeleteInProgress@: Model card deletion is in progress.
--
-- -   @ContentDeleted@: Deleted model card content.
--
-- -   @ExportJobsDeleted@: Deleted all export jobs associated with the
--     model card.
--
-- -   @DeleteCompleted@: Successfully deleted the model card.
--
-- -   @DeleteFailed@: The model card failed to delete.
--
-- 'securityConfig', 'describeModelCardResponse_securityConfig' - The security configuration used to protect model card content.
--
-- 'httpStatus', 'describeModelCardResponse_httpStatus' - The response's http status code.
--
-- 'modelCardArn', 'describeModelCardResponse_modelCardArn' - The Amazon Resource Name (ARN) of the model card.
--
-- 'modelCardName', 'describeModelCardResponse_modelCardName' - The name of the model card.
--
-- 'modelCardVersion', 'describeModelCardResponse_modelCardVersion' - The version of the model card.
--
-- 'content', 'describeModelCardResponse_content' - The content of the model card.
--
-- 'modelCardStatus', 'describeModelCardResponse_modelCardStatus' - The approval status of the model card within your organization.
-- Different organizations might have different criteria for model card
-- review and approval.
--
-- -   @Draft@: The model card is a work in progress.
--
-- -   @PendingReview@: The model card is pending review.
--
-- -   @Approved@: The model card is approved.
--
-- -   @Archived@: The model card is archived. No more updates should be
--     made to the model card, but it can still be exported.
--
-- 'creationTime', 'describeModelCardResponse_creationTime' - The date and time the model card was created.
--
-- 'createdBy', 'describeModelCardResponse_createdBy' - Undocumented member.
newDescribeModelCardResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'modelCardArn'
  Prelude.Text ->
  -- | 'modelCardName'
  Prelude.Text ->
  -- | 'modelCardVersion'
  Prelude.Int ->
  -- | 'content'
  Prelude.Text ->
  -- | 'modelCardStatus'
  ModelCardStatus ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'createdBy'
  UserContext ->
  DescribeModelCardResponse
newDescribeModelCardResponse :: Int
-> Text
-> Text
-> Int
-> Text
-> ModelCardStatus
-> UTCTime
-> UserContext
-> DescribeModelCardResponse
newDescribeModelCardResponse
  Int
pHttpStatus_
  Text
pModelCardArn_
  Text
pModelCardName_
  Int
pModelCardVersion_
  Text
pContent_
  ModelCardStatus
pModelCardStatus_
  UTCTime
pCreationTime_
  UserContext
pCreatedBy_ =
    DescribeModelCardResponse'
      { $sel:lastModifiedBy:DescribeModelCardResponse' :: Maybe UserContext
lastModifiedBy =
          forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedTime:DescribeModelCardResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
        $sel:modelCardProcessingStatus:DescribeModelCardResponse' :: Maybe ModelCardProcessingStatus
modelCardProcessingStatus = forall a. Maybe a
Prelude.Nothing,
        $sel:securityConfig:DescribeModelCardResponse' :: Maybe ModelCardSecurityConfig
securityConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeModelCardResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:modelCardArn:DescribeModelCardResponse' :: Text
modelCardArn = Text
pModelCardArn_,
        $sel:modelCardName:DescribeModelCardResponse' :: Text
modelCardName = Text
pModelCardName_,
        $sel:modelCardVersion:DescribeModelCardResponse' :: Int
modelCardVersion = Int
pModelCardVersion_,
        $sel:content:DescribeModelCardResponse' :: Sensitive Text
content = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pContent_,
        $sel:modelCardStatus:DescribeModelCardResponse' :: ModelCardStatus
modelCardStatus = ModelCardStatus
pModelCardStatus_,
        $sel:creationTime:DescribeModelCardResponse' :: POSIX
creationTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:createdBy:DescribeModelCardResponse' :: UserContext
createdBy = UserContext
pCreatedBy_
      }

-- | Undocumented member.
describeModelCardResponse_lastModifiedBy :: Lens.Lens' DescribeModelCardResponse (Prelude.Maybe UserContext)
describeModelCardResponse_lastModifiedBy :: Lens' DescribeModelCardResponse (Maybe UserContext)
describeModelCardResponse_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Maybe UserContext
lastModifiedBy :: Maybe UserContext
$sel:lastModifiedBy:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe UserContext
lastModifiedBy} -> Maybe UserContext
lastModifiedBy) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Maybe UserContext
a -> DescribeModelCardResponse
s {$sel:lastModifiedBy:DescribeModelCardResponse' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
a} :: DescribeModelCardResponse)

-- | The date and time the model card was last modified.
describeModelCardResponse_lastModifiedTime :: Lens.Lens' DescribeModelCardResponse (Prelude.Maybe Prelude.UTCTime)
describeModelCardResponse_lastModifiedTime :: Lens' DescribeModelCardResponse (Maybe UTCTime)
describeModelCardResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Maybe POSIX
a -> DescribeModelCardResponse
s {$sel:lastModifiedTime:DescribeModelCardResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeModelCardResponse) 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 processing status of model card deletion. The
-- @ModelCardProcessingStatus@ updates throughout the different deletion
-- steps.
--
-- -   @DeletePending@: Model card deletion request received.
--
-- -   @DeleteInProgress@: Model card deletion is in progress.
--
-- -   @ContentDeleted@: Deleted model card content.
--
-- -   @ExportJobsDeleted@: Deleted all export jobs associated with the
--     model card.
--
-- -   @DeleteCompleted@: Successfully deleted the model card.
--
-- -   @DeleteFailed@: The model card failed to delete.
describeModelCardResponse_modelCardProcessingStatus :: Lens.Lens' DescribeModelCardResponse (Prelude.Maybe ModelCardProcessingStatus)
describeModelCardResponse_modelCardProcessingStatus :: Lens' DescribeModelCardResponse (Maybe ModelCardProcessingStatus)
describeModelCardResponse_modelCardProcessingStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Maybe ModelCardProcessingStatus
modelCardProcessingStatus :: Maybe ModelCardProcessingStatus
$sel:modelCardProcessingStatus:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe ModelCardProcessingStatus
modelCardProcessingStatus} -> Maybe ModelCardProcessingStatus
modelCardProcessingStatus) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Maybe ModelCardProcessingStatus
a -> DescribeModelCardResponse
s {$sel:modelCardProcessingStatus:DescribeModelCardResponse' :: Maybe ModelCardProcessingStatus
modelCardProcessingStatus = Maybe ModelCardProcessingStatus
a} :: DescribeModelCardResponse)

-- | The security configuration used to protect model card content.
describeModelCardResponse_securityConfig :: Lens.Lens' DescribeModelCardResponse (Prelude.Maybe ModelCardSecurityConfig)
describeModelCardResponse_securityConfig :: Lens' DescribeModelCardResponse (Maybe ModelCardSecurityConfig)
describeModelCardResponse_securityConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Maybe ModelCardSecurityConfig
securityConfig :: Maybe ModelCardSecurityConfig
$sel:securityConfig:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe ModelCardSecurityConfig
securityConfig} -> Maybe ModelCardSecurityConfig
securityConfig) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Maybe ModelCardSecurityConfig
a -> DescribeModelCardResponse
s {$sel:securityConfig:DescribeModelCardResponse' :: Maybe ModelCardSecurityConfig
securityConfig = Maybe ModelCardSecurityConfig
a} :: DescribeModelCardResponse)

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

-- | The Amazon Resource Name (ARN) of the model card.
describeModelCardResponse_modelCardArn :: Lens.Lens' DescribeModelCardResponse Prelude.Text
describeModelCardResponse_modelCardArn :: Lens' DescribeModelCardResponse Text
describeModelCardResponse_modelCardArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Text
modelCardArn :: Text
$sel:modelCardArn:DescribeModelCardResponse' :: DescribeModelCardResponse -> Text
modelCardArn} -> Text
modelCardArn) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Text
a -> DescribeModelCardResponse
s {$sel:modelCardArn:DescribeModelCardResponse' :: Text
modelCardArn = Text
a} :: DescribeModelCardResponse)

-- | The name of the model card.
describeModelCardResponse_modelCardName :: Lens.Lens' DescribeModelCardResponse Prelude.Text
describeModelCardResponse_modelCardName :: Lens' DescribeModelCardResponse Text
describeModelCardResponse_modelCardName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Text
modelCardName :: Text
$sel:modelCardName:DescribeModelCardResponse' :: DescribeModelCardResponse -> Text
modelCardName} -> Text
modelCardName) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Text
a -> DescribeModelCardResponse
s {$sel:modelCardName:DescribeModelCardResponse' :: Text
modelCardName = Text
a} :: DescribeModelCardResponse)

-- | The version of the model card.
describeModelCardResponse_modelCardVersion :: Lens.Lens' DescribeModelCardResponse Prelude.Int
describeModelCardResponse_modelCardVersion :: Lens' DescribeModelCardResponse Int
describeModelCardResponse_modelCardVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Int
modelCardVersion :: Int
$sel:modelCardVersion:DescribeModelCardResponse' :: DescribeModelCardResponse -> Int
modelCardVersion} -> Int
modelCardVersion) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Int
a -> DescribeModelCardResponse
s {$sel:modelCardVersion:DescribeModelCardResponse' :: Int
modelCardVersion = Int
a} :: DescribeModelCardResponse)

-- | The content of the model card.
describeModelCardResponse_content :: Lens.Lens' DescribeModelCardResponse Prelude.Text
describeModelCardResponse_content :: Lens' DescribeModelCardResponse Text
describeModelCardResponse_content = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {Sensitive Text
content :: Sensitive Text
$sel:content:DescribeModelCardResponse' :: DescribeModelCardResponse -> Sensitive Text
content} -> Sensitive Text
content) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} Sensitive Text
a -> DescribeModelCardResponse
s {$sel:content:DescribeModelCardResponse' :: Sensitive Text
content = Sensitive Text
a} :: DescribeModelCardResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | The approval status of the model card within your organization.
-- Different organizations might have different criteria for model card
-- review and approval.
--
-- -   @Draft@: The model card is a work in progress.
--
-- -   @PendingReview@: The model card is pending review.
--
-- -   @Approved@: The model card is approved.
--
-- -   @Archived@: The model card is archived. No more updates should be
--     made to the model card, but it can still be exported.
describeModelCardResponse_modelCardStatus :: Lens.Lens' DescribeModelCardResponse ModelCardStatus
describeModelCardResponse_modelCardStatus :: Lens' DescribeModelCardResponse ModelCardStatus
describeModelCardResponse_modelCardStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {ModelCardStatus
modelCardStatus :: ModelCardStatus
$sel:modelCardStatus:DescribeModelCardResponse' :: DescribeModelCardResponse -> ModelCardStatus
modelCardStatus} -> ModelCardStatus
modelCardStatus) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} ModelCardStatus
a -> DescribeModelCardResponse
s {$sel:modelCardStatus:DescribeModelCardResponse' :: ModelCardStatus
modelCardStatus = ModelCardStatus
a} :: DescribeModelCardResponse)

-- | The date and time the model card was created.
describeModelCardResponse_creationTime :: Lens.Lens' DescribeModelCardResponse Prelude.UTCTime
describeModelCardResponse_creationTime :: Lens' DescribeModelCardResponse UTCTime
describeModelCardResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeModelCardResponse' :: DescribeModelCardResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} POSIX
a -> DescribeModelCardResponse
s {$sel:creationTime:DescribeModelCardResponse' :: POSIX
creationTime = POSIX
a} :: DescribeModelCardResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Undocumented member.
describeModelCardResponse_createdBy :: Lens.Lens' DescribeModelCardResponse UserContext
describeModelCardResponse_createdBy :: Lens' DescribeModelCardResponse UserContext
describeModelCardResponse_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeModelCardResponse' {UserContext
createdBy :: UserContext
$sel:createdBy:DescribeModelCardResponse' :: DescribeModelCardResponse -> UserContext
createdBy} -> UserContext
createdBy) (\s :: DescribeModelCardResponse
s@DescribeModelCardResponse' {} UserContext
a -> DescribeModelCardResponse
s {$sel:createdBy:DescribeModelCardResponse' :: UserContext
createdBy = UserContext
a} :: DescribeModelCardResponse)

instance Prelude.NFData DescribeModelCardResponse where
  rnf :: DescribeModelCardResponse -> ()
rnf DescribeModelCardResponse' {Int
Maybe POSIX
Maybe ModelCardProcessingStatus
Maybe ModelCardSecurityConfig
Maybe UserContext
Text
Sensitive Text
POSIX
ModelCardStatus
UserContext
createdBy :: UserContext
creationTime :: POSIX
modelCardStatus :: ModelCardStatus
content :: Sensitive Text
modelCardVersion :: Int
modelCardName :: Text
modelCardArn :: Text
httpStatus :: Int
securityConfig :: Maybe ModelCardSecurityConfig
modelCardProcessingStatus :: Maybe ModelCardProcessingStatus
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
$sel:createdBy:DescribeModelCardResponse' :: DescribeModelCardResponse -> UserContext
$sel:creationTime:DescribeModelCardResponse' :: DescribeModelCardResponse -> POSIX
$sel:modelCardStatus:DescribeModelCardResponse' :: DescribeModelCardResponse -> ModelCardStatus
$sel:content:DescribeModelCardResponse' :: DescribeModelCardResponse -> Sensitive Text
$sel:modelCardVersion:DescribeModelCardResponse' :: DescribeModelCardResponse -> Int
$sel:modelCardName:DescribeModelCardResponse' :: DescribeModelCardResponse -> Text
$sel:modelCardArn:DescribeModelCardResponse' :: DescribeModelCardResponse -> Text
$sel:httpStatus:DescribeModelCardResponse' :: DescribeModelCardResponse -> Int
$sel:securityConfig:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe ModelCardSecurityConfig
$sel:modelCardProcessingStatus:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe ModelCardProcessingStatus
$sel:lastModifiedTime:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe POSIX
$sel:lastModifiedBy:DescribeModelCardResponse' :: DescribeModelCardResponse -> Maybe UserContext
..} =
    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 ModelCardProcessingStatus
modelCardProcessingStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelCardSecurityConfig
securityConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelCardArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelCardName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
modelCardVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
content
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ModelCardStatus
modelCardStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf UserContext
createdBy