{-# 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.DescribePackage
-- 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.
module Amazonka.Panorama.DescribePackage
  ( -- * Creating a Request
    DescribePackage (..),
    newDescribePackage,

    -- * Request Lenses
    describePackage_packageId,

    -- * Destructuring the Response
    DescribePackageResponse (..),
    newDescribePackageResponse,

    -- * Response Lenses
    describePackageResponse_readAccessPrincipalArns,
    describePackageResponse_writeAccessPrincipalArns,
    describePackageResponse_httpStatus,
    describePackageResponse_arn,
    describePackageResponse_createdTime,
    describePackageResponse_packageId,
    describePackageResponse_packageName,
    describePackageResponse_storageLocation,
    describePackageResponse_tags,
  )
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:/ 'newDescribePackage' smart constructor.
data DescribePackage = DescribePackage'
  { -- | The package\'s ID.
    DescribePackage -> Text
packageId :: Prelude.Text
  }
  deriving (DescribePackage -> DescribePackage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePackage -> DescribePackage -> Bool
$c/= :: DescribePackage -> DescribePackage -> Bool
== :: DescribePackage -> DescribePackage -> Bool
$c== :: DescribePackage -> DescribePackage -> Bool
Prelude.Eq, ReadPrec [DescribePackage]
ReadPrec DescribePackage
Int -> ReadS DescribePackage
ReadS [DescribePackage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePackage]
$creadListPrec :: ReadPrec [DescribePackage]
readPrec :: ReadPrec DescribePackage
$creadPrec :: ReadPrec DescribePackage
readList :: ReadS [DescribePackage]
$creadList :: ReadS [DescribePackage]
readsPrec :: Int -> ReadS DescribePackage
$creadsPrec :: Int -> ReadS DescribePackage
Prelude.Read, Int -> DescribePackage -> ShowS
[DescribePackage] -> ShowS
DescribePackage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePackage] -> ShowS
$cshowList :: [DescribePackage] -> ShowS
show :: DescribePackage -> String
$cshow :: DescribePackage -> String
showsPrec :: Int -> DescribePackage -> ShowS
$cshowsPrec :: Int -> DescribePackage -> ShowS
Prelude.Show, forall x. Rep DescribePackage x -> DescribePackage
forall x. DescribePackage -> Rep DescribePackage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePackage x -> DescribePackage
$cfrom :: forall x. DescribePackage -> Rep DescribePackage x
Prelude.Generic)

-- |
-- Create a value of 'DescribePackage' 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:
--
-- 'packageId', 'describePackage_packageId' - The package\'s ID.
newDescribePackage ::
  -- | 'packageId'
  Prelude.Text ->
  DescribePackage
newDescribePackage :: Text -> DescribePackage
newDescribePackage Text
pPackageId_ =
  DescribePackage' {$sel:packageId:DescribePackage' :: Text
packageId = Text
pPackageId_}

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

instance Core.AWSRequest DescribePackage where
  type
    AWSResponse DescribePackage =
      DescribePackageResponse
  request :: (Service -> Service) -> DescribePackage -> Request DescribePackage
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 DescribePackage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribePackage)))
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]
-> Int
-> Text
-> POSIX
-> Text
-> Text
-> StorageLocation
-> HashMap Text Text
-> DescribePackageResponse
DescribePackageResponse'
            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
"ReadAccessPrincipalArns"
                            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.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"WriteAccessPrincipalArns"
                            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))
            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
"Arn")
            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
"CreatedTime")
            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
"StorageLocation")
            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
"Tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable DescribePackage where
  hashWithSalt :: Int -> DescribePackage -> Int
hashWithSalt Int
_salt DescribePackage' {Text
packageId :: Text
$sel:packageId:DescribePackage' :: DescribePackage -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
packageId

instance Prelude.NFData DescribePackage where
  rnf :: DescribePackage -> ()
rnf DescribePackage' {Text
packageId :: Text
$sel:packageId:DescribePackage' :: DescribePackage -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
packageId

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

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

-- | /See:/ 'newDescribePackageResponse' smart constructor.
data DescribePackageResponse = DescribePackageResponse'
  { -- | ARNs of accounts that have read access to the package.
    DescribePackageResponse -> Maybe [Text]
readAccessPrincipalArns :: Prelude.Maybe [Prelude.Text],
    -- | ARNs of accounts that have write access to the package.
    DescribePackageResponse -> Maybe [Text]
writeAccessPrincipalArns :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    DescribePackageResponse -> Int
httpStatus :: Prelude.Int,
    -- | The package\'s ARN.
    DescribePackageResponse -> Text
arn :: Prelude.Text,
    -- | When the package was created.
    DescribePackageResponse -> POSIX
createdTime :: Data.POSIX,
    -- | The package\'s ID.
    DescribePackageResponse -> Text
packageId :: Prelude.Text,
    -- | The package\'s name.
    DescribePackageResponse -> Text
packageName :: Prelude.Text,
    -- | The package\'s storage location.
    DescribePackageResponse -> StorageLocation
storageLocation :: StorageLocation,
    -- | The package\'s tags.
    DescribePackageResponse -> HashMap Text Text
tags :: Prelude.HashMap Prelude.Text Prelude.Text
  }
  deriving (DescribePackageResponse -> DescribePackageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePackageResponse -> DescribePackageResponse -> Bool
$c/= :: DescribePackageResponse -> DescribePackageResponse -> Bool
== :: DescribePackageResponse -> DescribePackageResponse -> Bool
$c== :: DescribePackageResponse -> DescribePackageResponse -> Bool
Prelude.Eq, ReadPrec [DescribePackageResponse]
ReadPrec DescribePackageResponse
Int -> ReadS DescribePackageResponse
ReadS [DescribePackageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePackageResponse]
$creadListPrec :: ReadPrec [DescribePackageResponse]
readPrec :: ReadPrec DescribePackageResponse
$creadPrec :: ReadPrec DescribePackageResponse
readList :: ReadS [DescribePackageResponse]
$creadList :: ReadS [DescribePackageResponse]
readsPrec :: Int -> ReadS DescribePackageResponse
$creadsPrec :: Int -> ReadS DescribePackageResponse
Prelude.Read, Int -> DescribePackageResponse -> ShowS
[DescribePackageResponse] -> ShowS
DescribePackageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePackageResponse] -> ShowS
$cshowList :: [DescribePackageResponse] -> ShowS
show :: DescribePackageResponse -> String
$cshow :: DescribePackageResponse -> String
showsPrec :: Int -> DescribePackageResponse -> ShowS
$cshowsPrec :: Int -> DescribePackageResponse -> ShowS
Prelude.Show, forall x. Rep DescribePackageResponse x -> DescribePackageResponse
forall x. DescribePackageResponse -> Rep DescribePackageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePackageResponse x -> DescribePackageResponse
$cfrom :: forall x. DescribePackageResponse -> Rep DescribePackageResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribePackageResponse' 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:
--
-- 'readAccessPrincipalArns', 'describePackageResponse_readAccessPrincipalArns' - ARNs of accounts that have read access to the package.
--
-- 'writeAccessPrincipalArns', 'describePackageResponse_writeAccessPrincipalArns' - ARNs of accounts that have write access to the package.
--
-- 'httpStatus', 'describePackageResponse_httpStatus' - The response's http status code.
--
-- 'arn', 'describePackageResponse_arn' - The package\'s ARN.
--
-- 'createdTime', 'describePackageResponse_createdTime' - When the package was created.
--
-- 'packageId', 'describePackageResponse_packageId' - The package\'s ID.
--
-- 'packageName', 'describePackageResponse_packageName' - The package\'s name.
--
-- 'storageLocation', 'describePackageResponse_storageLocation' - The package\'s storage location.
--
-- 'tags', 'describePackageResponse_tags' - The package\'s tags.
newDescribePackageResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'createdTime'
  Prelude.UTCTime ->
  -- | 'packageId'
  Prelude.Text ->
  -- | 'packageName'
  Prelude.Text ->
  -- | 'storageLocation'
  StorageLocation ->
  DescribePackageResponse
newDescribePackageResponse :: Int
-> Text
-> UTCTime
-> Text
-> Text
-> StorageLocation
-> DescribePackageResponse
newDescribePackageResponse
  Int
pHttpStatus_
  Text
pArn_
  UTCTime
pCreatedTime_
  Text
pPackageId_
  Text
pPackageName_
  StorageLocation
pStorageLocation_ =
    DescribePackageResponse'
      { $sel:readAccessPrincipalArns:DescribePackageResponse' :: Maybe [Text]
readAccessPrincipalArns =
          forall a. Maybe a
Prelude.Nothing,
        $sel:writeAccessPrincipalArns:DescribePackageResponse' :: Maybe [Text]
writeAccessPrincipalArns = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribePackageResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:arn:DescribePackageResponse' :: Text
arn = Text
pArn_,
        $sel:createdTime:DescribePackageResponse' :: POSIX
createdTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreatedTime_,
        $sel:packageId:DescribePackageResponse' :: Text
packageId = Text
pPackageId_,
        $sel:packageName:DescribePackageResponse' :: Text
packageName = Text
pPackageName_,
        $sel:storageLocation:DescribePackageResponse' :: StorageLocation
storageLocation = StorageLocation
pStorageLocation_,
        $sel:tags:DescribePackageResponse' :: HashMap Text Text
tags = forall a. Monoid a => a
Prelude.mempty
      }

-- | ARNs of accounts that have read access to the package.
describePackageResponse_readAccessPrincipalArns :: Lens.Lens' DescribePackageResponse (Prelude.Maybe [Prelude.Text])
describePackageResponse_readAccessPrincipalArns :: Lens' DescribePackageResponse (Maybe [Text])
describePackageResponse_readAccessPrincipalArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {Maybe [Text]
readAccessPrincipalArns :: Maybe [Text]
$sel:readAccessPrincipalArns:DescribePackageResponse' :: DescribePackageResponse -> Maybe [Text]
readAccessPrincipalArns} -> Maybe [Text]
readAccessPrincipalArns) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} Maybe [Text]
a -> DescribePackageResponse
s {$sel:readAccessPrincipalArns:DescribePackageResponse' :: Maybe [Text]
readAccessPrincipalArns = Maybe [Text]
a} :: DescribePackageResponse) 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

-- | ARNs of accounts that have write access to the package.
describePackageResponse_writeAccessPrincipalArns :: Lens.Lens' DescribePackageResponse (Prelude.Maybe [Prelude.Text])
describePackageResponse_writeAccessPrincipalArns :: Lens' DescribePackageResponse (Maybe [Text])
describePackageResponse_writeAccessPrincipalArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {Maybe [Text]
writeAccessPrincipalArns :: Maybe [Text]
$sel:writeAccessPrincipalArns:DescribePackageResponse' :: DescribePackageResponse -> Maybe [Text]
writeAccessPrincipalArns} -> Maybe [Text]
writeAccessPrincipalArns) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} Maybe [Text]
a -> DescribePackageResponse
s {$sel:writeAccessPrincipalArns:DescribePackageResponse' :: Maybe [Text]
writeAccessPrincipalArns = Maybe [Text]
a} :: DescribePackageResponse) 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.
describePackageResponse_httpStatus :: Lens.Lens' DescribePackageResponse Prelude.Int
describePackageResponse_httpStatus :: Lens' DescribePackageResponse Int
describePackageResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribePackageResponse' :: DescribePackageResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} Int
a -> DescribePackageResponse
s {$sel:httpStatus:DescribePackageResponse' :: Int
httpStatus = Int
a} :: DescribePackageResponse)

-- | The package\'s ARN.
describePackageResponse_arn :: Lens.Lens' DescribePackageResponse Prelude.Text
describePackageResponse_arn :: Lens' DescribePackageResponse Text
describePackageResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {Text
arn :: Text
$sel:arn:DescribePackageResponse' :: DescribePackageResponse -> Text
arn} -> Text
arn) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} Text
a -> DescribePackageResponse
s {$sel:arn:DescribePackageResponse' :: Text
arn = Text
a} :: DescribePackageResponse)

-- | When the package was created.
describePackageResponse_createdTime :: Lens.Lens' DescribePackageResponse Prelude.UTCTime
describePackageResponse_createdTime :: Lens' DescribePackageResponse UTCTime
describePackageResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {POSIX
createdTime :: POSIX
$sel:createdTime:DescribePackageResponse' :: DescribePackageResponse -> POSIX
createdTime} -> POSIX
createdTime) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} POSIX
a -> DescribePackageResponse
s {$sel:createdTime:DescribePackageResponse' :: POSIX
createdTime = POSIX
a} :: DescribePackageResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

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

-- | The package\'s storage location.
describePackageResponse_storageLocation :: Lens.Lens' DescribePackageResponse StorageLocation
describePackageResponse_storageLocation :: Lens' DescribePackageResponse StorageLocation
describePackageResponse_storageLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {StorageLocation
storageLocation :: StorageLocation
$sel:storageLocation:DescribePackageResponse' :: DescribePackageResponse -> StorageLocation
storageLocation} -> StorageLocation
storageLocation) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} StorageLocation
a -> DescribePackageResponse
s {$sel:storageLocation:DescribePackageResponse' :: StorageLocation
storageLocation = StorageLocation
a} :: DescribePackageResponse)

-- | The package\'s tags.
describePackageResponse_tags :: Lens.Lens' DescribePackageResponse (Prelude.HashMap Prelude.Text Prelude.Text)
describePackageResponse_tags :: Lens' DescribePackageResponse (HashMap Text Text)
describePackageResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePackageResponse' {HashMap Text Text
tags :: HashMap Text Text
$sel:tags:DescribePackageResponse' :: DescribePackageResponse -> HashMap Text Text
tags} -> HashMap Text Text
tags) (\s :: DescribePackageResponse
s@DescribePackageResponse' {} HashMap Text Text
a -> DescribePackageResponse
s {$sel:tags:DescribePackageResponse' :: HashMap Text Text
tags = HashMap Text Text
a} :: DescribePackageResponse) 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 DescribePackageResponse where
  rnf :: DescribePackageResponse -> ()
rnf DescribePackageResponse' {Int
Maybe [Text]
Text
HashMap Text Text
POSIX
StorageLocation
tags :: HashMap Text Text
storageLocation :: StorageLocation
packageName :: Text
packageId :: Text
createdTime :: POSIX
arn :: Text
httpStatus :: Int
writeAccessPrincipalArns :: Maybe [Text]
readAccessPrincipalArns :: Maybe [Text]
$sel:tags:DescribePackageResponse' :: DescribePackageResponse -> HashMap Text Text
$sel:storageLocation:DescribePackageResponse' :: DescribePackageResponse -> StorageLocation
$sel:packageName:DescribePackageResponse' :: DescribePackageResponse -> Text
$sel:packageId:DescribePackageResponse' :: DescribePackageResponse -> Text
$sel:createdTime:DescribePackageResponse' :: DescribePackageResponse -> POSIX
$sel:arn:DescribePackageResponse' :: DescribePackageResponse -> Text
$sel:httpStatus:DescribePackageResponse' :: DescribePackageResponse -> Int
$sel:writeAccessPrincipalArns:DescribePackageResponse' :: DescribePackageResponse -> Maybe [Text]
$sel:readAccessPrincipalArns:DescribePackageResponse' :: DescribePackageResponse -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
readAccessPrincipalArns
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
writeAccessPrincipalArns
      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 Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
createdTime
      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 StorageLocation
storageLocation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf HashMap Text Text
tags