{-# 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.ListModelPackages
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the model packages that have been created.
--
-- This operation returns paginated results.
module Amazonka.SageMaker.ListModelPackages
  ( -- * Creating a Request
    ListModelPackages (..),
    newListModelPackages,

    -- * Request Lenses
    listModelPackages_creationTimeAfter,
    listModelPackages_creationTimeBefore,
    listModelPackages_maxResults,
    listModelPackages_modelApprovalStatus,
    listModelPackages_modelPackageGroupName,
    listModelPackages_modelPackageType,
    listModelPackages_nameContains,
    listModelPackages_nextToken,
    listModelPackages_sortBy,
    listModelPackages_sortOrder,

    -- * Destructuring the Response
    ListModelPackagesResponse (..),
    newListModelPackagesResponse,

    -- * Response Lenses
    listModelPackagesResponse_nextToken,
    listModelPackagesResponse_httpStatus,
    listModelPackagesResponse_modelPackageSummaryList,
  )
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:/ 'newListModelPackages' smart constructor.
data ListModelPackages = ListModelPackages'
  { -- | A filter that returns only model packages created after the specified
    -- time (timestamp).
    ListModelPackages -> Maybe POSIX
creationTimeAfter :: Prelude.Maybe Data.POSIX,
    -- | A filter that returns only model packages created before the specified
    -- time (timestamp).
    ListModelPackages -> Maybe POSIX
creationTimeBefore :: Prelude.Maybe Data.POSIX,
    -- | The maximum number of model packages to return in the response.
    ListModelPackages -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A filter that returns only the model packages with the specified
    -- approval status.
    ListModelPackages -> Maybe ModelApprovalStatus
modelApprovalStatus :: Prelude.Maybe ModelApprovalStatus,
    -- | A filter that returns only model versions that belong to the specified
    -- model group.
    ListModelPackages -> Maybe Text
modelPackageGroupName :: Prelude.Maybe Prelude.Text,
    -- | A filter that returns only the model packages of the specified type.
    -- This can be one of the following values.
    --
    -- -   @UNVERSIONED@ - List only unversioined models. This is the default
    --     value if no @ModelPackageType@ is specified.
    --
    -- -   @VERSIONED@ - List only versioned models.
    --
    -- -   @BOTH@ - List both versioned and unversioned models.
    ListModelPackages -> Maybe ModelPackageType
modelPackageType :: Prelude.Maybe ModelPackageType,
    -- | A string in the model package name. This filter returns only model
    -- packages whose name contains the specified string.
    ListModelPackages -> Maybe Text
nameContains :: Prelude.Maybe Prelude.Text,
    -- | If the response to a previous @ListModelPackages@ request was truncated,
    -- the response includes a @NextToken@. To retrieve the next set of model
    -- packages, use the token in the next request.
    ListModelPackages -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The parameter by which to sort the results. The default is
    -- @CreationTime@.
    ListModelPackages -> Maybe ModelPackageSortBy
sortBy :: Prelude.Maybe ModelPackageSortBy,
    -- | The sort order for the results. The default is @Ascending@.
    ListModelPackages -> Maybe SortOrder
sortOrder :: Prelude.Maybe SortOrder
  }
  deriving (ListModelPackages -> ListModelPackages -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListModelPackages -> ListModelPackages -> Bool
$c/= :: ListModelPackages -> ListModelPackages -> Bool
== :: ListModelPackages -> ListModelPackages -> Bool
$c== :: ListModelPackages -> ListModelPackages -> Bool
Prelude.Eq, ReadPrec [ListModelPackages]
ReadPrec ListModelPackages
Int -> ReadS ListModelPackages
ReadS [ListModelPackages]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListModelPackages]
$creadListPrec :: ReadPrec [ListModelPackages]
readPrec :: ReadPrec ListModelPackages
$creadPrec :: ReadPrec ListModelPackages
readList :: ReadS [ListModelPackages]
$creadList :: ReadS [ListModelPackages]
readsPrec :: Int -> ReadS ListModelPackages
$creadsPrec :: Int -> ReadS ListModelPackages
Prelude.Read, Int -> ListModelPackages -> ShowS
[ListModelPackages] -> ShowS
ListModelPackages -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListModelPackages] -> ShowS
$cshowList :: [ListModelPackages] -> ShowS
show :: ListModelPackages -> String
$cshow :: ListModelPackages -> String
showsPrec :: Int -> ListModelPackages -> ShowS
$cshowsPrec :: Int -> ListModelPackages -> ShowS
Prelude.Show, forall x. Rep ListModelPackages x -> ListModelPackages
forall x. ListModelPackages -> Rep ListModelPackages x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListModelPackages x -> ListModelPackages
$cfrom :: forall x. ListModelPackages -> Rep ListModelPackages x
Prelude.Generic)

-- |
-- Create a value of 'ListModelPackages' 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', 'listModelPackages_creationTimeAfter' - A filter that returns only model packages created after the specified
-- time (timestamp).
--
-- 'creationTimeBefore', 'listModelPackages_creationTimeBefore' - A filter that returns only model packages created before the specified
-- time (timestamp).
--
-- 'maxResults', 'listModelPackages_maxResults' - The maximum number of model packages to return in the response.
--
-- 'modelApprovalStatus', 'listModelPackages_modelApprovalStatus' - A filter that returns only the model packages with the specified
-- approval status.
--
-- 'modelPackageGroupName', 'listModelPackages_modelPackageGroupName' - A filter that returns only model versions that belong to the specified
-- model group.
--
-- 'modelPackageType', 'listModelPackages_modelPackageType' - A filter that returns only the model packages of the specified type.
-- This can be one of the following values.
--
-- -   @UNVERSIONED@ - List only unversioined models. This is the default
--     value if no @ModelPackageType@ is specified.
--
-- -   @VERSIONED@ - List only versioned models.
--
-- -   @BOTH@ - List both versioned and unversioned models.
--
-- 'nameContains', 'listModelPackages_nameContains' - A string in the model package name. This filter returns only model
-- packages whose name contains the specified string.
--
-- 'nextToken', 'listModelPackages_nextToken' - If the response to a previous @ListModelPackages@ request was truncated,
-- the response includes a @NextToken@. To retrieve the next set of model
-- packages, use the token in the next request.
--
-- 'sortBy', 'listModelPackages_sortBy' - The parameter by which to sort the results. The default is
-- @CreationTime@.
--
-- 'sortOrder', 'listModelPackages_sortOrder' - The sort order for the results. The default is @Ascending@.
newListModelPackages ::
  ListModelPackages
newListModelPackages :: ListModelPackages
newListModelPackages =
  ListModelPackages'
    { $sel:creationTimeAfter:ListModelPackages' :: Maybe POSIX
creationTimeAfter =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTimeBefore:ListModelPackages' :: Maybe POSIX
creationTimeBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListModelPackages' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:modelApprovalStatus:ListModelPackages' :: Maybe ModelApprovalStatus
modelApprovalStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageGroupName:ListModelPackages' :: Maybe Text
modelPackageGroupName = forall a. Maybe a
Prelude.Nothing,
      $sel:modelPackageType:ListModelPackages' :: Maybe ModelPackageType
modelPackageType = forall a. Maybe a
Prelude.Nothing,
      $sel:nameContains:ListModelPackages' :: Maybe Text
nameContains = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListModelPackages' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:sortBy:ListModelPackages' :: Maybe ModelPackageSortBy
sortBy = forall a. Maybe a
Prelude.Nothing,
      $sel:sortOrder:ListModelPackages' :: Maybe SortOrder
sortOrder = forall a. Maybe a
Prelude.Nothing
    }

-- | A filter that returns only model packages created after the specified
-- time (timestamp).
listModelPackages_creationTimeAfter :: Lens.Lens' ListModelPackages (Prelude.Maybe Prelude.UTCTime)
listModelPackages_creationTimeAfter :: Lens' ListModelPackages (Maybe UTCTime)
listModelPackages_creationTimeAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:creationTimeAfter:ListModelPackages' :: ListModelPackages -> Maybe POSIX
creationTimeAfter} -> Maybe POSIX
creationTimeAfter) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe POSIX
a -> ListModelPackages
s {$sel:creationTimeAfter:ListModelPackages' :: Maybe POSIX
creationTimeAfter = Maybe POSIX
a} :: ListModelPackages) 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

-- | A filter that returns only model packages created before the specified
-- time (timestamp).
listModelPackages_creationTimeBefore :: Lens.Lens' ListModelPackages (Prelude.Maybe Prelude.UTCTime)
listModelPackages_creationTimeBefore :: Lens' ListModelPackages (Maybe UTCTime)
listModelPackages_creationTimeBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe POSIX
creationTimeBefore :: Maybe POSIX
$sel:creationTimeBefore:ListModelPackages' :: ListModelPackages -> Maybe POSIX
creationTimeBefore} -> Maybe POSIX
creationTimeBefore) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe POSIX
a -> ListModelPackages
s {$sel:creationTimeBefore:ListModelPackages' :: Maybe POSIX
creationTimeBefore = Maybe POSIX
a} :: ListModelPackages) 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 packages to return in the response.
listModelPackages_maxResults :: Lens.Lens' ListModelPackages (Prelude.Maybe Prelude.Natural)
listModelPackages_maxResults :: Lens' ListModelPackages (Maybe Natural)
listModelPackages_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListModelPackages' :: ListModelPackages -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe Natural
a -> ListModelPackages
s {$sel:maxResults:ListModelPackages' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListModelPackages)

-- | A filter that returns only the model packages with the specified
-- approval status.
listModelPackages_modelApprovalStatus :: Lens.Lens' ListModelPackages (Prelude.Maybe ModelApprovalStatus)
listModelPackages_modelApprovalStatus :: Lens' ListModelPackages (Maybe ModelApprovalStatus)
listModelPackages_modelApprovalStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe ModelApprovalStatus
modelApprovalStatus :: Maybe ModelApprovalStatus
$sel:modelApprovalStatus:ListModelPackages' :: ListModelPackages -> Maybe ModelApprovalStatus
modelApprovalStatus} -> Maybe ModelApprovalStatus
modelApprovalStatus) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe ModelApprovalStatus
a -> ListModelPackages
s {$sel:modelApprovalStatus:ListModelPackages' :: Maybe ModelApprovalStatus
modelApprovalStatus = Maybe ModelApprovalStatus
a} :: ListModelPackages)

-- | A filter that returns only model versions that belong to the specified
-- model group.
listModelPackages_modelPackageGroupName :: Lens.Lens' ListModelPackages (Prelude.Maybe Prelude.Text)
listModelPackages_modelPackageGroupName :: Lens' ListModelPackages (Maybe Text)
listModelPackages_modelPackageGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe Text
modelPackageGroupName :: Maybe Text
$sel:modelPackageGroupName:ListModelPackages' :: ListModelPackages -> Maybe Text
modelPackageGroupName} -> Maybe Text
modelPackageGroupName) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe Text
a -> ListModelPackages
s {$sel:modelPackageGroupName:ListModelPackages' :: Maybe Text
modelPackageGroupName = Maybe Text
a} :: ListModelPackages)

-- | A filter that returns only the model packages of the specified type.
-- This can be one of the following values.
--
-- -   @UNVERSIONED@ - List only unversioined models. This is the default
--     value if no @ModelPackageType@ is specified.
--
-- -   @VERSIONED@ - List only versioned models.
--
-- -   @BOTH@ - List both versioned and unversioned models.
listModelPackages_modelPackageType :: Lens.Lens' ListModelPackages (Prelude.Maybe ModelPackageType)
listModelPackages_modelPackageType :: Lens' ListModelPackages (Maybe ModelPackageType)
listModelPackages_modelPackageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe ModelPackageType
modelPackageType :: Maybe ModelPackageType
$sel:modelPackageType:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageType
modelPackageType} -> Maybe ModelPackageType
modelPackageType) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe ModelPackageType
a -> ListModelPackages
s {$sel:modelPackageType:ListModelPackages' :: Maybe ModelPackageType
modelPackageType = Maybe ModelPackageType
a} :: ListModelPackages)

-- | A string in the model package name. This filter returns only model
-- packages whose name contains the specified string.
listModelPackages_nameContains :: Lens.Lens' ListModelPackages (Prelude.Maybe Prelude.Text)
listModelPackages_nameContains :: Lens' ListModelPackages (Maybe Text)
listModelPackages_nameContains = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe Text
nameContains :: Maybe Text
$sel:nameContains:ListModelPackages' :: ListModelPackages -> Maybe Text
nameContains} -> Maybe Text
nameContains) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe Text
a -> ListModelPackages
s {$sel:nameContains:ListModelPackages' :: Maybe Text
nameContains = Maybe Text
a} :: ListModelPackages)

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

-- | The parameter by which to sort the results. The default is
-- @CreationTime@.
listModelPackages_sortBy :: Lens.Lens' ListModelPackages (Prelude.Maybe ModelPackageSortBy)
listModelPackages_sortBy :: Lens' ListModelPackages (Maybe ModelPackageSortBy)
listModelPackages_sortBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe ModelPackageSortBy
sortBy :: Maybe ModelPackageSortBy
$sel:sortBy:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageSortBy
sortBy} -> Maybe ModelPackageSortBy
sortBy) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe ModelPackageSortBy
a -> ListModelPackages
s {$sel:sortBy:ListModelPackages' :: Maybe ModelPackageSortBy
sortBy = Maybe ModelPackageSortBy
a} :: ListModelPackages)

-- | The sort order for the results. The default is @Ascending@.
listModelPackages_sortOrder :: Lens.Lens' ListModelPackages (Prelude.Maybe SortOrder)
listModelPackages_sortOrder :: Lens' ListModelPackages (Maybe SortOrder)
listModelPackages_sortOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackages' {Maybe SortOrder
sortOrder :: Maybe SortOrder
$sel:sortOrder:ListModelPackages' :: ListModelPackages -> Maybe SortOrder
sortOrder} -> Maybe SortOrder
sortOrder) (\s :: ListModelPackages
s@ListModelPackages' {} Maybe SortOrder
a -> ListModelPackages
s {$sel:sortOrder:ListModelPackages' :: Maybe SortOrder
sortOrder = Maybe SortOrder
a} :: ListModelPackages)

instance Core.AWSPager ListModelPackages where
  page :: ListModelPackages
-> AWSResponse ListModelPackages -> Maybe ListModelPackages
page ListModelPackages
rq AWSResponse ListModelPackages
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListModelPackages
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListModelPackagesResponse (Maybe Text)
listModelPackagesResponse_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 ListModelPackages
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' ListModelPackagesResponse [ModelPackageSummary]
listModelPackagesResponse_modelPackageSummaryList
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListModelPackages
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListModelPackages (Maybe Text)
listModelPackages_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListModelPackages
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListModelPackagesResponse (Maybe Text)
listModelPackagesResponse_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 ListModelPackages where
  type
    AWSResponse ListModelPackages =
      ListModelPackagesResponse
  request :: (Service -> Service)
-> ListModelPackages -> Request ListModelPackages
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 ListModelPackages
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListModelPackages)))
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 -> [ModelPackageSummary] -> ListModelPackagesResponse
ListModelPackagesResponse'
            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
"ModelPackageSummaryList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable ListModelPackages where
  hashWithSalt :: Int -> ListModelPackages -> Int
hashWithSalt Int
_salt ListModelPackages' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelApprovalStatus
Maybe ModelPackageSortBy
Maybe ModelPackageType
Maybe SortOrder
sortOrder :: Maybe SortOrder
sortBy :: Maybe ModelPackageSortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
modelPackageType :: Maybe ModelPackageType
modelPackageGroupName :: Maybe Text
modelApprovalStatus :: Maybe ModelApprovalStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListModelPackages' :: ListModelPackages -> Maybe SortOrder
$sel:sortBy:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageSortBy
$sel:nextToken:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:nameContains:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelPackageType:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageType
$sel:modelPackageGroupName:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelApprovalStatus:ListModelPackages' :: ListModelPackages -> Maybe ModelApprovalStatus
$sel:maxResults:ListModelPackages' :: ListModelPackages -> Maybe Natural
$sel:creationTimeBefore:ListModelPackages' :: ListModelPackages -> Maybe POSIX
$sel:creationTimeAfter:ListModelPackages' :: ListModelPackages -> 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 ModelApprovalStatus
modelApprovalStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelPackageGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelPackageType
modelPackageType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nameContains
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ModelPackageSortBy
sortBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SortOrder
sortOrder

instance Prelude.NFData ListModelPackages where
  rnf :: ListModelPackages -> ()
rnf ListModelPackages' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelApprovalStatus
Maybe ModelPackageSortBy
Maybe ModelPackageType
Maybe SortOrder
sortOrder :: Maybe SortOrder
sortBy :: Maybe ModelPackageSortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
modelPackageType :: Maybe ModelPackageType
modelPackageGroupName :: Maybe Text
modelApprovalStatus :: Maybe ModelApprovalStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListModelPackages' :: ListModelPackages -> Maybe SortOrder
$sel:sortBy:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageSortBy
$sel:nextToken:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:nameContains:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelPackageType:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageType
$sel:modelPackageGroupName:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelApprovalStatus:ListModelPackages' :: ListModelPackages -> Maybe ModelApprovalStatus
$sel:maxResults:ListModelPackages' :: ListModelPackages -> Maybe Natural
$sel:creationTimeBefore:ListModelPackages' :: ListModelPackages -> Maybe POSIX
$sel:creationTimeAfter:ListModelPackages' :: ListModelPackages -> 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 ModelApprovalStatus
modelApprovalStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelPackageGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ModelPackageType
modelPackageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nameContains
      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 ModelPackageSortBy
sortBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SortOrder
sortOrder

instance Data.ToHeaders ListModelPackages where
  toHeaders :: ListModelPackages -> 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.ListModelPackages" ::
                          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 ListModelPackages where
  toJSON :: ListModelPackages -> Value
toJSON ListModelPackages' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe ModelApprovalStatus
Maybe ModelPackageSortBy
Maybe ModelPackageType
Maybe SortOrder
sortOrder :: Maybe SortOrder
sortBy :: Maybe ModelPackageSortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
modelPackageType :: Maybe ModelPackageType
modelPackageGroupName :: Maybe Text
modelApprovalStatus :: Maybe ModelApprovalStatus
maxResults :: Maybe Natural
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListModelPackages' :: ListModelPackages -> Maybe SortOrder
$sel:sortBy:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageSortBy
$sel:nextToken:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:nameContains:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelPackageType:ListModelPackages' :: ListModelPackages -> Maybe ModelPackageType
$sel:modelPackageGroupName:ListModelPackages' :: ListModelPackages -> Maybe Text
$sel:modelApprovalStatus:ListModelPackages' :: ListModelPackages -> Maybe ModelApprovalStatus
$sel:maxResults:ListModelPackages' :: ListModelPackages -> Maybe Natural
$sel:creationTimeBefore:ListModelPackages' :: ListModelPackages -> Maybe POSIX
$sel:creationTimeAfter:ListModelPackages' :: ListModelPackages -> 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
"ModelApprovalStatus" 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 ModelApprovalStatus
modelApprovalStatus,
            (Key
"ModelPackageGroupName" 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
modelPackageGroupName,
            (Key
"ModelPackageType" 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 ModelPackageType
modelPackageType,
            (Key
"NameContains" 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
nameContains,
            (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 ModelPackageSortBy
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 SortOrder
sortOrder
          ]
      )

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

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

-- | /See:/ 'newListModelPackagesResponse' smart constructor.
data ListModelPackagesResponse = ListModelPackagesResponse'
  { -- | If the response is truncated, SageMaker returns this token. To retrieve
    -- the next set of model packages, use it in the subsequent request.
    ListModelPackagesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListModelPackagesResponse -> Int
httpStatus :: Prelude.Int,
    -- | An array of @ModelPackageSummary@ objects, each of which lists a model
    -- package.
    ListModelPackagesResponse -> [ModelPackageSummary]
modelPackageSummaryList :: [ModelPackageSummary]
  }
  deriving (ListModelPackagesResponse -> ListModelPackagesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListModelPackagesResponse -> ListModelPackagesResponse -> Bool
$c/= :: ListModelPackagesResponse -> ListModelPackagesResponse -> Bool
== :: ListModelPackagesResponse -> ListModelPackagesResponse -> Bool
$c== :: ListModelPackagesResponse -> ListModelPackagesResponse -> Bool
Prelude.Eq, ReadPrec [ListModelPackagesResponse]
ReadPrec ListModelPackagesResponse
Int -> ReadS ListModelPackagesResponse
ReadS [ListModelPackagesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListModelPackagesResponse]
$creadListPrec :: ReadPrec [ListModelPackagesResponse]
readPrec :: ReadPrec ListModelPackagesResponse
$creadPrec :: ReadPrec ListModelPackagesResponse
readList :: ReadS [ListModelPackagesResponse]
$creadList :: ReadS [ListModelPackagesResponse]
readsPrec :: Int -> ReadS ListModelPackagesResponse
$creadsPrec :: Int -> ReadS ListModelPackagesResponse
Prelude.Read, Int -> ListModelPackagesResponse -> ShowS
[ListModelPackagesResponse] -> ShowS
ListModelPackagesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListModelPackagesResponse] -> ShowS
$cshowList :: [ListModelPackagesResponse] -> ShowS
show :: ListModelPackagesResponse -> String
$cshow :: ListModelPackagesResponse -> String
showsPrec :: Int -> ListModelPackagesResponse -> ShowS
$cshowsPrec :: Int -> ListModelPackagesResponse -> ShowS
Prelude.Show, forall x.
Rep ListModelPackagesResponse x -> ListModelPackagesResponse
forall x.
ListModelPackagesResponse -> Rep ListModelPackagesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListModelPackagesResponse x -> ListModelPackagesResponse
$cfrom :: forall x.
ListModelPackagesResponse -> Rep ListModelPackagesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListModelPackagesResponse' 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', 'listModelPackagesResponse_nextToken' - If the response is truncated, SageMaker returns this token. To retrieve
-- the next set of model packages, use it in the subsequent request.
--
-- 'httpStatus', 'listModelPackagesResponse_httpStatus' - The response's http status code.
--
-- 'modelPackageSummaryList', 'listModelPackagesResponse_modelPackageSummaryList' - An array of @ModelPackageSummary@ objects, each of which lists a model
-- package.
newListModelPackagesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListModelPackagesResponse
newListModelPackagesResponse :: Int -> ListModelPackagesResponse
newListModelPackagesResponse Int
pHttpStatus_ =
  ListModelPackagesResponse'
    { $sel:nextToken:ListModelPackagesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListModelPackagesResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:modelPackageSummaryList:ListModelPackagesResponse' :: [ModelPackageSummary]
modelPackageSummaryList = forall a. Monoid a => a
Prelude.mempty
    }

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

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

-- | An array of @ModelPackageSummary@ objects, each of which lists a model
-- package.
listModelPackagesResponse_modelPackageSummaryList :: Lens.Lens' ListModelPackagesResponse [ModelPackageSummary]
listModelPackagesResponse_modelPackageSummaryList :: Lens' ListModelPackagesResponse [ModelPackageSummary]
listModelPackagesResponse_modelPackageSummaryList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListModelPackagesResponse' {[ModelPackageSummary]
modelPackageSummaryList :: [ModelPackageSummary]
$sel:modelPackageSummaryList:ListModelPackagesResponse' :: ListModelPackagesResponse -> [ModelPackageSummary]
modelPackageSummaryList} -> [ModelPackageSummary]
modelPackageSummaryList) (\s :: ListModelPackagesResponse
s@ListModelPackagesResponse' {} [ModelPackageSummary]
a -> ListModelPackagesResponse
s {$sel:modelPackageSummaryList:ListModelPackagesResponse' :: [ModelPackageSummary]
modelPackageSummaryList = [ModelPackageSummary]
a} :: ListModelPackagesResponse) 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 ListModelPackagesResponse where
  rnf :: ListModelPackagesResponse -> ()
rnf ListModelPackagesResponse' {Int
[ModelPackageSummary]
Maybe Text
modelPackageSummaryList :: [ModelPackageSummary]
httpStatus :: Int
nextToken :: Maybe Text
$sel:modelPackageSummaryList:ListModelPackagesResponse' :: ListModelPackagesResponse -> [ModelPackageSummary]
$sel:httpStatus:ListModelPackagesResponse' :: ListModelPackagesResponse -> Int
$sel:nextToken:ListModelPackagesResponse' :: ListModelPackagesResponse -> 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 [ModelPackageSummary]
modelPackageSummaryList