{-# 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.CodeArtifact.ListPackageVersions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html PackageVersionSummary>
-- objects for package versions in a repository that match the request
-- parameters.
--
-- This operation returns paginated results.
module Amazonka.CodeArtifact.ListPackageVersions
  ( -- * Creating a Request
    ListPackageVersions (..),
    newListPackageVersions,

    -- * Request Lenses
    listPackageVersions_domainOwner,
    listPackageVersions_maxResults,
    listPackageVersions_namespace,
    listPackageVersions_nextToken,
    listPackageVersions_originType,
    listPackageVersions_sortBy,
    listPackageVersions_status,
    listPackageVersions_domain,
    listPackageVersions_repository,
    listPackageVersions_format,
    listPackageVersions_package,

    -- * Destructuring the Response
    ListPackageVersionsResponse (..),
    newListPackageVersionsResponse,

    -- * Response Lenses
    listPackageVersionsResponse_defaultDisplayVersion,
    listPackageVersionsResponse_format,
    listPackageVersionsResponse_namespace,
    listPackageVersionsResponse_nextToken,
    listPackageVersionsResponse_package,
    listPackageVersionsResponse_versions,
    listPackageVersionsResponse_httpStatus,
  )
where

import Amazonka.CodeArtifact.Types
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

-- | /See:/ 'newListPackageVersions' smart constructor.
data ListPackageVersions = ListPackageVersions'
  { -- | The 12-digit account number of the Amazon Web Services account that owns
    -- the domain. It does not include dashes or spaces.
    ListPackageVersions -> Maybe Text
domainOwner :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of results to return per page.
    ListPackageVersions -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The namespace of the package that contains the requested package
    -- versions. The package component that specifies its namespace depends on
    -- its type. For example:
    --
    -- -   The namespace of a Maven package is its @groupId@.
    --
    -- -   The namespace of an npm package is its @scope@.
    --
    -- -   Python and NuGet packages do not contain a corresponding component,
    --     packages of those formats do not have a namespace.
    ListPackageVersions -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | The token for the next set of results. Use the value returned in the
    -- previous response in the next request to retrieve the next set of
    -- results.
    ListPackageVersions -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The @originType@ used to filter package versions. Only package versions
    -- with the provided @originType@ will be returned.
    ListPackageVersions -> Maybe PackageVersionOriginType
originType :: Prelude.Maybe PackageVersionOriginType,
    -- | How to sort the requested list of package versions.
    ListPackageVersions -> Maybe PackageVersionSortType
sortBy :: Prelude.Maybe PackageVersionSortType,
    -- | A string that filters the requested package versions by status.
    ListPackageVersions -> Maybe PackageVersionStatus
status :: Prelude.Maybe PackageVersionStatus,
    -- | The name of the domain that contains the repository that contains the
    -- requested package versions.
    ListPackageVersions -> Text
domain :: Prelude.Text,
    -- | The name of the repository that contains the requested package versions.
    ListPackageVersions -> Text
repository :: Prelude.Text,
    -- | The format of the returned package versions.
    ListPackageVersions -> PackageFormat
format :: PackageFormat,
    -- | The name of the package for which you want to request package versions.
    ListPackageVersions -> Text
package :: Prelude.Text
  }
  deriving (ListPackageVersions -> ListPackageVersions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListPackageVersions -> ListPackageVersions -> Bool
$c/= :: ListPackageVersions -> ListPackageVersions -> Bool
== :: ListPackageVersions -> ListPackageVersions -> Bool
$c== :: ListPackageVersions -> ListPackageVersions -> Bool
Prelude.Eq, ReadPrec [ListPackageVersions]
ReadPrec ListPackageVersions
Int -> ReadS ListPackageVersions
ReadS [ListPackageVersions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListPackageVersions]
$creadListPrec :: ReadPrec [ListPackageVersions]
readPrec :: ReadPrec ListPackageVersions
$creadPrec :: ReadPrec ListPackageVersions
readList :: ReadS [ListPackageVersions]
$creadList :: ReadS [ListPackageVersions]
readsPrec :: Int -> ReadS ListPackageVersions
$creadsPrec :: Int -> ReadS ListPackageVersions
Prelude.Read, Int -> ListPackageVersions -> ShowS
[ListPackageVersions] -> ShowS
ListPackageVersions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListPackageVersions] -> ShowS
$cshowList :: [ListPackageVersions] -> ShowS
show :: ListPackageVersions -> String
$cshow :: ListPackageVersions -> String
showsPrec :: Int -> ListPackageVersions -> ShowS
$cshowsPrec :: Int -> ListPackageVersions -> ShowS
Prelude.Show, forall x. Rep ListPackageVersions x -> ListPackageVersions
forall x. ListPackageVersions -> Rep ListPackageVersions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListPackageVersions x -> ListPackageVersions
$cfrom :: forall x. ListPackageVersions -> Rep ListPackageVersions x
Prelude.Generic)

-- |
-- Create a value of 'ListPackageVersions' 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:
--
-- 'domainOwner', 'listPackageVersions_domainOwner' - The 12-digit account number of the Amazon Web Services account that owns
-- the domain. It does not include dashes or spaces.
--
-- 'maxResults', 'listPackageVersions_maxResults' - The maximum number of results to return per page.
--
-- 'namespace', 'listPackageVersions_namespace' - The namespace of the package that contains the requested package
-- versions. The package component that specifies its namespace depends on
-- its type. For example:
--
-- -   The namespace of a Maven package is its @groupId@.
--
-- -   The namespace of an npm package is its @scope@.
--
-- -   Python and NuGet packages do not contain a corresponding component,
--     packages of those formats do not have a namespace.
--
-- 'nextToken', 'listPackageVersions_nextToken' - The token for the next set of results. Use the value returned in the
-- previous response in the next request to retrieve the next set of
-- results.
--
-- 'originType', 'listPackageVersions_originType' - The @originType@ used to filter package versions. Only package versions
-- with the provided @originType@ will be returned.
--
-- 'sortBy', 'listPackageVersions_sortBy' - How to sort the requested list of package versions.
--
-- 'status', 'listPackageVersions_status' - A string that filters the requested package versions by status.
--
-- 'domain', 'listPackageVersions_domain' - The name of the domain that contains the repository that contains the
-- requested package versions.
--
-- 'repository', 'listPackageVersions_repository' - The name of the repository that contains the requested package versions.
--
-- 'format', 'listPackageVersions_format' - The format of the returned package versions.
--
-- 'package', 'listPackageVersions_package' - The name of the package for which you want to request package versions.
newListPackageVersions ::
  -- | 'domain'
  Prelude.Text ->
  -- | 'repository'
  Prelude.Text ->
  -- | 'format'
  PackageFormat ->
  -- | 'package'
  Prelude.Text ->
  ListPackageVersions
newListPackageVersions :: Text -> Text -> PackageFormat -> Text -> ListPackageVersions
newListPackageVersions
  Text
pDomain_
  Text
pRepository_
  PackageFormat
pFormat_
  Text
pPackage_ =
    ListPackageVersions'
      { $sel:domainOwner:ListPackageVersions' :: Maybe Text
domainOwner = forall a. Maybe a
Prelude.Nothing,
        $sel:maxResults:ListPackageVersions' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
        $sel:namespace:ListPackageVersions' :: Maybe Text
namespace = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:ListPackageVersions' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:originType:ListPackageVersions' :: Maybe PackageVersionOriginType
originType = forall a. Maybe a
Prelude.Nothing,
        $sel:sortBy:ListPackageVersions' :: Maybe PackageVersionSortType
sortBy = forall a. Maybe a
Prelude.Nothing,
        $sel:status:ListPackageVersions' :: Maybe PackageVersionStatus
status = forall a. Maybe a
Prelude.Nothing,
        $sel:domain:ListPackageVersions' :: Text
domain = Text
pDomain_,
        $sel:repository:ListPackageVersions' :: Text
repository = Text
pRepository_,
        $sel:format:ListPackageVersions' :: PackageFormat
format = PackageFormat
pFormat_,
        $sel:package:ListPackageVersions' :: Text
package = Text
pPackage_
      }

-- | The 12-digit account number of the Amazon Web Services account that owns
-- the domain. It does not include dashes or spaces.
listPackageVersions_domainOwner :: Lens.Lens' ListPackageVersions (Prelude.Maybe Prelude.Text)
listPackageVersions_domainOwner :: Lens' ListPackageVersions (Maybe Text)
listPackageVersions_domainOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe Text
domainOwner :: Maybe Text
$sel:domainOwner:ListPackageVersions' :: ListPackageVersions -> Maybe Text
domainOwner} -> Maybe Text
domainOwner) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe Text
a -> ListPackageVersions
s {$sel:domainOwner:ListPackageVersions' :: Maybe Text
domainOwner = Maybe Text
a} :: ListPackageVersions)

-- | The maximum number of results to return per page.
listPackageVersions_maxResults :: Lens.Lens' ListPackageVersions (Prelude.Maybe Prelude.Natural)
listPackageVersions_maxResults :: Lens' ListPackageVersions (Maybe Natural)
listPackageVersions_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListPackageVersions' :: ListPackageVersions -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe Natural
a -> ListPackageVersions
s {$sel:maxResults:ListPackageVersions' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListPackageVersions)

-- | The namespace of the package that contains the requested package
-- versions. The package component that specifies its namespace depends on
-- its type. For example:
--
-- -   The namespace of a Maven package is its @groupId@.
--
-- -   The namespace of an npm package is its @scope@.
--
-- -   Python and NuGet packages do not contain a corresponding component,
--     packages of those formats do not have a namespace.
listPackageVersions_namespace :: Lens.Lens' ListPackageVersions (Prelude.Maybe Prelude.Text)
listPackageVersions_namespace :: Lens' ListPackageVersions (Maybe Text)
listPackageVersions_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe Text
namespace :: Maybe Text
$sel:namespace:ListPackageVersions' :: ListPackageVersions -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe Text
a -> ListPackageVersions
s {$sel:namespace:ListPackageVersions' :: Maybe Text
namespace = Maybe Text
a} :: ListPackageVersions)

-- | The token for the next set of results. Use the value returned in the
-- previous response in the next request to retrieve the next set of
-- results.
listPackageVersions_nextToken :: Lens.Lens' ListPackageVersions (Prelude.Maybe Prelude.Text)
listPackageVersions_nextToken :: Lens' ListPackageVersions (Maybe Text)
listPackageVersions_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListPackageVersions' :: ListPackageVersions -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe Text
a -> ListPackageVersions
s {$sel:nextToken:ListPackageVersions' :: Maybe Text
nextToken = Maybe Text
a} :: ListPackageVersions)

-- | The @originType@ used to filter package versions. Only package versions
-- with the provided @originType@ will be returned.
listPackageVersions_originType :: Lens.Lens' ListPackageVersions (Prelude.Maybe PackageVersionOriginType)
listPackageVersions_originType :: Lens' ListPackageVersions (Maybe PackageVersionOriginType)
listPackageVersions_originType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe PackageVersionOriginType
originType :: Maybe PackageVersionOriginType
$sel:originType:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionOriginType
originType} -> Maybe PackageVersionOriginType
originType) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe PackageVersionOriginType
a -> ListPackageVersions
s {$sel:originType:ListPackageVersions' :: Maybe PackageVersionOriginType
originType = Maybe PackageVersionOriginType
a} :: ListPackageVersions)

-- | How to sort the requested list of package versions.
listPackageVersions_sortBy :: Lens.Lens' ListPackageVersions (Prelude.Maybe PackageVersionSortType)
listPackageVersions_sortBy :: Lens' ListPackageVersions (Maybe PackageVersionSortType)
listPackageVersions_sortBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe PackageVersionSortType
sortBy :: Maybe PackageVersionSortType
$sel:sortBy:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionSortType
sortBy} -> Maybe PackageVersionSortType
sortBy) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe PackageVersionSortType
a -> ListPackageVersions
s {$sel:sortBy:ListPackageVersions' :: Maybe PackageVersionSortType
sortBy = Maybe PackageVersionSortType
a} :: ListPackageVersions)

-- | A string that filters the requested package versions by status.
listPackageVersions_status :: Lens.Lens' ListPackageVersions (Prelude.Maybe PackageVersionStatus)
listPackageVersions_status :: Lens' ListPackageVersions (Maybe PackageVersionStatus)
listPackageVersions_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Maybe PackageVersionStatus
status :: Maybe PackageVersionStatus
$sel:status:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionStatus
status} -> Maybe PackageVersionStatus
status) (\s :: ListPackageVersions
s@ListPackageVersions' {} Maybe PackageVersionStatus
a -> ListPackageVersions
s {$sel:status:ListPackageVersions' :: Maybe PackageVersionStatus
status = Maybe PackageVersionStatus
a} :: ListPackageVersions)

-- | The name of the domain that contains the repository that contains the
-- requested package versions.
listPackageVersions_domain :: Lens.Lens' ListPackageVersions Prelude.Text
listPackageVersions_domain :: Lens' ListPackageVersions Text
listPackageVersions_domain = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Text
domain :: Text
$sel:domain:ListPackageVersions' :: ListPackageVersions -> Text
domain} -> Text
domain) (\s :: ListPackageVersions
s@ListPackageVersions' {} Text
a -> ListPackageVersions
s {$sel:domain:ListPackageVersions' :: Text
domain = Text
a} :: ListPackageVersions)

-- | The name of the repository that contains the requested package versions.
listPackageVersions_repository :: Lens.Lens' ListPackageVersions Prelude.Text
listPackageVersions_repository :: Lens' ListPackageVersions Text
listPackageVersions_repository = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Text
repository :: Text
$sel:repository:ListPackageVersions' :: ListPackageVersions -> Text
repository} -> Text
repository) (\s :: ListPackageVersions
s@ListPackageVersions' {} Text
a -> ListPackageVersions
s {$sel:repository:ListPackageVersions' :: Text
repository = Text
a} :: ListPackageVersions)

-- | The format of the returned package versions.
listPackageVersions_format :: Lens.Lens' ListPackageVersions PackageFormat
listPackageVersions_format :: Lens' ListPackageVersions PackageFormat
listPackageVersions_format = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {PackageFormat
format :: PackageFormat
$sel:format:ListPackageVersions' :: ListPackageVersions -> PackageFormat
format} -> PackageFormat
format) (\s :: ListPackageVersions
s@ListPackageVersions' {} PackageFormat
a -> ListPackageVersions
s {$sel:format:ListPackageVersions' :: PackageFormat
format = PackageFormat
a} :: ListPackageVersions)

-- | The name of the package for which you want to request package versions.
listPackageVersions_package :: Lens.Lens' ListPackageVersions Prelude.Text
listPackageVersions_package :: Lens' ListPackageVersions Text
listPackageVersions_package = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersions' {Text
package :: Text
$sel:package:ListPackageVersions' :: ListPackageVersions -> Text
package} -> Text
package) (\s :: ListPackageVersions
s@ListPackageVersions' {} Text
a -> ListPackageVersions
s {$sel:package:ListPackageVersions' :: Text
package = Text
a} :: ListPackageVersions)

instance Core.AWSPager ListPackageVersions where
  page :: ListPackageVersions
-> AWSResponse ListPackageVersions -> Maybe ListPackageVersions
page ListPackageVersions
rq AWSResponse ListPackageVersions
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListPackageVersions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_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 ListPackageVersions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListPackageVersionsResponse (Maybe [PackageVersionSummary])
listPackageVersionsResponse_versions
            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
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListPackageVersions
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListPackageVersions (Maybe Text)
listPackageVersions_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListPackageVersions
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_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 ListPackageVersions where
  type
    AWSResponse ListPackageVersions =
      ListPackageVersionsResponse
  request :: (Service -> Service)
-> ListPackageVersions -> Request ListPackageVersions
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 ListPackageVersions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListPackageVersions)))
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
-> Maybe PackageFormat
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [PackageVersionSummary]
-> Int
-> ListPackageVersionsResponse
ListPackageVersionsResponse'
            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
"defaultDisplayVersion")
            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
"format")
            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
"namespace")
            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
"nextToken")
            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
"package")
            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
"versions" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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))
      )

instance Prelude.Hashable ListPackageVersions where
  hashWithSalt :: Int -> ListPackageVersions -> Int
hashWithSalt Int
_salt ListPackageVersions' {Maybe Natural
Maybe Text
Maybe PackageVersionOriginType
Maybe PackageVersionSortType
Maybe PackageVersionStatus
Text
PackageFormat
package :: Text
format :: PackageFormat
repository :: Text
domain :: Text
status :: Maybe PackageVersionStatus
sortBy :: Maybe PackageVersionSortType
originType :: Maybe PackageVersionOriginType
nextToken :: Maybe Text
namespace :: Maybe Text
maxResults :: Maybe Natural
domainOwner :: Maybe Text
$sel:package:ListPackageVersions' :: ListPackageVersions -> Text
$sel:format:ListPackageVersions' :: ListPackageVersions -> PackageFormat
$sel:repository:ListPackageVersions' :: ListPackageVersions -> Text
$sel:domain:ListPackageVersions' :: ListPackageVersions -> Text
$sel:status:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionStatus
$sel:sortBy:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionSortType
$sel:originType:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionOriginType
$sel:nextToken:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:namespace:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:maxResults:ListPackageVersions' :: ListPackageVersions -> Maybe Natural
$sel:domainOwner:ListPackageVersions' :: ListPackageVersions -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
domainOwner
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
namespace
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PackageVersionOriginType
originType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PackageVersionSortType
sortBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PackageVersionStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domain
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
repository
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` PackageFormat
format
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
package

instance Prelude.NFData ListPackageVersions where
  rnf :: ListPackageVersions -> ()
rnf ListPackageVersions' {Maybe Natural
Maybe Text
Maybe PackageVersionOriginType
Maybe PackageVersionSortType
Maybe PackageVersionStatus
Text
PackageFormat
package :: Text
format :: PackageFormat
repository :: Text
domain :: Text
status :: Maybe PackageVersionStatus
sortBy :: Maybe PackageVersionSortType
originType :: Maybe PackageVersionOriginType
nextToken :: Maybe Text
namespace :: Maybe Text
maxResults :: Maybe Natural
domainOwner :: Maybe Text
$sel:package:ListPackageVersions' :: ListPackageVersions -> Text
$sel:format:ListPackageVersions' :: ListPackageVersions -> PackageFormat
$sel:repository:ListPackageVersions' :: ListPackageVersions -> Text
$sel:domain:ListPackageVersions' :: ListPackageVersions -> Text
$sel:status:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionStatus
$sel:sortBy:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionSortType
$sel:originType:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionOriginType
$sel:nextToken:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:namespace:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:maxResults:ListPackageVersions' :: ListPackageVersions -> Maybe Natural
$sel:domainOwner:ListPackageVersions' :: ListPackageVersions -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
domainOwner
      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 Text
namespace
      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 PackageVersionOriginType
originType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PackageVersionSortType
sortBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PackageVersionStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
domain
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
repository
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf PackageFormat
format
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
package

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

instance Data.ToJSON ListPackageVersions where
  toJSON :: ListPackageVersions -> Value
toJSON = forall a b. a -> b -> a
Prelude.const (Object -> Value
Data.Object forall a. Monoid a => a
Prelude.mempty)

instance Data.ToPath ListPackageVersions where
  toPath :: ListPackageVersions -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/v1/package/versions"

instance Data.ToQuery ListPackageVersions where
  toQuery :: ListPackageVersions -> QueryString
toQuery ListPackageVersions' {Maybe Natural
Maybe Text
Maybe PackageVersionOriginType
Maybe PackageVersionSortType
Maybe PackageVersionStatus
Text
PackageFormat
package :: Text
format :: PackageFormat
repository :: Text
domain :: Text
status :: Maybe PackageVersionStatus
sortBy :: Maybe PackageVersionSortType
originType :: Maybe PackageVersionOriginType
nextToken :: Maybe Text
namespace :: Maybe Text
maxResults :: Maybe Natural
domainOwner :: Maybe Text
$sel:package:ListPackageVersions' :: ListPackageVersions -> Text
$sel:format:ListPackageVersions' :: ListPackageVersions -> PackageFormat
$sel:repository:ListPackageVersions' :: ListPackageVersions -> Text
$sel:domain:ListPackageVersions' :: ListPackageVersions -> Text
$sel:status:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionStatus
$sel:sortBy:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionSortType
$sel:originType:ListPackageVersions' :: ListPackageVersions -> Maybe PackageVersionOriginType
$sel:nextToken:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:namespace:ListPackageVersions' :: ListPackageVersions -> Maybe Text
$sel:maxResults:ListPackageVersions' :: ListPackageVersions -> Maybe Natural
$sel:domainOwner:ListPackageVersions' :: ListPackageVersions -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"domain-owner" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
domainOwner,
        ByteString
"max-results" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
maxResults,
        ByteString
"namespace" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
namespace,
        ByteString
"next-token" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"originType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe PackageVersionOriginType
originType,
        ByteString
"sortBy" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe PackageVersionSortType
sortBy,
        ByteString
"status" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe PackageVersionStatus
status,
        ByteString
"domain" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
domain,
        ByteString
"repository" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
repository,
        ByteString
"format" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: PackageFormat
format,
        ByteString
"package" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
package
      ]

-- | /See:/ 'newListPackageVersionsResponse' smart constructor.
data ListPackageVersionsResponse = ListPackageVersionsResponse'
  { -- | The default package version to display. This depends on the package
    -- format:
    --
    -- -   For Maven and PyPI packages, it\'s the most recently published
    --     package version.
    --
    -- -   For npm packages, it\'s the version referenced by the @latest@ tag.
    --     If the @latest@ tag is not set, it\'s the most recently published
    --     package version.
    ListPackageVersionsResponse -> Maybe Text
defaultDisplayVersion :: Prelude.Maybe Prelude.Text,
    -- | A format of the package.
    ListPackageVersionsResponse -> Maybe PackageFormat
format :: Prelude.Maybe PackageFormat,
    -- | The namespace of the package that contains the requested package
    -- versions. The package component that specifies its namespace depends on
    -- its type. For example:
    --
    -- -   The namespace of a Maven package is its @groupId@.
    --
    -- -   The namespace of an npm package is its @scope@.
    --
    -- -   Python and NuGet packages do not contain a corresponding component,
    --     packages of those formats do not have a namespace.
    ListPackageVersionsResponse -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | If there are additional results, this is the token for the next set of
    -- results.
    ListPackageVersionsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the package.
    ListPackageVersionsResponse -> Maybe Text
package :: Prelude.Maybe Prelude.Text,
    -- | The returned list of
    -- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html PackageVersionSummary>
    -- objects.
    ListPackageVersionsResponse -> Maybe [PackageVersionSummary]
versions :: Prelude.Maybe [PackageVersionSummary],
    -- | The response's http status code.
    ListPackageVersionsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListPackageVersionsResponse -> ListPackageVersionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListPackageVersionsResponse -> ListPackageVersionsResponse -> Bool
$c/= :: ListPackageVersionsResponse -> ListPackageVersionsResponse -> Bool
== :: ListPackageVersionsResponse -> ListPackageVersionsResponse -> Bool
$c== :: ListPackageVersionsResponse -> ListPackageVersionsResponse -> Bool
Prelude.Eq, ReadPrec [ListPackageVersionsResponse]
ReadPrec ListPackageVersionsResponse
Int -> ReadS ListPackageVersionsResponse
ReadS [ListPackageVersionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListPackageVersionsResponse]
$creadListPrec :: ReadPrec [ListPackageVersionsResponse]
readPrec :: ReadPrec ListPackageVersionsResponse
$creadPrec :: ReadPrec ListPackageVersionsResponse
readList :: ReadS [ListPackageVersionsResponse]
$creadList :: ReadS [ListPackageVersionsResponse]
readsPrec :: Int -> ReadS ListPackageVersionsResponse
$creadsPrec :: Int -> ReadS ListPackageVersionsResponse
Prelude.Read, Int -> ListPackageVersionsResponse -> ShowS
[ListPackageVersionsResponse] -> ShowS
ListPackageVersionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListPackageVersionsResponse] -> ShowS
$cshowList :: [ListPackageVersionsResponse] -> ShowS
show :: ListPackageVersionsResponse -> String
$cshow :: ListPackageVersionsResponse -> String
showsPrec :: Int -> ListPackageVersionsResponse -> ShowS
$cshowsPrec :: Int -> ListPackageVersionsResponse -> ShowS
Prelude.Show, forall x.
Rep ListPackageVersionsResponse x -> ListPackageVersionsResponse
forall x.
ListPackageVersionsResponse -> Rep ListPackageVersionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListPackageVersionsResponse x -> ListPackageVersionsResponse
$cfrom :: forall x.
ListPackageVersionsResponse -> Rep ListPackageVersionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListPackageVersionsResponse' 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:
--
-- 'defaultDisplayVersion', 'listPackageVersionsResponse_defaultDisplayVersion' - The default package version to display. This depends on the package
-- format:
--
-- -   For Maven and PyPI packages, it\'s the most recently published
--     package version.
--
-- -   For npm packages, it\'s the version referenced by the @latest@ tag.
--     If the @latest@ tag is not set, it\'s the most recently published
--     package version.
--
-- 'format', 'listPackageVersionsResponse_format' - A format of the package.
--
-- 'namespace', 'listPackageVersionsResponse_namespace' - The namespace of the package that contains the requested package
-- versions. The package component that specifies its namespace depends on
-- its type. For example:
--
-- -   The namespace of a Maven package is its @groupId@.
--
-- -   The namespace of an npm package is its @scope@.
--
-- -   Python and NuGet packages do not contain a corresponding component,
--     packages of those formats do not have a namespace.
--
-- 'nextToken', 'listPackageVersionsResponse_nextToken' - If there are additional results, this is the token for the next set of
-- results.
--
-- 'package', 'listPackageVersionsResponse_package' - The name of the package.
--
-- 'versions', 'listPackageVersionsResponse_versions' - The returned list of
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html PackageVersionSummary>
-- objects.
--
-- 'httpStatus', 'listPackageVersionsResponse_httpStatus' - The response's http status code.
newListPackageVersionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListPackageVersionsResponse
newListPackageVersionsResponse :: Int -> ListPackageVersionsResponse
newListPackageVersionsResponse Int
pHttpStatus_ =
  ListPackageVersionsResponse'
    { $sel:defaultDisplayVersion:ListPackageVersionsResponse' :: Maybe Text
defaultDisplayVersion =
        forall a. Maybe a
Prelude.Nothing,
      $sel:format:ListPackageVersionsResponse' :: Maybe PackageFormat
format = forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:ListPackageVersionsResponse' :: Maybe Text
namespace = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListPackageVersionsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:package:ListPackageVersionsResponse' :: Maybe Text
package = forall a. Maybe a
Prelude.Nothing,
      $sel:versions:ListPackageVersionsResponse' :: Maybe [PackageVersionSummary]
versions = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListPackageVersionsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The default package version to display. This depends on the package
-- format:
--
-- -   For Maven and PyPI packages, it\'s the most recently published
--     package version.
--
-- -   For npm packages, it\'s the version referenced by the @latest@ tag.
--     If the @latest@ tag is not set, it\'s the most recently published
--     package version.
listPackageVersionsResponse_defaultDisplayVersion :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe Prelude.Text)
listPackageVersionsResponse_defaultDisplayVersion :: Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_defaultDisplayVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe Text
defaultDisplayVersion :: Maybe Text
$sel:defaultDisplayVersion:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
defaultDisplayVersion} -> Maybe Text
defaultDisplayVersion) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe Text
a -> ListPackageVersionsResponse
s {$sel:defaultDisplayVersion:ListPackageVersionsResponse' :: Maybe Text
defaultDisplayVersion = Maybe Text
a} :: ListPackageVersionsResponse)

-- | A format of the package.
listPackageVersionsResponse_format :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe PackageFormat)
listPackageVersionsResponse_format :: Lens' ListPackageVersionsResponse (Maybe PackageFormat)
listPackageVersionsResponse_format = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe PackageFormat
format :: Maybe PackageFormat
$sel:format:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe PackageFormat
format} -> Maybe PackageFormat
format) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe PackageFormat
a -> ListPackageVersionsResponse
s {$sel:format:ListPackageVersionsResponse' :: Maybe PackageFormat
format = Maybe PackageFormat
a} :: ListPackageVersionsResponse)

-- | The namespace of the package that contains the requested package
-- versions. The package component that specifies its namespace depends on
-- its type. For example:
--
-- -   The namespace of a Maven package is its @groupId@.
--
-- -   The namespace of an npm package is its @scope@.
--
-- -   Python and NuGet packages do not contain a corresponding component,
--     packages of those formats do not have a namespace.
listPackageVersionsResponse_namespace :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe Prelude.Text)
listPackageVersionsResponse_namespace :: Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe Text
namespace :: Maybe Text
$sel:namespace:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe Text
a -> ListPackageVersionsResponse
s {$sel:namespace:ListPackageVersionsResponse' :: Maybe Text
namespace = Maybe Text
a} :: ListPackageVersionsResponse)

-- | If there are additional results, this is the token for the next set of
-- results.
listPackageVersionsResponse_nextToken :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe Prelude.Text)
listPackageVersionsResponse_nextToken :: Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe Text
a -> ListPackageVersionsResponse
s {$sel:nextToken:ListPackageVersionsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListPackageVersionsResponse)

-- | The name of the package.
listPackageVersionsResponse_package :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe Prelude.Text)
listPackageVersionsResponse_package :: Lens' ListPackageVersionsResponse (Maybe Text)
listPackageVersionsResponse_package = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe Text
package :: Maybe Text
$sel:package:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
package} -> Maybe Text
package) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe Text
a -> ListPackageVersionsResponse
s {$sel:package:ListPackageVersionsResponse' :: Maybe Text
package = Maybe Text
a} :: ListPackageVersionsResponse)

-- | The returned list of
-- <https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageVersionSummary.html PackageVersionSummary>
-- objects.
listPackageVersionsResponse_versions :: Lens.Lens' ListPackageVersionsResponse (Prelude.Maybe [PackageVersionSummary])
listPackageVersionsResponse_versions :: Lens' ListPackageVersionsResponse (Maybe [PackageVersionSummary])
listPackageVersionsResponse_versions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Maybe [PackageVersionSummary]
versions :: Maybe [PackageVersionSummary]
$sel:versions:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe [PackageVersionSummary]
versions} -> Maybe [PackageVersionSummary]
versions) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Maybe [PackageVersionSummary]
a -> ListPackageVersionsResponse
s {$sel:versions:ListPackageVersionsResponse' :: Maybe [PackageVersionSummary]
versions = Maybe [PackageVersionSummary]
a} :: ListPackageVersionsResponse) 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 response's http status code.
listPackageVersionsResponse_httpStatus :: Lens.Lens' ListPackageVersionsResponse Prelude.Int
listPackageVersionsResponse_httpStatus :: Lens' ListPackageVersionsResponse Int
listPackageVersionsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListPackageVersionsResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListPackageVersionsResponse
s@ListPackageVersionsResponse' {} Int
a -> ListPackageVersionsResponse
s {$sel:httpStatus:ListPackageVersionsResponse' :: Int
httpStatus = Int
a} :: ListPackageVersionsResponse)

instance Prelude.NFData ListPackageVersionsResponse where
  rnf :: ListPackageVersionsResponse -> ()
rnf ListPackageVersionsResponse' {Int
Maybe [PackageVersionSummary]
Maybe Text
Maybe PackageFormat
httpStatus :: Int
versions :: Maybe [PackageVersionSummary]
package :: Maybe Text
nextToken :: Maybe Text
namespace :: Maybe Text
format :: Maybe PackageFormat
defaultDisplayVersion :: Maybe Text
$sel:httpStatus:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Int
$sel:versions:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe [PackageVersionSummary]
$sel:package:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
$sel:nextToken:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
$sel:namespace:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
$sel:format:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe PackageFormat
$sel:defaultDisplayVersion:ListPackageVersionsResponse' :: ListPackageVersionsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
defaultDisplayVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PackageFormat
format
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
namespace
      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 Text
package
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [PackageVersionSummary]
versions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus