{-# 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.MediaPackageVOD.DescribeAsset
-- 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 description of a MediaPackage VOD Asset resource.
module Amazonka.MediaPackageVOD.DescribeAsset
  ( -- * Creating a Request
    DescribeAsset (..),
    newDescribeAsset,

    -- * Request Lenses
    describeAsset_id,

    -- * Destructuring the Response
    DescribeAssetResponse (..),
    newDescribeAssetResponse,

    -- * Response Lenses
    describeAssetResponse_arn,
    describeAssetResponse_createdAt,
    describeAssetResponse_egressEndpoints,
    describeAssetResponse_id,
    describeAssetResponse_packagingGroupId,
    describeAssetResponse_resourceId,
    describeAssetResponse_sourceArn,
    describeAssetResponse_sourceRoleArn,
    describeAssetResponse_tags,
    describeAssetResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeAsset' smart constructor.
data DescribeAsset = DescribeAsset'
  { -- | The ID of an MediaPackage VOD Asset resource.
    DescribeAsset -> Text
id :: Prelude.Text
  }
  deriving (DescribeAsset -> DescribeAsset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAsset -> DescribeAsset -> Bool
$c/= :: DescribeAsset -> DescribeAsset -> Bool
== :: DescribeAsset -> DescribeAsset -> Bool
$c== :: DescribeAsset -> DescribeAsset -> Bool
Prelude.Eq, ReadPrec [DescribeAsset]
ReadPrec DescribeAsset
Int -> ReadS DescribeAsset
ReadS [DescribeAsset]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAsset]
$creadListPrec :: ReadPrec [DescribeAsset]
readPrec :: ReadPrec DescribeAsset
$creadPrec :: ReadPrec DescribeAsset
readList :: ReadS [DescribeAsset]
$creadList :: ReadS [DescribeAsset]
readsPrec :: Int -> ReadS DescribeAsset
$creadsPrec :: Int -> ReadS DescribeAsset
Prelude.Read, Int -> DescribeAsset -> ShowS
[DescribeAsset] -> ShowS
DescribeAsset -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAsset] -> ShowS
$cshowList :: [DescribeAsset] -> ShowS
show :: DescribeAsset -> String
$cshow :: DescribeAsset -> String
showsPrec :: Int -> DescribeAsset -> ShowS
$cshowsPrec :: Int -> DescribeAsset -> ShowS
Prelude.Show, forall x. Rep DescribeAsset x -> DescribeAsset
forall x. DescribeAsset -> Rep DescribeAsset x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeAsset x -> DescribeAsset
$cfrom :: forall x. DescribeAsset -> Rep DescribeAsset x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAsset' 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:
--
-- 'id', 'describeAsset_id' - The ID of an MediaPackage VOD Asset resource.
newDescribeAsset ::
  -- | 'id'
  Prelude.Text ->
  DescribeAsset
newDescribeAsset :: Text -> DescribeAsset
newDescribeAsset Text
pId_ = DescribeAsset' {$sel:id:DescribeAsset' :: Text
id = Text
pId_}

-- | The ID of an MediaPackage VOD Asset resource.
describeAsset_id :: Lens.Lens' DescribeAsset Prelude.Text
describeAsset_id :: Lens' DescribeAsset Text
describeAsset_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAsset' {Text
id :: Text
$sel:id:DescribeAsset' :: DescribeAsset -> Text
id} -> Text
id) (\s :: DescribeAsset
s@DescribeAsset' {} Text
a -> DescribeAsset
s {$sel:id:DescribeAsset' :: Text
id = Text
a} :: DescribeAsset)

instance Core.AWSRequest DescribeAsset where
  type
    AWSResponse DescribeAsset =
      DescribeAssetResponse
  request :: (Service -> Service) -> DescribeAsset -> Request DescribeAsset
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 DescribeAsset
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeAsset)))
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 [EgressEndpoint]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> DescribeAssetResponse
DescribeAssetResponse'
            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
"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 (Maybe a)
Data..?> Key
"createdAt")
            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
"egressEndpoints"
                            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
"id")
            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
"packagingGroupId")
            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
"resourceId")
            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
"sourceArn")
            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
"sourceRoleArn")
            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)
            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 DescribeAsset where
  hashWithSalt :: Int -> DescribeAsset -> Int
hashWithSalt Int
_salt DescribeAsset' {Text
id :: Text
$sel:id:DescribeAsset' :: DescribeAsset -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id

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

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

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

-- | /See:/ 'newDescribeAssetResponse' smart constructor.
data DescribeAssetResponse = DescribeAssetResponse'
  { -- | The ARN of the Asset.
    DescribeAssetResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The time the Asset was initially submitted for Ingest.
    DescribeAssetResponse -> Maybe Text
createdAt :: Prelude.Maybe Prelude.Text,
    -- | The list of egress endpoints available for the Asset.
    DescribeAssetResponse -> Maybe [EgressEndpoint]
egressEndpoints :: Prelude.Maybe [EgressEndpoint],
    -- | The unique identifier for the Asset.
    DescribeAssetResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The ID of the PackagingGroup for the Asset.
    DescribeAssetResponse -> Maybe Text
packagingGroupId :: Prelude.Maybe Prelude.Text,
    -- | The resource ID to include in SPEKE key requests.
    DescribeAssetResponse -> Maybe Text
resourceId :: Prelude.Maybe Prelude.Text,
    -- | ARN of the source object in S3.
    DescribeAssetResponse -> Maybe Text
sourceArn :: Prelude.Maybe Prelude.Text,
    -- | The IAM role_arn used to access the source S3 bucket.
    DescribeAssetResponse -> Maybe Text
sourceRoleArn :: Prelude.Maybe Prelude.Text,
    DescribeAssetResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeAssetResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeAssetResponse -> DescribeAssetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAssetResponse -> DescribeAssetResponse -> Bool
$c/= :: DescribeAssetResponse -> DescribeAssetResponse -> Bool
== :: DescribeAssetResponse -> DescribeAssetResponse -> Bool
$c== :: DescribeAssetResponse -> DescribeAssetResponse -> Bool
Prelude.Eq, ReadPrec [DescribeAssetResponse]
ReadPrec DescribeAssetResponse
Int -> ReadS DescribeAssetResponse
ReadS [DescribeAssetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAssetResponse]
$creadListPrec :: ReadPrec [DescribeAssetResponse]
readPrec :: ReadPrec DescribeAssetResponse
$creadPrec :: ReadPrec DescribeAssetResponse
readList :: ReadS [DescribeAssetResponse]
$creadList :: ReadS [DescribeAssetResponse]
readsPrec :: Int -> ReadS DescribeAssetResponse
$creadsPrec :: Int -> ReadS DescribeAssetResponse
Prelude.Read, Int -> DescribeAssetResponse -> ShowS
[DescribeAssetResponse] -> ShowS
DescribeAssetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAssetResponse] -> ShowS
$cshowList :: [DescribeAssetResponse] -> ShowS
show :: DescribeAssetResponse -> String
$cshow :: DescribeAssetResponse -> String
showsPrec :: Int -> DescribeAssetResponse -> ShowS
$cshowsPrec :: Int -> DescribeAssetResponse -> ShowS
Prelude.Show, forall x. Rep DescribeAssetResponse x -> DescribeAssetResponse
forall x. DescribeAssetResponse -> Rep DescribeAssetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeAssetResponse x -> DescribeAssetResponse
$cfrom :: forall x. DescribeAssetResponse -> Rep DescribeAssetResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAssetResponse' 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:
--
-- 'arn', 'describeAssetResponse_arn' - The ARN of the Asset.
--
-- 'createdAt', 'describeAssetResponse_createdAt' - The time the Asset was initially submitted for Ingest.
--
-- 'egressEndpoints', 'describeAssetResponse_egressEndpoints' - The list of egress endpoints available for the Asset.
--
-- 'id', 'describeAssetResponse_id' - The unique identifier for the Asset.
--
-- 'packagingGroupId', 'describeAssetResponse_packagingGroupId' - The ID of the PackagingGroup for the Asset.
--
-- 'resourceId', 'describeAssetResponse_resourceId' - The resource ID to include in SPEKE key requests.
--
-- 'sourceArn', 'describeAssetResponse_sourceArn' - ARN of the source object in S3.
--
-- 'sourceRoleArn', 'describeAssetResponse_sourceRoleArn' - The IAM role_arn used to access the source S3 bucket.
--
-- 'tags', 'describeAssetResponse_tags' - Undocumented member.
--
-- 'httpStatus', 'describeAssetResponse_httpStatus' - The response's http status code.
newDescribeAssetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeAssetResponse
newDescribeAssetResponse :: Int -> DescribeAssetResponse
newDescribeAssetResponse Int
pHttpStatus_ =
  DescribeAssetResponse'
    { $sel:arn:DescribeAssetResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeAssetResponse' :: Maybe Text
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:egressEndpoints:DescribeAssetResponse' :: Maybe [EgressEndpoint]
egressEndpoints = forall a. Maybe a
Prelude.Nothing,
      $sel:id:DescribeAssetResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:packagingGroupId:DescribeAssetResponse' :: Maybe Text
packagingGroupId = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceId:DescribeAssetResponse' :: Maybe Text
resourceId = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceArn:DescribeAssetResponse' :: Maybe Text
sourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:sourceRoleArn:DescribeAssetResponse' :: Maybe Text
sourceRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeAssetResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeAssetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the Asset.
describeAssetResponse_arn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_arn :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:arn:DescribeAssetResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeAssetResponse)

-- | The time the Asset was initially submitted for Ingest.
describeAssetResponse_createdAt :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_createdAt :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
createdAt :: Maybe Text
$sel:createdAt:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
createdAt} -> Maybe Text
createdAt) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:createdAt:DescribeAssetResponse' :: Maybe Text
createdAt = Maybe Text
a} :: DescribeAssetResponse)

-- | The list of egress endpoints available for the Asset.
describeAssetResponse_egressEndpoints :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe [EgressEndpoint])
describeAssetResponse_egressEndpoints :: Lens' DescribeAssetResponse (Maybe [EgressEndpoint])
describeAssetResponse_egressEndpoints = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe [EgressEndpoint]
egressEndpoints :: Maybe [EgressEndpoint]
$sel:egressEndpoints:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe [EgressEndpoint]
egressEndpoints} -> Maybe [EgressEndpoint]
egressEndpoints) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe [EgressEndpoint]
a -> DescribeAssetResponse
s {$sel:egressEndpoints:DescribeAssetResponse' :: Maybe [EgressEndpoint]
egressEndpoints = Maybe [EgressEndpoint]
a} :: DescribeAssetResponse) 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 unique identifier for the Asset.
describeAssetResponse_id :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_id :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
id :: Maybe Text
$sel:id:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:id:DescribeAssetResponse' :: Maybe Text
id = Maybe Text
a} :: DescribeAssetResponse)

-- | The ID of the PackagingGroup for the Asset.
describeAssetResponse_packagingGroupId :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_packagingGroupId :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_packagingGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
packagingGroupId :: Maybe Text
$sel:packagingGroupId:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
packagingGroupId} -> Maybe Text
packagingGroupId) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:packagingGroupId:DescribeAssetResponse' :: Maybe Text
packagingGroupId = Maybe Text
a} :: DescribeAssetResponse)

-- | The resource ID to include in SPEKE key requests.
describeAssetResponse_resourceId :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_resourceId :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
resourceId :: Maybe Text
$sel:resourceId:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
resourceId} -> Maybe Text
resourceId) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:resourceId:DescribeAssetResponse' :: Maybe Text
resourceId = Maybe Text
a} :: DescribeAssetResponse)

-- | ARN of the source object in S3.
describeAssetResponse_sourceArn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_sourceArn :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_sourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
sourceArn :: Maybe Text
$sel:sourceArn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
sourceArn} -> Maybe Text
sourceArn) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:sourceArn:DescribeAssetResponse' :: Maybe Text
sourceArn = Maybe Text
a} :: DescribeAssetResponse)

-- | The IAM role_arn used to access the source S3 bucket.
describeAssetResponse_sourceRoleArn :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe Prelude.Text)
describeAssetResponse_sourceRoleArn :: Lens' DescribeAssetResponse (Maybe Text)
describeAssetResponse_sourceRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe Text
sourceRoleArn :: Maybe Text
$sel:sourceRoleArn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
sourceRoleArn} -> Maybe Text
sourceRoleArn) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe Text
a -> DescribeAssetResponse
s {$sel:sourceRoleArn:DescribeAssetResponse' :: Maybe Text
sourceRoleArn = Maybe Text
a} :: DescribeAssetResponse)

-- | Undocumented member.
describeAssetResponse_tags :: Lens.Lens' DescribeAssetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeAssetResponse_tags :: Lens' DescribeAssetResponse (Maybe (HashMap Text Text))
describeAssetResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Maybe (HashMap Text Text)
a -> DescribeAssetResponse
s {$sel:tags:DescribeAssetResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeAssetResponse) 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.
describeAssetResponse_httpStatus :: Lens.Lens' DescribeAssetResponse Prelude.Int
describeAssetResponse_httpStatus :: Lens' DescribeAssetResponse Int
describeAssetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAssetResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeAssetResponse' :: DescribeAssetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeAssetResponse
s@DescribeAssetResponse' {} Int
a -> DescribeAssetResponse
s {$sel:httpStatus:DescribeAssetResponse' :: Int
httpStatus = Int
a} :: DescribeAssetResponse)

instance Prelude.NFData DescribeAssetResponse where
  rnf :: DescribeAssetResponse -> ()
rnf DescribeAssetResponse' {Int
Maybe [EgressEndpoint]
Maybe Text
Maybe (HashMap Text Text)
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
sourceRoleArn :: Maybe Text
sourceArn :: Maybe Text
resourceId :: Maybe Text
packagingGroupId :: Maybe Text
id :: Maybe Text
egressEndpoints :: Maybe [EgressEndpoint]
createdAt :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:DescribeAssetResponse' :: DescribeAssetResponse -> Int
$sel:tags:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe (HashMap Text Text)
$sel:sourceRoleArn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:sourceArn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:resourceId:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:packagingGroupId:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:id:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:egressEndpoints:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe [EgressEndpoint]
$sel:createdAt:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
$sel:arn:DescribeAssetResponse' :: DescribeAssetResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [EgressEndpoint]
egressEndpoints
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
packagingGroupId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
sourceRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus