{-# 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.CreateModelCard
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an Amazon SageMaker Model Card.
--
-- For information about how to use model cards, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards.html Amazon SageMaker Model Card>.
module Amazonka.SageMaker.CreateModelCard
  ( -- * Creating a Request
    CreateModelCard (..),
    newCreateModelCard,

    -- * Request Lenses
    createModelCard_securityConfig,
    createModelCard_tags,
    createModelCard_modelCardName,
    createModelCard_content,
    createModelCard_modelCardStatus,

    -- * Destructuring the Response
    CreateModelCardResponse (..),
    newCreateModelCardResponse,

    -- * Response Lenses
    createModelCardResponse_httpStatus,
    createModelCardResponse_modelCardArn,
  )
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:/ 'newCreateModelCard' smart constructor.
data CreateModelCard = CreateModelCard'
  { -- | An optional Key Management Service key to encrypt, decrypt, and
    -- re-encrypt model card content for regulated workloads with highly
    -- sensitive data.
    CreateModelCard -> Maybe ModelCardSecurityConfig
securityConfig :: Prelude.Maybe ModelCardSecurityConfig,
    -- | Key-value pairs used to manage metadata for model cards.
    CreateModelCard -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The unique name of the model card.
    CreateModelCard -> Text
modelCardName :: Prelude.Text,
    -- | The content of the model card. Content must be in
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards-api-json-schema.html model card JSON schema>
    -- and provided as a string.
    CreateModelCard -> 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.
    CreateModelCard -> ModelCardStatus
modelCardStatus :: ModelCardStatus
  }
  deriving (CreateModelCard -> CreateModelCard -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateModelCard -> CreateModelCard -> Bool
$c/= :: CreateModelCard -> CreateModelCard -> Bool
== :: CreateModelCard -> CreateModelCard -> Bool
$c== :: CreateModelCard -> CreateModelCard -> Bool
Prelude.Eq, Int -> CreateModelCard -> ShowS
[CreateModelCard] -> ShowS
CreateModelCard -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateModelCard] -> ShowS
$cshowList :: [CreateModelCard] -> ShowS
show :: CreateModelCard -> String
$cshow :: CreateModelCard -> String
showsPrec :: Int -> CreateModelCard -> ShowS
$cshowsPrec :: Int -> CreateModelCard -> ShowS
Prelude.Show, forall x. Rep CreateModelCard x -> CreateModelCard
forall x. CreateModelCard -> Rep CreateModelCard x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateModelCard x -> CreateModelCard
$cfrom :: forall x. CreateModelCard -> Rep CreateModelCard x
Prelude.Generic)

-- |
-- Create a value of 'CreateModelCard' 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:
--
-- 'securityConfig', 'createModelCard_securityConfig' - An optional Key Management Service key to encrypt, decrypt, and
-- re-encrypt model card content for regulated workloads with highly
-- sensitive data.
--
-- 'tags', 'createModelCard_tags' - Key-value pairs used to manage metadata for model cards.
--
-- 'modelCardName', 'createModelCard_modelCardName' - The unique name of the model card.
--
-- 'content', 'createModelCard_content' - The content of the model card. Content must be in
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards-api-json-schema.html model card JSON schema>
-- and provided as a string.
--
-- 'modelCardStatus', 'createModelCard_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.
newCreateModelCard ::
  -- | 'modelCardName'
  Prelude.Text ->
  -- | 'content'
  Prelude.Text ->
  -- | 'modelCardStatus'
  ModelCardStatus ->
  CreateModelCard
newCreateModelCard :: Text -> Text -> ModelCardStatus -> CreateModelCard
newCreateModelCard
  Text
pModelCardName_
  Text
pContent_
  ModelCardStatus
pModelCardStatus_ =
    CreateModelCard'
      { $sel:securityConfig:CreateModelCard' :: Maybe ModelCardSecurityConfig
securityConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateModelCard' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:modelCardName:CreateModelCard' :: Text
modelCardName = Text
pModelCardName_,
        $sel:content:CreateModelCard' :: Sensitive Text
content = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pContent_,
        $sel:modelCardStatus:CreateModelCard' :: ModelCardStatus
modelCardStatus = ModelCardStatus
pModelCardStatus_
      }

-- | An optional Key Management Service key to encrypt, decrypt, and
-- re-encrypt model card content for regulated workloads with highly
-- sensitive data.
createModelCard_securityConfig :: Lens.Lens' CreateModelCard (Prelude.Maybe ModelCardSecurityConfig)
createModelCard_securityConfig :: Lens' CreateModelCard (Maybe ModelCardSecurityConfig)
createModelCard_securityConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelCard' {Maybe ModelCardSecurityConfig
securityConfig :: Maybe ModelCardSecurityConfig
$sel:securityConfig:CreateModelCard' :: CreateModelCard -> Maybe ModelCardSecurityConfig
securityConfig} -> Maybe ModelCardSecurityConfig
securityConfig) (\s :: CreateModelCard
s@CreateModelCard' {} Maybe ModelCardSecurityConfig
a -> CreateModelCard
s {$sel:securityConfig:CreateModelCard' :: Maybe ModelCardSecurityConfig
securityConfig = Maybe ModelCardSecurityConfig
a} :: CreateModelCard)

-- | Key-value pairs used to manage metadata for model cards.
createModelCard_tags :: Lens.Lens' CreateModelCard (Prelude.Maybe [Tag])
createModelCard_tags :: Lens' CreateModelCard (Maybe [Tag])
createModelCard_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelCard' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateModelCard' :: CreateModelCard -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateModelCard
s@CreateModelCard' {} Maybe [Tag]
a -> CreateModelCard
s {$sel:tags:CreateModelCard' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateModelCard) 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 unique name of the model card.
createModelCard_modelCardName :: Lens.Lens' CreateModelCard Prelude.Text
createModelCard_modelCardName :: Lens' CreateModelCard Text
createModelCard_modelCardName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelCard' {Text
modelCardName :: Text
$sel:modelCardName:CreateModelCard' :: CreateModelCard -> Text
modelCardName} -> Text
modelCardName) (\s :: CreateModelCard
s@CreateModelCard' {} Text
a -> CreateModelCard
s {$sel:modelCardName:CreateModelCard' :: Text
modelCardName = Text
a} :: CreateModelCard)

-- | The content of the model card. Content must be in
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/model-cards-api-json-schema.html model card JSON schema>
-- and provided as a string.
createModelCard_content :: Lens.Lens' CreateModelCard Prelude.Text
createModelCard_content :: Lens' CreateModelCard Text
createModelCard_content = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelCard' {Sensitive Text
content :: Sensitive Text
$sel:content:CreateModelCard' :: CreateModelCard -> Sensitive Text
content} -> Sensitive Text
content) (\s :: CreateModelCard
s@CreateModelCard' {} Sensitive Text
a -> CreateModelCard
s {$sel:content:CreateModelCard' :: Sensitive Text
content = Sensitive Text
a} :: CreateModelCard) 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.
createModelCard_modelCardStatus :: Lens.Lens' CreateModelCard ModelCardStatus
createModelCard_modelCardStatus :: Lens' CreateModelCard ModelCardStatus
createModelCard_modelCardStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateModelCard' {ModelCardStatus
modelCardStatus :: ModelCardStatus
$sel:modelCardStatus:CreateModelCard' :: CreateModelCard -> ModelCardStatus
modelCardStatus} -> ModelCardStatus
modelCardStatus) (\s :: CreateModelCard
s@CreateModelCard' {} ModelCardStatus
a -> CreateModelCard
s {$sel:modelCardStatus:CreateModelCard' :: ModelCardStatus
modelCardStatus = ModelCardStatus
a} :: CreateModelCard)

instance Core.AWSRequest CreateModelCard where
  type
    AWSResponse CreateModelCard =
      CreateModelCardResponse
  request :: (Service -> Service) -> CreateModelCard -> Request CreateModelCard
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 CreateModelCard
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateModelCard)))
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 ->
          Int -> Text -> CreateModelCardResponse
CreateModelCardResponse'
            forall (f :: * -> *) a b. Functor 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")
      )

instance Prelude.Hashable CreateModelCard where
  hashWithSalt :: Int -> CreateModelCard -> Int
hashWithSalt Int
_salt CreateModelCard' {Maybe [Tag]
Maybe ModelCardSecurityConfig
Text
Sensitive Text
ModelCardStatus
modelCardStatus :: ModelCardStatus
content :: Sensitive Text
modelCardName :: Text
tags :: Maybe [Tag]
securityConfig :: Maybe ModelCardSecurityConfig
$sel:modelCardStatus:CreateModelCard' :: CreateModelCard -> ModelCardStatus
$sel:content:CreateModelCard' :: CreateModelCard -> Sensitive Text
$sel:modelCardName:CreateModelCard' :: CreateModelCard -> Text
$sel:tags:CreateModelCard' :: CreateModelCard -> Maybe [Tag]
$sel:securityConfig:CreateModelCard' :: CreateModelCard -> Maybe ModelCardSecurityConfig
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelCardSecurityConfig
securityConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelCardName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
content
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ModelCardStatus
modelCardStatus

instance Prelude.NFData CreateModelCard where
  rnf :: CreateModelCard -> ()
rnf CreateModelCard' {Maybe [Tag]
Maybe ModelCardSecurityConfig
Text
Sensitive Text
ModelCardStatus
modelCardStatus :: ModelCardStatus
content :: Sensitive Text
modelCardName :: Text
tags :: Maybe [Tag]
securityConfig :: Maybe ModelCardSecurityConfig
$sel:modelCardStatus:CreateModelCard' :: CreateModelCard -> ModelCardStatus
$sel:content:CreateModelCard' :: CreateModelCard -> Sensitive Text
$sel:modelCardName:CreateModelCard' :: CreateModelCard -> Text
$sel:tags:CreateModelCard' :: CreateModelCard -> Maybe [Tag]
$sel:securityConfig:CreateModelCard' :: CreateModelCard -> Maybe ModelCardSecurityConfig
..} =
    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 Maybe [Tag]
tags
      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 Sensitive Text
content
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ModelCardStatus
modelCardStatus

instance Data.ToHeaders CreateModelCard where
  toHeaders :: CreateModelCard -> 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.CreateModelCard" :: 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 CreateModelCard where
  toJSON :: CreateModelCard -> Value
toJSON CreateModelCard' {Maybe [Tag]
Maybe ModelCardSecurityConfig
Text
Sensitive Text
ModelCardStatus
modelCardStatus :: ModelCardStatus
content :: Sensitive Text
modelCardName :: Text
tags :: Maybe [Tag]
securityConfig :: Maybe ModelCardSecurityConfig
$sel:modelCardStatus:CreateModelCard' :: CreateModelCard -> ModelCardStatus
$sel:content:CreateModelCard' :: CreateModelCard -> Sensitive Text
$sel:modelCardName:CreateModelCard' :: CreateModelCard -> Text
$sel:tags:CreateModelCard' :: CreateModelCard -> Maybe [Tag]
$sel:securityConfig:CreateModelCard' :: CreateModelCard -> Maybe ModelCardSecurityConfig
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"SecurityConfig" 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 ModelCardSecurityConfig
securityConfig,
            (Key
"Tags" 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 [Tag]
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"ModelCardName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
modelCardName),
            forall a. a -> Maybe a
Prelude.Just (Key
"Content" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
content),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ModelCardStatus" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ModelCardStatus
modelCardStatus)
          ]
      )

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

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

-- | /See:/ 'newCreateModelCardResponse' smart constructor.
data CreateModelCardResponse = CreateModelCardResponse'
  { -- | The response's http status code.
    CreateModelCardResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the successfully created model card.
    CreateModelCardResponse -> Text
modelCardArn :: Prelude.Text
  }
  deriving (CreateModelCardResponse -> CreateModelCardResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateModelCardResponse -> CreateModelCardResponse -> Bool
$c/= :: CreateModelCardResponse -> CreateModelCardResponse -> Bool
== :: CreateModelCardResponse -> CreateModelCardResponse -> Bool
$c== :: CreateModelCardResponse -> CreateModelCardResponse -> Bool
Prelude.Eq, ReadPrec [CreateModelCardResponse]
ReadPrec CreateModelCardResponse
Int -> ReadS CreateModelCardResponse
ReadS [CreateModelCardResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateModelCardResponse]
$creadListPrec :: ReadPrec [CreateModelCardResponse]
readPrec :: ReadPrec CreateModelCardResponse
$creadPrec :: ReadPrec CreateModelCardResponse
readList :: ReadS [CreateModelCardResponse]
$creadList :: ReadS [CreateModelCardResponse]
readsPrec :: Int -> ReadS CreateModelCardResponse
$creadsPrec :: Int -> ReadS CreateModelCardResponse
Prelude.Read, Int -> CreateModelCardResponse -> ShowS
[CreateModelCardResponse] -> ShowS
CreateModelCardResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateModelCardResponse] -> ShowS
$cshowList :: [CreateModelCardResponse] -> ShowS
show :: CreateModelCardResponse -> String
$cshow :: CreateModelCardResponse -> String
showsPrec :: Int -> CreateModelCardResponse -> ShowS
$cshowsPrec :: Int -> CreateModelCardResponse -> ShowS
Prelude.Show, forall x. Rep CreateModelCardResponse x -> CreateModelCardResponse
forall x. CreateModelCardResponse -> Rep CreateModelCardResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateModelCardResponse x -> CreateModelCardResponse
$cfrom :: forall x. CreateModelCardResponse -> Rep CreateModelCardResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateModelCardResponse' 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:
--
-- 'httpStatus', 'createModelCardResponse_httpStatus' - The response's http status code.
--
-- 'modelCardArn', 'createModelCardResponse_modelCardArn' - The Amazon Resource Name (ARN) of the successfully created model card.
newCreateModelCardResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'modelCardArn'
  Prelude.Text ->
  CreateModelCardResponse
newCreateModelCardResponse :: Int -> Text -> CreateModelCardResponse
newCreateModelCardResponse
  Int
pHttpStatus_
  Text
pModelCardArn_ =
    CreateModelCardResponse'
      { $sel:httpStatus:CreateModelCardResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:modelCardArn:CreateModelCardResponse' :: Text
modelCardArn = Text
pModelCardArn_
      }

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

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

instance Prelude.NFData CreateModelCardResponse where
  rnf :: CreateModelCardResponse -> ()
rnf CreateModelCardResponse' {Int
Text
modelCardArn :: Text
httpStatus :: Int
$sel:modelCardArn:CreateModelCardResponse' :: CreateModelCardResponse -> Text
$sel:httpStatus:CreateModelCardResponse' :: CreateModelCardResponse -> Int
..} =
    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