{-# 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.ListModelCardVersions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- List existing versions of an Amazon SageMaker Model Card.
--
-- This operation returns paginated results.
module Amazonka.SageMaker.ListModelCardVersions
  ( -- * Creating a Request
    ListModelCardVersions (..),
    newListModelCardVersions,

    -- * Request Lenses
    listModelCardVersions_creationTimeAfter,
    listModelCardVersions_creationTimeBefore,
    listModelCardVersions_maxResults,
    listModelCardVersions_modelCardStatus,
    listModelCardVersions_nextToken,
    listModelCardVersions_sortBy,
    listModelCardVersions_sortOrder,
    listModelCardVersions_modelCardName,

    -- * Destructuring the Response
    ListModelCardVersionsResponse (..),
    newListModelCardVersionsResponse,

    -- * Response Lenses
    listModelCardVersionsResponse_nextToken,
    listModelCardVersionsResponse_httpStatus,
    listModelCardVersionsResponse_modelCardVersionSummaryList,
  )
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:/ 'newListModelCardVersions' smart constructor.
data ListModelCardVersions = ListModelCardVersions'
  { -- | Only list model card versions that were created after the time
    -- specified.
    ListModelCardVersions -> Maybe POSIX
creationTimeAfter :: Prelude.Maybe Data.POSIX,
    -- | Only list model card versions that were created before the time
    -- specified.
    ListModelCardVersions -> Maybe POSIX
creationTimeBefore :: Prelude.Maybe Data.POSIX,
    -- | The maximum number of model card versions to list.
    ListModelCardVersions -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | Only list model card versions with the specified approval status.
    ListModelCardVersions -> Maybe ModelCardStatus
modelCardStatus :: Prelude.Maybe ModelCardStatus,
    -- | If the response to a previous @ListModelCardVersions@ request was
    -- truncated, the response includes a @NextToken@. To retrieve the next set
    -- of model card versions, use the token in the next request.
    ListModelCardVersions -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Sort listed model card versions by version. Sorts by version by default.
    ListModelCardVersions -> Maybe ModelCardVersionSortBy
sortBy :: Prelude.Maybe ModelCardVersionSortBy,
    -- | Sort model card versions by ascending or descending order.
    ListModelCardVersions -> Maybe ModelCardSortOrder
sortOrder :: Prelude.Maybe ModelCardSortOrder,
    -- | List model card versions for the model card with the specified name.
    ListModelCardVersions -> Text
modelCardName :: Prelude.Text
  }
  deriving (ListModelCardVersions -> ListModelCardVersions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListModelCardVersions -> ListModelCardVersions -> Bool
$c/= :: ListModelCardVersions -> ListModelCardVersions -> Bool
== :: ListModelCardVersions -> ListModelCardVersions -> Bool
$c== :: ListModelCardVersions -> ListModelCardVersions -> Bool
Prelude.Eq, ReadPrec [ListModelCardVersions]
ReadPrec ListModelCardVersions
Int -> ReadS ListModelCardVersions
ReadS [ListModelCardVersions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListModelCardVersions]
$creadListPrec :: ReadPrec [ListModelCardVersions]
readPrec :: ReadPrec ListModelCardVersions
$creadPrec :: ReadPrec ListModelCardVersions
readList :: ReadS [ListModelCardVersions]
$creadList :: ReadS [ListModelCardVersions]
readsPrec :: Int -> ReadS ListModelCardVersions
$creadsPrec :: Int -> ReadS ListModelCardVersions
Prelude.Read, Int -> ListModelCardVersions -> ShowS
[ListModelCardVersions] -> ShowS
ListModelCardVersions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListModelCardVersions] -> ShowS
$cshowList :: [ListModelCardVersions] -> ShowS
show :: ListModelCardVersions -> String
$cshow :: ListModelCardVersions -> String
showsPrec :: Int -> ListModelCardVersions -> ShowS
$cshowsPrec :: Int -> ListModelCardVersions -> ShowS
Prelude.Show, forall x. Rep ListModelCardVersions x -> ListModelCardVersions
forall x. ListModelCardVersions -> Rep ListModelCardVersions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListModelCardVersions x -> ListModelCardVersions
$cfrom :: forall x. ListModelCardVersions -> Rep ListModelCardVersions x
Prelude.Generic)

-- |
-- Create a value of 'ListModelCardVersions' 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:
--
-- 'creationTimeAfter', 'listModelCardVersions_creationTimeAfter' - Only list model card versions that were created after the time
-- specified.
--
-- 'creationTimeBefore', 'listModelCardVersions_creationTimeBefore' - Only list model card versions that were created before the time
-- specified.
--
-- 'maxResults', 'listModelCardVersions_maxResults' - The maximum number of model card versions to list.
--
-- 'modelCardStatus', 'listModelCardVersions_modelCardStatus' - Only list model card versions with the specified approval status.
--
-- 'nextToken', 'listModelCardVersions_nextToken' - If the response to a previous @ListModelCardVersions@ request was
-- truncated, the response includes a @NextToken@. To retrieve the next set
-- of model card versions, use the token in the next request.
--
-- 'sortBy', 'listModelCardVersions_sortBy' - Sort listed model card versions by version. Sorts by version by default.
--
-- 'sortOrder', 'listModelCardVersions_sortOrder' - Sort model card versions by ascending or descending order.
--
-- 'modelCardName', 'listModelCardVersions_modelCardName' - List model card versions for the model card with the specified name.
newListModelCardVersions ::
  -- | 'modelCardName'
  Prelude.Text ->
  ListModelCardVersions
newListModelCardVersions :: Text -> ListModelCardVersions
newListModelCardVersions Text
pModelCardName_ =
  ListModelCardVersions'
    { $sel:creationTimeAfter:ListModelCardVersions' :: Maybe POSIX
creationTimeAfter =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTimeBefore:ListModelCardVersions' :: Maybe POSIX
creationTimeBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListModelCardVersions' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:modelCardStatus:ListModelCardVersions' :: Maybe ModelCardStatus
modelCardStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListModelCardVersions' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:sortBy:ListModelCardVersions' :: Maybe ModelCardVersionSortBy
sortBy = forall a. Maybe a
Prelude.Nothing,
      $sel:sortOrder:ListModelCardVersions' :: Maybe ModelCardSortOrder
sortOrder = forall a. Maybe a
Prelude.Nothing,
      $sel:modelCardName:ListModelCardVersions' :: Text
modelCardName = Text
pModelCardName_
    }

-- | Only list model card versions that were created after the time
-- specified.
listModelCardVersions_creationTimeAfter :: Lens.Lens' ListModelCardVersions (Prelude.Maybe Prelude.UTCTime)
listModelCardVersions_creationTimeAfter :: Lens' ListModelCardVersions (Maybe UTCTime)
listModelCardVersions_creationTimeAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:creationTimeAfter:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
creationTimeAfter} -> Maybe POSIX
creationTimeAfter) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe POSIX
a -> ListModelCardVersions
s {$sel:creationTimeAfter:ListModelCardVersions' :: Maybe POSIX
creationTimeAfter = Maybe POSIX
a} :: ListModelCardVersions) 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

-- | Only list model card versions that were created before the time
-- specified.
listModelCardVersions_creationTimeBefore :: Lens.Lens' ListModelCardVersions (Prelude.Maybe Prelude.UTCTime)
listModelCardVersions_creationTimeBefore :: Lens' ListModelCardVersions (Maybe UTCTime)
listModelCardVersions_creationTimeBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe POSIX
creationTimeBefore :: Maybe POSIX
$sel:creationTimeBefore:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
creationTimeBefore} -> Maybe POSIX
creationTimeBefore) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe POSIX
a -> ListModelCardVersions
s {$sel:creationTimeBefore:ListModelCardVersions' :: Maybe POSIX
creationTimeBefore = Maybe POSIX
a} :: ListModelCardVersions) 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 maximum number of model card versions to list.
listModelCardVersions_maxResults :: Lens.Lens' ListModelCardVersions (Prelude.Maybe Prelude.Natural)
listModelCardVersions_maxResults :: Lens' ListModelCardVersions (Maybe Natural)
listModelCardVersions_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListModelCardVersions' :: ListModelCardVersions -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe Natural
a -> ListModelCardVersions
s {$sel:maxResults:ListModelCardVersions' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListModelCardVersions)

-- | Only list model card versions with the specified approval status.
listModelCardVersions_modelCardStatus :: Lens.Lens' ListModelCardVersions (Prelude.Maybe ModelCardStatus)
listModelCardVersions_modelCardStatus :: Lens' ListModelCardVersions (Maybe ModelCardStatus)
listModelCardVersions_modelCardStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe ModelCardStatus
modelCardStatus :: Maybe ModelCardStatus
$sel:modelCardStatus:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardStatus
modelCardStatus} -> Maybe ModelCardStatus
modelCardStatus) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe ModelCardStatus
a -> ListModelCardVersions
s {$sel:modelCardStatus:ListModelCardVersions' :: Maybe ModelCardStatus
modelCardStatus = Maybe ModelCardStatus
a} :: ListModelCardVersions)

-- | If the response to a previous @ListModelCardVersions@ request was
-- truncated, the response includes a @NextToken@. To retrieve the next set
-- of model card versions, use the token in the next request.
listModelCardVersions_nextToken :: Lens.Lens' ListModelCardVersions (Prelude.Maybe Prelude.Text)
listModelCardVersions_nextToken :: Lens' ListModelCardVersions (Maybe Text)
listModelCardVersions_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListModelCardVersions' :: ListModelCardVersions -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe Text
a -> ListModelCardVersions
s {$sel:nextToken:ListModelCardVersions' :: Maybe Text
nextToken = Maybe Text
a} :: ListModelCardVersions)

-- | Sort listed model card versions by version. Sorts by version by default.
listModelCardVersions_sortBy :: Lens.Lens' ListModelCardVersions (Prelude.Maybe ModelCardVersionSortBy)
listModelCardVersions_sortBy :: Lens' ListModelCardVersions (Maybe ModelCardVersionSortBy)
listModelCardVersions_sortBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe ModelCardVersionSortBy
sortBy :: Maybe ModelCardVersionSortBy
$sel:sortBy:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardVersionSortBy
sortBy} -> Maybe ModelCardVersionSortBy
sortBy) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe ModelCardVersionSortBy
a -> ListModelCardVersions
s {$sel:sortBy:ListModelCardVersions' :: Maybe ModelCardVersionSortBy
sortBy = Maybe ModelCardVersionSortBy
a} :: ListModelCardVersions)

-- | Sort model card versions by ascending or descending order.
listModelCardVersions_sortOrder :: Lens.Lens' ListModelCardVersions (Prelude.Maybe ModelCardSortOrder)
listModelCardVersions_sortOrder :: Lens' ListModelCardVersions (Maybe ModelCardSortOrder)
listModelCardVersions_sortOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Maybe ModelCardSortOrder
sortOrder :: Maybe ModelCardSortOrder
$sel:sortOrder:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardSortOrder
sortOrder} -> Maybe ModelCardSortOrder
sortOrder) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Maybe ModelCardSortOrder
a -> ListModelCardVersions
s {$sel:sortOrder:ListModelCardVersions' :: Maybe ModelCardSortOrder
sortOrder = Maybe ModelCardSortOrder
a} :: ListModelCardVersions)

-- | List model card versions for the model card with the specified name.
listModelCardVersions_modelCardName :: Lens.Lens' ListModelCardVersions Prelude.Text
listModelCardVersions_modelCardName :: Lens' ListModelCardVersions Text
listModelCardVersions_modelCardName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersions' {Text
modelCardName :: Text
$sel:modelCardName:ListModelCardVersions' :: ListModelCardVersions -> Text
modelCardName} -> Text
modelCardName) (\s :: ListModelCardVersions
s@ListModelCardVersions' {} Text
a -> ListModelCardVersions
s {$sel:modelCardName:ListModelCardVersions' :: Text
modelCardName = Text
a} :: ListModelCardVersions)

instance Core.AWSPager ListModelCardVersions where
  page :: ListModelCardVersions
-> AWSResponse ListModelCardVersions -> Maybe ListModelCardVersions
page ListModelCardVersions
rq AWSResponse ListModelCardVersions
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListModelCardVersions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListModelCardVersionsResponse (Maybe Text)
listModelCardVersionsResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListModelCardVersions
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' ListModelCardVersionsResponse [ModelCardVersionSummary]
listModelCardVersionsResponse_modelCardVersionSummaryList
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListModelCardVersions
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListModelCardVersions (Maybe Text)
listModelCardVersions_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListModelCardVersions
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListModelCardVersionsResponse (Maybe Text)
listModelCardVersionsResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest ListModelCardVersions where
  type
    AWSResponse ListModelCardVersions =
      ListModelCardVersionsResponse
  request :: (Service -> Service)
-> ListModelCardVersions -> Request ListModelCardVersions
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 ListModelCardVersions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListModelCardVersions)))
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 Text
-> Int
-> [ModelCardVersionSummary]
-> ListModelCardVersionsResponse
ListModelCardVersionsResponse'
            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
"NextToken")
            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 (Maybe a)
Data..?> Key
"ModelCardVersionSummaryList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable ListModelCardVersions where
  hashWithSalt :: Int -> ListModelCardVersions -> Int
hashWithSalt Int
_salt ListModelCardVersions' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelCardSortOrder
Maybe ModelCardStatus
Maybe ModelCardVersionSortBy
Text
modelCardName :: Text
sortOrder :: Maybe ModelCardSortOrder
sortBy :: Maybe ModelCardVersionSortBy
nextToken :: Maybe Text
modelCardStatus :: Maybe ModelCardStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:modelCardName:ListModelCardVersions' :: ListModelCardVersions -> Text
$sel:sortOrder:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardSortOrder
$sel:sortBy:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardVersionSortBy
$sel:nextToken:ListModelCardVersions' :: ListModelCardVersions -> Maybe Text
$sel:modelCardStatus:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardStatus
$sel:maxResults:ListModelCardVersions' :: ListModelCardVersions -> Maybe Natural
$sel:creationTimeBefore:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
$sel:creationTimeAfter:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTimeAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTimeBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelCardStatus
modelCardStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelCardVersionSortBy
sortBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelCardSortOrder
sortOrder
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
modelCardName

instance Prelude.NFData ListModelCardVersions where
  rnf :: ListModelCardVersions -> ()
rnf ListModelCardVersions' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelCardSortOrder
Maybe ModelCardStatus
Maybe ModelCardVersionSortBy
Text
modelCardName :: Text
sortOrder :: Maybe ModelCardSortOrder
sortBy :: Maybe ModelCardVersionSortBy
nextToken :: Maybe Text
modelCardStatus :: Maybe ModelCardStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:modelCardName:ListModelCardVersions' :: ListModelCardVersions -> Text
$sel:sortOrder:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardSortOrder
$sel:sortBy:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardVersionSortBy
$sel:nextToken:ListModelCardVersions' :: ListModelCardVersions -> Maybe Text
$sel:modelCardStatus:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardStatus
$sel:maxResults:ListModelCardVersions' :: ListModelCardVersions -> Maybe Natural
$sel:creationTimeBefore:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
$sel:creationTimeAfter:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTimeAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTimeBefore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelCardStatus
modelCardStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelCardVersionSortBy
sortBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelCardSortOrder
sortOrder
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
modelCardName

instance Data.ToHeaders ListModelCardVersions where
  toHeaders :: ListModelCardVersions -> 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.ListModelCardVersions" ::
                          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 ListModelCardVersions where
  toJSON :: ListModelCardVersions -> Value
toJSON ListModelCardVersions' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelCardSortOrder
Maybe ModelCardStatus
Maybe ModelCardVersionSortBy
Text
modelCardName :: Text
sortOrder :: Maybe ModelCardSortOrder
sortBy :: Maybe ModelCardVersionSortBy
nextToken :: Maybe Text
modelCardStatus :: Maybe ModelCardStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:modelCardName:ListModelCardVersions' :: ListModelCardVersions -> Text
$sel:sortOrder:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardSortOrder
$sel:sortBy:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardVersionSortBy
$sel:nextToken:ListModelCardVersions' :: ListModelCardVersions -> Maybe Text
$sel:modelCardStatus:ListModelCardVersions' :: ListModelCardVersions -> Maybe ModelCardStatus
$sel:maxResults:ListModelCardVersions' :: ListModelCardVersions -> Maybe Natural
$sel:creationTimeBefore:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
$sel:creationTimeAfter:ListModelCardVersions' :: ListModelCardVersions -> Maybe POSIX
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CreationTimeAfter" 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 POSIX
creationTimeAfter,
            (Key
"CreationTimeBefore" 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 POSIX
creationTimeBefore,
            (Key
"MaxResults" 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 Natural
maxResults,
            (Key
"ModelCardStatus" 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 ModelCardStatus
modelCardStatus,
            (Key
"NextToken" 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 Text
nextToken,
            (Key
"SortBy" 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 ModelCardVersionSortBy
sortBy,
            (Key
"SortOrder" 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 ModelCardSortOrder
sortOrder,
            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 ListModelCardVersions where
  toPath :: ListModelCardVersions -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newListModelCardVersionsResponse' smart constructor.
data ListModelCardVersionsResponse = ListModelCardVersionsResponse'
  { -- | If the response is truncated, SageMaker returns this token. To retrieve
    -- the next set of model card versions, use it in the subsequent request.
    ListModelCardVersionsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListModelCardVersionsResponse -> Int
httpStatus :: Prelude.Int,
    -- | The summaries of the listed versions of the model card.
    ListModelCardVersionsResponse -> [ModelCardVersionSummary]
modelCardVersionSummaryList :: [ModelCardVersionSummary]
  }
  deriving (ListModelCardVersionsResponse
-> ListModelCardVersionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListModelCardVersionsResponse
-> ListModelCardVersionsResponse -> Bool
$c/= :: ListModelCardVersionsResponse
-> ListModelCardVersionsResponse -> Bool
== :: ListModelCardVersionsResponse
-> ListModelCardVersionsResponse -> Bool
$c== :: ListModelCardVersionsResponse
-> ListModelCardVersionsResponse -> Bool
Prelude.Eq, ReadPrec [ListModelCardVersionsResponse]
ReadPrec ListModelCardVersionsResponse
Int -> ReadS ListModelCardVersionsResponse
ReadS [ListModelCardVersionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListModelCardVersionsResponse]
$creadListPrec :: ReadPrec [ListModelCardVersionsResponse]
readPrec :: ReadPrec ListModelCardVersionsResponse
$creadPrec :: ReadPrec ListModelCardVersionsResponse
readList :: ReadS [ListModelCardVersionsResponse]
$creadList :: ReadS [ListModelCardVersionsResponse]
readsPrec :: Int -> ReadS ListModelCardVersionsResponse
$creadsPrec :: Int -> ReadS ListModelCardVersionsResponse
Prelude.Read, Int -> ListModelCardVersionsResponse -> ShowS
[ListModelCardVersionsResponse] -> ShowS
ListModelCardVersionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListModelCardVersionsResponse] -> ShowS
$cshowList :: [ListModelCardVersionsResponse] -> ShowS
show :: ListModelCardVersionsResponse -> String
$cshow :: ListModelCardVersionsResponse -> String
showsPrec :: Int -> ListModelCardVersionsResponse -> ShowS
$cshowsPrec :: Int -> ListModelCardVersionsResponse -> ShowS
Prelude.Show, forall x.
Rep ListModelCardVersionsResponse x
-> ListModelCardVersionsResponse
forall x.
ListModelCardVersionsResponse
-> Rep ListModelCardVersionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListModelCardVersionsResponse x
-> ListModelCardVersionsResponse
$cfrom :: forall x.
ListModelCardVersionsResponse
-> Rep ListModelCardVersionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListModelCardVersionsResponse' 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:
--
-- 'nextToken', 'listModelCardVersionsResponse_nextToken' - If the response is truncated, SageMaker returns this token. To retrieve
-- the next set of model card versions, use it in the subsequent request.
--
-- 'httpStatus', 'listModelCardVersionsResponse_httpStatus' - The response's http status code.
--
-- 'modelCardVersionSummaryList', 'listModelCardVersionsResponse_modelCardVersionSummaryList' - The summaries of the listed versions of the model card.
newListModelCardVersionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListModelCardVersionsResponse
newListModelCardVersionsResponse :: Int -> ListModelCardVersionsResponse
newListModelCardVersionsResponse Int
pHttpStatus_ =
  ListModelCardVersionsResponse'
    { $sel:nextToken:ListModelCardVersionsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListModelCardVersionsResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:modelCardVersionSummaryList:ListModelCardVersionsResponse' :: [ModelCardVersionSummary]
modelCardVersionSummaryList = forall a. Monoid a => a
Prelude.mempty
    }

-- | If the response is truncated, SageMaker returns this token. To retrieve
-- the next set of model card versions, use it in the subsequent request.
listModelCardVersionsResponse_nextToken :: Lens.Lens' ListModelCardVersionsResponse (Prelude.Maybe Prelude.Text)
listModelCardVersionsResponse_nextToken :: Lens' ListModelCardVersionsResponse (Maybe Text)
listModelCardVersionsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersionsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListModelCardVersionsResponse' :: ListModelCardVersionsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListModelCardVersionsResponse
s@ListModelCardVersionsResponse' {} Maybe Text
a -> ListModelCardVersionsResponse
s {$sel:nextToken:ListModelCardVersionsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListModelCardVersionsResponse)

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

-- | The summaries of the listed versions of the model card.
listModelCardVersionsResponse_modelCardVersionSummaryList :: Lens.Lens' ListModelCardVersionsResponse [ModelCardVersionSummary]
listModelCardVersionsResponse_modelCardVersionSummaryList :: Lens' ListModelCardVersionsResponse [ModelCardVersionSummary]
listModelCardVersionsResponse_modelCardVersionSummaryList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelCardVersionsResponse' {[ModelCardVersionSummary]
modelCardVersionSummaryList :: [ModelCardVersionSummary]
$sel:modelCardVersionSummaryList:ListModelCardVersionsResponse' :: ListModelCardVersionsResponse -> [ModelCardVersionSummary]
modelCardVersionSummaryList} -> [ModelCardVersionSummary]
modelCardVersionSummaryList) (\s :: ListModelCardVersionsResponse
s@ListModelCardVersionsResponse' {} [ModelCardVersionSummary]
a -> ListModelCardVersionsResponse
s {$sel:modelCardVersionSummaryList:ListModelCardVersionsResponse' :: [ModelCardVersionSummary]
modelCardVersionSummaryList = [ModelCardVersionSummary]
a} :: ListModelCardVersionsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Prelude.NFData ListModelCardVersionsResponse where
  rnf :: ListModelCardVersionsResponse -> ()
rnf ListModelCardVersionsResponse' {Int
[ModelCardVersionSummary]
Maybe Text
modelCardVersionSummaryList :: [ModelCardVersionSummary]
httpStatus :: Int
nextToken :: Maybe Text
$sel:modelCardVersionSummaryList:ListModelCardVersionsResponse' :: ListModelCardVersionsResponse -> [ModelCardVersionSummary]
$sel:httpStatus:ListModelCardVersionsResponse' :: ListModelCardVersionsResponse -> Int
$sel:nextToken:ListModelCardVersionsResponse' :: ListModelCardVersionsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      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 [ModelCardVersionSummary]
modelCardVersionSummaryList