{-# 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.Panorama.DescribePackageVersion
-- 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 information about a package version.
module Amazonka.Panorama.DescribePackageVersion
  ( -- * Creating a Request
    DescribePackageVersion (..),
    newDescribePackageVersion,

    -- * Request Lenses
    describePackageVersion_ownerAccount,
    describePackageVersion_patchVersion,
    describePackageVersion_packageId,
    describePackageVersion_packageVersion,

    -- * Destructuring the Response
    DescribePackageVersionResponse (..),
    newDescribePackageVersionResponse,

    -- * Response Lenses
    describePackageVersionResponse_ownerAccount,
    describePackageVersionResponse_packageArn,
    describePackageVersionResponse_registeredTime,
    describePackageVersionResponse_statusDescription,
    describePackageVersionResponse_httpStatus,
    describePackageVersionResponse_isLatestPatch,
    describePackageVersionResponse_packageId,
    describePackageVersionResponse_packageName,
    describePackageVersionResponse_packageVersion,
    describePackageVersionResponse_patchVersion,
    describePackageVersionResponse_status,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Panorama.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newDescribePackageVersion' smart constructor.
data DescribePackageVersion = DescribePackageVersion'
  { -- | The version\'s owner account.
    DescribePackageVersion -> Maybe Text
ownerAccount :: Prelude.Maybe Prelude.Text,
    -- | The version\'s patch version.
    DescribePackageVersion -> Maybe Text
patchVersion :: Prelude.Maybe Prelude.Text,
    -- | The version\'s ID.
    DescribePackageVersion -> Text
packageId :: Prelude.Text,
    -- | The version\'s version.
    DescribePackageVersion -> Text
packageVersion :: Prelude.Text
  }
  deriving (DescribePackageVersion -> DescribePackageVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePackageVersion -> DescribePackageVersion -> Bool
$c/= :: DescribePackageVersion -> DescribePackageVersion -> Bool
== :: DescribePackageVersion -> DescribePackageVersion -> Bool
$c== :: DescribePackageVersion -> DescribePackageVersion -> Bool
Prelude.Eq, ReadPrec [DescribePackageVersion]
ReadPrec DescribePackageVersion
Int -> ReadS DescribePackageVersion
ReadS [DescribePackageVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePackageVersion]
$creadListPrec :: ReadPrec [DescribePackageVersion]
readPrec :: ReadPrec DescribePackageVersion
$creadPrec :: ReadPrec DescribePackageVersion
readList :: ReadS [DescribePackageVersion]
$creadList :: ReadS [DescribePackageVersion]
readsPrec :: Int -> ReadS DescribePackageVersion
$creadsPrec :: Int -> ReadS DescribePackageVersion
Prelude.Read, Int -> DescribePackageVersion -> ShowS
[DescribePackageVersion] -> ShowS
DescribePackageVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePackageVersion] -> ShowS
$cshowList :: [DescribePackageVersion] -> ShowS
show :: DescribePackageVersion -> String
$cshow :: DescribePackageVersion -> String
showsPrec :: Int -> DescribePackageVersion -> ShowS
$cshowsPrec :: Int -> DescribePackageVersion -> ShowS
Prelude.Show, forall x. Rep DescribePackageVersion x -> DescribePackageVersion
forall x. DescribePackageVersion -> Rep DescribePackageVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePackageVersion x -> DescribePackageVersion
$cfrom :: forall x. DescribePackageVersion -> Rep DescribePackageVersion x
Prelude.Generic)

-- |
-- Create a value of 'DescribePackageVersion' 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:
--
-- 'ownerAccount', 'describePackageVersion_ownerAccount' - The version\'s owner account.
--
-- 'patchVersion', 'describePackageVersion_patchVersion' - The version\'s patch version.
--
-- 'packageId', 'describePackageVersion_packageId' - The version\'s ID.
--
-- 'packageVersion', 'describePackageVersion_packageVersion' - The version\'s version.
newDescribePackageVersion ::
  -- | 'packageId'
  Prelude.Text ->
  -- | 'packageVersion'
  Prelude.Text ->
  DescribePackageVersion
newDescribePackageVersion :: Text -> Text -> DescribePackageVersion
newDescribePackageVersion
  Text
pPackageId_
  Text
pPackageVersion_ =
    DescribePackageVersion'
      { $sel:ownerAccount:DescribePackageVersion' :: Maybe Text
ownerAccount =
          forall a. Maybe a
Prelude.Nothing,
        $sel:patchVersion:DescribePackageVersion' :: Maybe Text
patchVersion = forall a. Maybe a
Prelude.Nothing,
        $sel:packageId:DescribePackageVersion' :: Text
packageId = Text
pPackageId_,
        $sel:packageVersion:DescribePackageVersion' :: Text
packageVersion = Text
pPackageVersion_
      }

-- | The version\'s owner account.
describePackageVersion_ownerAccount :: Lens.Lens' DescribePackageVersion (Prelude.Maybe Prelude.Text)
describePackageVersion_ownerAccount :: Lens' DescribePackageVersion (Maybe Text)
describePackageVersion_ownerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersion' {Maybe Text
ownerAccount :: Maybe Text
$sel:ownerAccount:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
ownerAccount} -> Maybe Text
ownerAccount) (\s :: DescribePackageVersion
s@DescribePackageVersion' {} Maybe Text
a -> DescribePackageVersion
s {$sel:ownerAccount:DescribePackageVersion' :: Maybe Text
ownerAccount = Maybe Text
a} :: DescribePackageVersion)

-- | The version\'s patch version.
describePackageVersion_patchVersion :: Lens.Lens' DescribePackageVersion (Prelude.Maybe Prelude.Text)
describePackageVersion_patchVersion :: Lens' DescribePackageVersion (Maybe Text)
describePackageVersion_patchVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersion' {Maybe Text
patchVersion :: Maybe Text
$sel:patchVersion:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
patchVersion} -> Maybe Text
patchVersion) (\s :: DescribePackageVersion
s@DescribePackageVersion' {} Maybe Text
a -> DescribePackageVersion
s {$sel:patchVersion:DescribePackageVersion' :: Maybe Text
patchVersion = Maybe Text
a} :: DescribePackageVersion)

-- | The version\'s ID.
describePackageVersion_packageId :: Lens.Lens' DescribePackageVersion Prelude.Text
describePackageVersion_packageId :: Lens' DescribePackageVersion Text
describePackageVersion_packageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersion' {Text
packageId :: Text
$sel:packageId:DescribePackageVersion' :: DescribePackageVersion -> Text
packageId} -> Text
packageId) (\s :: DescribePackageVersion
s@DescribePackageVersion' {} Text
a -> DescribePackageVersion
s {$sel:packageId:DescribePackageVersion' :: Text
packageId = Text
a} :: DescribePackageVersion)

-- | The version\'s version.
describePackageVersion_packageVersion :: Lens.Lens' DescribePackageVersion Prelude.Text
describePackageVersion_packageVersion :: Lens' DescribePackageVersion Text
describePackageVersion_packageVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersion' {Text
packageVersion :: Text
$sel:packageVersion:DescribePackageVersion' :: DescribePackageVersion -> Text
packageVersion} -> Text
packageVersion) (\s :: DescribePackageVersion
s@DescribePackageVersion' {} Text
a -> DescribePackageVersion
s {$sel:packageVersion:DescribePackageVersion' :: Text
packageVersion = Text
a} :: DescribePackageVersion)

instance Core.AWSRequest DescribePackageVersion where
  type
    AWSResponse DescribePackageVersion =
      DescribePackageVersionResponse
  request :: (Service -> Service)
-> DescribePackageVersion -> Request DescribePackageVersion
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribePackageVersion
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribePackageVersion)))
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 Text
-> Maybe POSIX
-> Maybe Text
-> Int
-> Bool
-> Text
-> Text
-> Text
-> Text
-> PackageVersionStatus
-> DescribePackageVersionResponse
DescribePackageVersionResponse'
            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
"OwnerAccount")
            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
"PackageArn")
            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
"RegisteredTime")
            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
"StatusDescription")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"IsLatestPatch")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"PackageId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"PackageName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"PackageVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"PatchVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Status")
      )

instance Prelude.Hashable DescribePackageVersion where
  hashWithSalt :: Int -> DescribePackageVersion -> Int
hashWithSalt Int
_salt DescribePackageVersion' {Maybe Text
Text
packageVersion :: Text
packageId :: Text
patchVersion :: Maybe Text
ownerAccount :: Maybe Text
$sel:packageVersion:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:packageId:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:patchVersion:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
$sel:ownerAccount:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
patchVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
packageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
packageVersion

instance Prelude.NFData DescribePackageVersion where
  rnf :: DescribePackageVersion -> ()
rnf DescribePackageVersion' {Maybe Text
Text
packageVersion :: Text
packageId :: Text
patchVersion :: Maybe Text
ownerAccount :: Maybe Text
$sel:packageVersion:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:packageId:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:patchVersion:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
$sel:ownerAccount:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
patchVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageVersion

instance Data.ToHeaders DescribePackageVersion where
  toHeaders :: DescribePackageVersion -> 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.ToPath DescribePackageVersion where
  toPath :: DescribePackageVersion -> ByteString
toPath DescribePackageVersion' {Maybe Text
Text
packageVersion :: Text
packageId :: Text
patchVersion :: Maybe Text
ownerAccount :: Maybe Text
$sel:packageVersion:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:packageId:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:patchVersion:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
$sel:ownerAccount:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/packages/metadata/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
packageId,
        ByteString
"/versions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
packageVersion
      ]

instance Data.ToQuery DescribePackageVersion where
  toQuery :: DescribePackageVersion -> QueryString
toQuery DescribePackageVersion' {Maybe Text
Text
packageVersion :: Text
packageId :: Text
patchVersion :: Maybe Text
ownerAccount :: Maybe Text
$sel:packageVersion:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:packageId:DescribePackageVersion' :: DescribePackageVersion -> Text
$sel:patchVersion:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
$sel:ownerAccount:DescribePackageVersion' :: DescribePackageVersion -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"OwnerAccount" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
ownerAccount,
        ByteString
"PatchVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
patchVersion
      ]

-- | /See:/ 'newDescribePackageVersionResponse' smart constructor.
data DescribePackageVersionResponse = DescribePackageVersionResponse'
  { -- | The account ID of the version\'s owner.
    DescribePackageVersionResponse -> Maybe Text
ownerAccount :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the package.
    DescribePackageVersionResponse -> Maybe Text
packageArn :: Prelude.Maybe Prelude.Text,
    -- | The version\'s registered time.
    DescribePackageVersionResponse -> Maybe POSIX
registeredTime :: Prelude.Maybe Data.POSIX,
    -- | The version\'s status description.
    DescribePackageVersionResponse -> Maybe Text
statusDescription :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribePackageVersionResponse -> Int
httpStatus :: Prelude.Int,
    -- | Whether the version is the latest available.
    DescribePackageVersionResponse -> Bool
isLatestPatch :: Prelude.Bool,
    -- | The version\'s ID.
    DescribePackageVersionResponse -> Text
packageId :: Prelude.Text,
    -- | The version\'s name.
    DescribePackageVersionResponse -> Text
packageName :: Prelude.Text,
    -- | The version\'s version.
    DescribePackageVersionResponse -> Text
packageVersion :: Prelude.Text,
    -- | The version\'s patch version.
    DescribePackageVersionResponse -> Text
patchVersion :: Prelude.Text,
    -- | The version\'s status.
    DescribePackageVersionResponse -> PackageVersionStatus
status :: PackageVersionStatus
  }
  deriving (DescribePackageVersionResponse
-> DescribePackageVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePackageVersionResponse
-> DescribePackageVersionResponse -> Bool
$c/= :: DescribePackageVersionResponse
-> DescribePackageVersionResponse -> Bool
== :: DescribePackageVersionResponse
-> DescribePackageVersionResponse -> Bool
$c== :: DescribePackageVersionResponse
-> DescribePackageVersionResponse -> Bool
Prelude.Eq, ReadPrec [DescribePackageVersionResponse]
ReadPrec DescribePackageVersionResponse
Int -> ReadS DescribePackageVersionResponse
ReadS [DescribePackageVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePackageVersionResponse]
$creadListPrec :: ReadPrec [DescribePackageVersionResponse]
readPrec :: ReadPrec DescribePackageVersionResponse
$creadPrec :: ReadPrec DescribePackageVersionResponse
readList :: ReadS [DescribePackageVersionResponse]
$creadList :: ReadS [DescribePackageVersionResponse]
readsPrec :: Int -> ReadS DescribePackageVersionResponse
$creadsPrec :: Int -> ReadS DescribePackageVersionResponse
Prelude.Read, Int -> DescribePackageVersionResponse -> ShowS
[DescribePackageVersionResponse] -> ShowS
DescribePackageVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePackageVersionResponse] -> ShowS
$cshowList :: [DescribePackageVersionResponse] -> ShowS
show :: DescribePackageVersionResponse -> String
$cshow :: DescribePackageVersionResponse -> String
showsPrec :: Int -> DescribePackageVersionResponse -> ShowS
$cshowsPrec :: Int -> DescribePackageVersionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribePackageVersionResponse x
-> DescribePackageVersionResponse
forall x.
DescribePackageVersionResponse
-> Rep DescribePackageVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePackageVersionResponse x
-> DescribePackageVersionResponse
$cfrom :: forall x.
DescribePackageVersionResponse
-> Rep DescribePackageVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribePackageVersionResponse' 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:
--
-- 'ownerAccount', 'describePackageVersionResponse_ownerAccount' - The account ID of the version\'s owner.
--
-- 'packageArn', 'describePackageVersionResponse_packageArn' - The ARN of the package.
--
-- 'registeredTime', 'describePackageVersionResponse_registeredTime' - The version\'s registered time.
--
-- 'statusDescription', 'describePackageVersionResponse_statusDescription' - The version\'s status description.
--
-- 'httpStatus', 'describePackageVersionResponse_httpStatus' - The response's http status code.
--
-- 'isLatestPatch', 'describePackageVersionResponse_isLatestPatch' - Whether the version is the latest available.
--
-- 'packageId', 'describePackageVersionResponse_packageId' - The version\'s ID.
--
-- 'packageName', 'describePackageVersionResponse_packageName' - The version\'s name.
--
-- 'packageVersion', 'describePackageVersionResponse_packageVersion' - The version\'s version.
--
-- 'patchVersion', 'describePackageVersionResponse_patchVersion' - The version\'s patch version.
--
-- 'status', 'describePackageVersionResponse_status' - The version\'s status.
newDescribePackageVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'isLatestPatch'
  Prelude.Bool ->
  -- | 'packageId'
  Prelude.Text ->
  -- | 'packageName'
  Prelude.Text ->
  -- | 'packageVersion'
  Prelude.Text ->
  -- | 'patchVersion'
  Prelude.Text ->
  -- | 'status'
  PackageVersionStatus ->
  DescribePackageVersionResponse
newDescribePackageVersionResponse :: Int
-> Bool
-> Text
-> Text
-> Text
-> Text
-> PackageVersionStatus
-> DescribePackageVersionResponse
newDescribePackageVersionResponse
  Int
pHttpStatus_
  Bool
pIsLatestPatch_
  Text
pPackageId_
  Text
pPackageName_
  Text
pPackageVersion_
  Text
pPatchVersion_
  PackageVersionStatus
pStatus_ =
    DescribePackageVersionResponse'
      { $sel:ownerAccount:DescribePackageVersionResponse' :: Maybe Text
ownerAccount =
          forall a. Maybe a
Prelude.Nothing,
        $sel:packageArn:DescribePackageVersionResponse' :: Maybe Text
packageArn = forall a. Maybe a
Prelude.Nothing,
        $sel:registeredTime:DescribePackageVersionResponse' :: Maybe POSIX
registeredTime = forall a. Maybe a
Prelude.Nothing,
        $sel:statusDescription:DescribePackageVersionResponse' :: Maybe Text
statusDescription = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribePackageVersionResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:isLatestPatch:DescribePackageVersionResponse' :: Bool
isLatestPatch = Bool
pIsLatestPatch_,
        $sel:packageId:DescribePackageVersionResponse' :: Text
packageId = Text
pPackageId_,
        $sel:packageName:DescribePackageVersionResponse' :: Text
packageName = Text
pPackageName_,
        $sel:packageVersion:DescribePackageVersionResponse' :: Text
packageVersion = Text
pPackageVersion_,
        $sel:patchVersion:DescribePackageVersionResponse' :: Text
patchVersion = Text
pPatchVersion_,
        $sel:status:DescribePackageVersionResponse' :: PackageVersionStatus
status = PackageVersionStatus
pStatus_
      }

-- | The account ID of the version\'s owner.
describePackageVersionResponse_ownerAccount :: Lens.Lens' DescribePackageVersionResponse (Prelude.Maybe Prelude.Text)
describePackageVersionResponse_ownerAccount :: Lens' DescribePackageVersionResponse (Maybe Text)
describePackageVersionResponse_ownerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Maybe Text
ownerAccount :: Maybe Text
$sel:ownerAccount:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe Text
ownerAccount} -> Maybe Text
ownerAccount) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Maybe Text
a -> DescribePackageVersionResponse
s {$sel:ownerAccount:DescribePackageVersionResponse' :: Maybe Text
ownerAccount = Maybe Text
a} :: DescribePackageVersionResponse)

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

-- | The version\'s registered time.
describePackageVersionResponse_registeredTime :: Lens.Lens' DescribePackageVersionResponse (Prelude.Maybe Prelude.UTCTime)
describePackageVersionResponse_registeredTime :: Lens' DescribePackageVersionResponse (Maybe UTCTime)
describePackageVersionResponse_registeredTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Maybe POSIX
registeredTime :: Maybe POSIX
$sel:registeredTime:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe POSIX
registeredTime} -> Maybe POSIX
registeredTime) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Maybe POSIX
a -> DescribePackageVersionResponse
s {$sel:registeredTime:DescribePackageVersionResponse' :: Maybe POSIX
registeredTime = Maybe POSIX
a} :: DescribePackageVersionResponse) 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 version\'s status description.
describePackageVersionResponse_statusDescription :: Lens.Lens' DescribePackageVersionResponse (Prelude.Maybe Prelude.Text)
describePackageVersionResponse_statusDescription :: Lens' DescribePackageVersionResponse (Maybe Text)
describePackageVersionResponse_statusDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Maybe Text
statusDescription :: Maybe Text
$sel:statusDescription:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe Text
statusDescription} -> Maybe Text
statusDescription) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Maybe Text
a -> DescribePackageVersionResponse
s {$sel:statusDescription:DescribePackageVersionResponse' :: Maybe Text
statusDescription = Maybe Text
a} :: DescribePackageVersionResponse)

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

-- | Whether the version is the latest available.
describePackageVersionResponse_isLatestPatch :: Lens.Lens' DescribePackageVersionResponse Prelude.Bool
describePackageVersionResponse_isLatestPatch :: Lens' DescribePackageVersionResponse Bool
describePackageVersionResponse_isLatestPatch = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Bool
isLatestPatch :: Bool
$sel:isLatestPatch:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Bool
isLatestPatch} -> Bool
isLatestPatch) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Bool
a -> DescribePackageVersionResponse
s {$sel:isLatestPatch:DescribePackageVersionResponse' :: Bool
isLatestPatch = Bool
a} :: DescribePackageVersionResponse)

-- | The version\'s ID.
describePackageVersionResponse_packageId :: Lens.Lens' DescribePackageVersionResponse Prelude.Text
describePackageVersionResponse_packageId :: Lens' DescribePackageVersionResponse Text
describePackageVersionResponse_packageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Text
packageId :: Text
$sel:packageId:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
packageId} -> Text
packageId) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Text
a -> DescribePackageVersionResponse
s {$sel:packageId:DescribePackageVersionResponse' :: Text
packageId = Text
a} :: DescribePackageVersionResponse)

-- | The version\'s name.
describePackageVersionResponse_packageName :: Lens.Lens' DescribePackageVersionResponse Prelude.Text
describePackageVersionResponse_packageName :: Lens' DescribePackageVersionResponse Text
describePackageVersionResponse_packageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Text
packageName :: Text
$sel:packageName:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
packageName} -> Text
packageName) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Text
a -> DescribePackageVersionResponse
s {$sel:packageName:DescribePackageVersionResponse' :: Text
packageName = Text
a} :: DescribePackageVersionResponse)

-- | The version\'s version.
describePackageVersionResponse_packageVersion :: Lens.Lens' DescribePackageVersionResponse Prelude.Text
describePackageVersionResponse_packageVersion :: Lens' DescribePackageVersionResponse Text
describePackageVersionResponse_packageVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Text
packageVersion :: Text
$sel:packageVersion:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
packageVersion} -> Text
packageVersion) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Text
a -> DescribePackageVersionResponse
s {$sel:packageVersion:DescribePackageVersionResponse' :: Text
packageVersion = Text
a} :: DescribePackageVersionResponse)

-- | The version\'s patch version.
describePackageVersionResponse_patchVersion :: Lens.Lens' DescribePackageVersionResponse Prelude.Text
describePackageVersionResponse_patchVersion :: Lens' DescribePackageVersionResponse Text
describePackageVersionResponse_patchVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {Text
patchVersion :: Text
$sel:patchVersion:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
patchVersion} -> Text
patchVersion) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} Text
a -> DescribePackageVersionResponse
s {$sel:patchVersion:DescribePackageVersionResponse' :: Text
patchVersion = Text
a} :: DescribePackageVersionResponse)

-- | The version\'s status.
describePackageVersionResponse_status :: Lens.Lens' DescribePackageVersionResponse PackageVersionStatus
describePackageVersionResponse_status :: Lens' DescribePackageVersionResponse PackageVersionStatus
describePackageVersionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageVersionResponse' {PackageVersionStatus
status :: PackageVersionStatus
$sel:status:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> PackageVersionStatus
status} -> PackageVersionStatus
status) (\s :: DescribePackageVersionResponse
s@DescribePackageVersionResponse' {} PackageVersionStatus
a -> DescribePackageVersionResponse
s {$sel:status:DescribePackageVersionResponse' :: PackageVersionStatus
status = PackageVersionStatus
a} :: DescribePackageVersionResponse)

instance
  Prelude.NFData
    DescribePackageVersionResponse
  where
  rnf :: DescribePackageVersionResponse -> ()
rnf DescribePackageVersionResponse' {Bool
Int
Maybe Text
Maybe POSIX
Text
PackageVersionStatus
status :: PackageVersionStatus
patchVersion :: Text
packageVersion :: Text
packageName :: Text
packageId :: Text
isLatestPatch :: Bool
httpStatus :: Int
statusDescription :: Maybe Text
registeredTime :: Maybe POSIX
packageArn :: Maybe Text
ownerAccount :: Maybe Text
$sel:status:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> PackageVersionStatus
$sel:patchVersion:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
$sel:packageVersion:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
$sel:packageName:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
$sel:packageId:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Text
$sel:isLatestPatch:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Bool
$sel:httpStatus:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Int
$sel:statusDescription:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe Text
$sel:registeredTime:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe POSIX
$sel:packageArn:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe Text
$sel:ownerAccount:DescribePackageVersionResponse' :: DescribePackageVersionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
packageArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
registeredTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusDescription
      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 Bool
isLatestPatch
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
patchVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf PackageVersionStatus
status