{-# 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.ServiceCatalog.DescribeProvisioningArtifact
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about the specified provisioning artifact (also known
-- as a version) for the specified product.
module Amazonka.ServiceCatalog.DescribeProvisioningArtifact
  ( -- * Creating a Request
    DescribeProvisioningArtifact (..),
    newDescribeProvisioningArtifact,

    -- * Request Lenses
    describeProvisioningArtifact_acceptLanguage,
    describeProvisioningArtifact_productId,
    describeProvisioningArtifact_productName,
    describeProvisioningArtifact_provisioningArtifactId,
    describeProvisioningArtifact_provisioningArtifactName,
    describeProvisioningArtifact_verbose,

    -- * Destructuring the Response
    DescribeProvisioningArtifactResponse (..),
    newDescribeProvisioningArtifactResponse,

    -- * Response Lenses
    describeProvisioningArtifactResponse_info,
    describeProvisioningArtifactResponse_provisioningArtifactDetail,
    describeProvisioningArtifactResponse_status,
    describeProvisioningArtifactResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeProvisioningArtifact' smart constructor.
data DescribeProvisioningArtifact = DescribeProvisioningArtifact'
  { -- | The language code.
    --
    -- -   @en@ - English (default)
    --
    -- -   @jp@ - Japanese
    --
    -- -   @zh@ - Chinese
    DescribeProvisioningArtifact -> Maybe Text
acceptLanguage :: Prelude.Maybe Prelude.Text,
    -- | The product identifier.
    DescribeProvisioningArtifact -> Maybe Text
productId :: Prelude.Maybe Prelude.Text,
    -- | The product name.
    DescribeProvisioningArtifact -> Maybe Text
productName :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the provisioning artifact.
    DescribeProvisioningArtifact -> Maybe Text
provisioningArtifactId :: Prelude.Maybe Prelude.Text,
    -- | The provisioning artifact name.
    DescribeProvisioningArtifact -> Maybe Text
provisioningArtifactName :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether a verbose level of detail is enabled.
    DescribeProvisioningArtifact -> Maybe Bool
verbose :: Prelude.Maybe Prelude.Bool
  }
  deriving (DescribeProvisioningArtifact
-> DescribeProvisioningArtifact -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningArtifact
-> DescribeProvisioningArtifact -> Bool
$c/= :: DescribeProvisioningArtifact
-> DescribeProvisioningArtifact -> Bool
== :: DescribeProvisioningArtifact
-> DescribeProvisioningArtifact -> Bool
$c== :: DescribeProvisioningArtifact
-> DescribeProvisioningArtifact -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningArtifact]
ReadPrec DescribeProvisioningArtifact
Int -> ReadS DescribeProvisioningArtifact
ReadS [DescribeProvisioningArtifact]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningArtifact]
$creadListPrec :: ReadPrec [DescribeProvisioningArtifact]
readPrec :: ReadPrec DescribeProvisioningArtifact
$creadPrec :: ReadPrec DescribeProvisioningArtifact
readList :: ReadS [DescribeProvisioningArtifact]
$creadList :: ReadS [DescribeProvisioningArtifact]
readsPrec :: Int -> ReadS DescribeProvisioningArtifact
$creadsPrec :: Int -> ReadS DescribeProvisioningArtifact
Prelude.Read, Int -> DescribeProvisioningArtifact -> ShowS
[DescribeProvisioningArtifact] -> ShowS
DescribeProvisioningArtifact -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningArtifact] -> ShowS
$cshowList :: [DescribeProvisioningArtifact] -> ShowS
show :: DescribeProvisioningArtifact -> String
$cshow :: DescribeProvisioningArtifact -> String
showsPrec :: Int -> DescribeProvisioningArtifact -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningArtifact -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningArtifact x -> DescribeProvisioningArtifact
forall x.
DescribeProvisioningArtifact -> Rep DescribeProvisioningArtifact x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningArtifact x -> DescribeProvisioningArtifact
$cfrom :: forall x.
DescribeProvisioningArtifact -> Rep DescribeProvisioningArtifact x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningArtifact' 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:
--
-- 'acceptLanguage', 'describeProvisioningArtifact_acceptLanguage' - The language code.
--
-- -   @en@ - English (default)
--
-- -   @jp@ - Japanese
--
-- -   @zh@ - Chinese
--
-- 'productId', 'describeProvisioningArtifact_productId' - The product identifier.
--
-- 'productName', 'describeProvisioningArtifact_productName' - The product name.
--
-- 'provisioningArtifactId', 'describeProvisioningArtifact_provisioningArtifactId' - The identifier of the provisioning artifact.
--
-- 'provisioningArtifactName', 'describeProvisioningArtifact_provisioningArtifactName' - The provisioning artifact name.
--
-- 'verbose', 'describeProvisioningArtifact_verbose' - Indicates whether a verbose level of detail is enabled.
newDescribeProvisioningArtifact ::
  DescribeProvisioningArtifact
newDescribeProvisioningArtifact :: DescribeProvisioningArtifact
newDescribeProvisioningArtifact =
  DescribeProvisioningArtifact'
    { $sel:acceptLanguage:DescribeProvisioningArtifact' :: Maybe Text
acceptLanguage =
        forall a. Maybe a
Prelude.Nothing,
      $sel:productId:DescribeProvisioningArtifact' :: Maybe Text
productId = forall a. Maybe a
Prelude.Nothing,
      $sel:productName:DescribeProvisioningArtifact' :: Maybe Text
productName = forall a. Maybe a
Prelude.Nothing,
      $sel:provisioningArtifactId:DescribeProvisioningArtifact' :: Maybe Text
provisioningArtifactId = forall a. Maybe a
Prelude.Nothing,
      $sel:provisioningArtifactName:DescribeProvisioningArtifact' :: Maybe Text
provisioningArtifactName = forall a. Maybe a
Prelude.Nothing,
      $sel:verbose:DescribeProvisioningArtifact' :: Maybe Bool
verbose = forall a. Maybe a
Prelude.Nothing
    }

-- | The language code.
--
-- -   @en@ - English (default)
--
-- -   @jp@ - Japanese
--
-- -   @zh@ - Chinese
describeProvisioningArtifact_acceptLanguage :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Text)
describeProvisioningArtifact_acceptLanguage :: Lens' DescribeProvisioningArtifact (Maybe Text)
describeProvisioningArtifact_acceptLanguage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Text
acceptLanguage :: Maybe Text
$sel:acceptLanguage:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
acceptLanguage} -> Maybe Text
acceptLanguage) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Text
a -> DescribeProvisioningArtifact
s {$sel:acceptLanguage:DescribeProvisioningArtifact' :: Maybe Text
acceptLanguage = Maybe Text
a} :: DescribeProvisioningArtifact)

-- | The product identifier.
describeProvisioningArtifact_productId :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Text)
describeProvisioningArtifact_productId :: Lens' DescribeProvisioningArtifact (Maybe Text)
describeProvisioningArtifact_productId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Text
productId :: Maybe Text
$sel:productId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
productId} -> Maybe Text
productId) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Text
a -> DescribeProvisioningArtifact
s {$sel:productId:DescribeProvisioningArtifact' :: Maybe Text
productId = Maybe Text
a} :: DescribeProvisioningArtifact)

-- | The product name.
describeProvisioningArtifact_productName :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Text)
describeProvisioningArtifact_productName :: Lens' DescribeProvisioningArtifact (Maybe Text)
describeProvisioningArtifact_productName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Text
productName :: Maybe Text
$sel:productName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
productName} -> Maybe Text
productName) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Text
a -> DescribeProvisioningArtifact
s {$sel:productName:DescribeProvisioningArtifact' :: Maybe Text
productName = Maybe Text
a} :: DescribeProvisioningArtifact)

-- | The identifier of the provisioning artifact.
describeProvisioningArtifact_provisioningArtifactId :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Text)
describeProvisioningArtifact_provisioningArtifactId :: Lens' DescribeProvisioningArtifact (Maybe Text)
describeProvisioningArtifact_provisioningArtifactId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Text
provisioningArtifactId :: Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
provisioningArtifactId} -> Maybe Text
provisioningArtifactId) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Text
a -> DescribeProvisioningArtifact
s {$sel:provisioningArtifactId:DescribeProvisioningArtifact' :: Maybe Text
provisioningArtifactId = Maybe Text
a} :: DescribeProvisioningArtifact)

-- | The provisioning artifact name.
describeProvisioningArtifact_provisioningArtifactName :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Text)
describeProvisioningArtifact_provisioningArtifactName :: Lens' DescribeProvisioningArtifact (Maybe Text)
describeProvisioningArtifact_provisioningArtifactName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Text
provisioningArtifactName :: Maybe Text
$sel:provisioningArtifactName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
provisioningArtifactName} -> Maybe Text
provisioningArtifactName) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Text
a -> DescribeProvisioningArtifact
s {$sel:provisioningArtifactName:DescribeProvisioningArtifact' :: Maybe Text
provisioningArtifactName = Maybe Text
a} :: DescribeProvisioningArtifact)

-- | Indicates whether a verbose level of detail is enabled.
describeProvisioningArtifact_verbose :: Lens.Lens' DescribeProvisioningArtifact (Prelude.Maybe Prelude.Bool)
describeProvisioningArtifact_verbose :: Lens' DescribeProvisioningArtifact (Maybe Bool)
describeProvisioningArtifact_verbose = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifact' {Maybe Bool
verbose :: Maybe Bool
$sel:verbose:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Bool
verbose} -> Maybe Bool
verbose) (\s :: DescribeProvisioningArtifact
s@DescribeProvisioningArtifact' {} Maybe Bool
a -> DescribeProvisioningArtifact
s {$sel:verbose:DescribeProvisioningArtifact' :: Maybe Bool
verbose = Maybe Bool
a} :: DescribeProvisioningArtifact)

instance Core.AWSRequest DescribeProvisioningArtifact where
  type
    AWSResponse DescribeProvisioningArtifact =
      DescribeProvisioningArtifactResponse
  request :: (Service -> Service)
-> DescribeProvisioningArtifact
-> Request DescribeProvisioningArtifact
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 DescribeProvisioningArtifact
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeProvisioningArtifact)))
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 (HashMap Text Text)
-> Maybe ProvisioningArtifactDetail
-> Maybe RequestStatus
-> Int
-> DescribeProvisioningArtifactResponse
DescribeProvisioningArtifactResponse'
            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
"Info" 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
"ProvisioningArtifactDetail")
            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
"Status")
            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
    DescribeProvisioningArtifact
  where
  hashWithSalt :: Int -> DescribeProvisioningArtifact -> Int
hashWithSalt Int
_salt DescribeProvisioningArtifact' {Maybe Bool
Maybe Text
verbose :: Maybe Bool
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:verbose:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Bool
$sel:provisioningArtifactName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
acceptLanguage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
productId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
productName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
provisioningArtifactId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
provisioningArtifactName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
verbose

instance Prelude.NFData DescribeProvisioningArtifact where
  rnf :: DescribeProvisioningArtifact -> ()
rnf DescribeProvisioningArtifact' {Maybe Bool
Maybe Text
verbose :: Maybe Bool
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:verbose:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Bool
$sel:provisioningArtifactName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
acceptLanguage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
productId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
productName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
provisioningArtifactId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
provisioningArtifactName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
verbose

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

instance Data.ToJSON DescribeProvisioningArtifact where
  toJSON :: DescribeProvisioningArtifact -> Value
toJSON DescribeProvisioningArtifact' {Maybe Bool
Maybe Text
verbose :: Maybe Bool
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:verbose:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Bool
$sel:provisioningArtifactName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productName:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:productId:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningArtifact' :: DescribeProvisioningArtifact -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AcceptLanguage" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
acceptLanguage,
            (Key
"ProductId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
productId,
            (Key
"ProductName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
productName,
            (Key
"ProvisioningArtifactId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
provisioningArtifactId,
            (Key
"ProvisioningArtifactName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
provisioningArtifactName,
            (Key
"Verbose" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
verbose
          ]
      )

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

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

-- | /See:/ 'newDescribeProvisioningArtifactResponse' smart constructor.
data DescribeProvisioningArtifactResponse = DescribeProvisioningArtifactResponse'
  { -- | The URL of the CloudFormation template in Amazon S3 or GitHub in JSON
    -- format.
    DescribeProvisioningArtifactResponse -> Maybe (HashMap Text Text)
info :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Information about the provisioning artifact.
    DescribeProvisioningArtifactResponse
-> Maybe ProvisioningArtifactDetail
provisioningArtifactDetail :: Prelude.Maybe ProvisioningArtifactDetail,
    -- | The status of the current request.
    DescribeProvisioningArtifactResponse -> Maybe RequestStatus
status :: Prelude.Maybe RequestStatus,
    -- | The response's http status code.
    DescribeProvisioningArtifactResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeProvisioningArtifactResponse
-> DescribeProvisioningArtifactResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningArtifactResponse
-> DescribeProvisioningArtifactResponse -> Bool
$c/= :: DescribeProvisioningArtifactResponse
-> DescribeProvisioningArtifactResponse -> Bool
== :: DescribeProvisioningArtifactResponse
-> DescribeProvisioningArtifactResponse -> Bool
$c== :: DescribeProvisioningArtifactResponse
-> DescribeProvisioningArtifactResponse -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningArtifactResponse]
ReadPrec DescribeProvisioningArtifactResponse
Int -> ReadS DescribeProvisioningArtifactResponse
ReadS [DescribeProvisioningArtifactResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningArtifactResponse]
$creadListPrec :: ReadPrec [DescribeProvisioningArtifactResponse]
readPrec :: ReadPrec DescribeProvisioningArtifactResponse
$creadPrec :: ReadPrec DescribeProvisioningArtifactResponse
readList :: ReadS [DescribeProvisioningArtifactResponse]
$creadList :: ReadS [DescribeProvisioningArtifactResponse]
readsPrec :: Int -> ReadS DescribeProvisioningArtifactResponse
$creadsPrec :: Int -> ReadS DescribeProvisioningArtifactResponse
Prelude.Read, Int -> DescribeProvisioningArtifactResponse -> ShowS
[DescribeProvisioningArtifactResponse] -> ShowS
DescribeProvisioningArtifactResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningArtifactResponse] -> ShowS
$cshowList :: [DescribeProvisioningArtifactResponse] -> ShowS
show :: DescribeProvisioningArtifactResponse -> String
$cshow :: DescribeProvisioningArtifactResponse -> String
showsPrec :: Int -> DescribeProvisioningArtifactResponse -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningArtifactResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningArtifactResponse x
-> DescribeProvisioningArtifactResponse
forall x.
DescribeProvisioningArtifactResponse
-> Rep DescribeProvisioningArtifactResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningArtifactResponse x
-> DescribeProvisioningArtifactResponse
$cfrom :: forall x.
DescribeProvisioningArtifactResponse
-> Rep DescribeProvisioningArtifactResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningArtifactResponse' 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:
--
-- 'info', 'describeProvisioningArtifactResponse_info' - The URL of the CloudFormation template in Amazon S3 or GitHub in JSON
-- format.
--
-- 'provisioningArtifactDetail', 'describeProvisioningArtifactResponse_provisioningArtifactDetail' - Information about the provisioning artifact.
--
-- 'status', 'describeProvisioningArtifactResponse_status' - The status of the current request.
--
-- 'httpStatus', 'describeProvisioningArtifactResponse_httpStatus' - The response's http status code.
newDescribeProvisioningArtifactResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeProvisioningArtifactResponse
newDescribeProvisioningArtifactResponse :: Int -> DescribeProvisioningArtifactResponse
newDescribeProvisioningArtifactResponse Int
pHttpStatus_ =
  DescribeProvisioningArtifactResponse'
    { $sel:info:DescribeProvisioningArtifactResponse' :: Maybe (HashMap Text Text)
info =
        forall a. Maybe a
Prelude.Nothing,
      $sel:provisioningArtifactDetail:DescribeProvisioningArtifactResponse' :: Maybe ProvisioningArtifactDetail
provisioningArtifactDetail =
        forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeProvisioningArtifactResponse' :: Maybe RequestStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeProvisioningArtifactResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The URL of the CloudFormation template in Amazon S3 or GitHub in JSON
-- format.
describeProvisioningArtifactResponse_info :: Lens.Lens' DescribeProvisioningArtifactResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeProvisioningArtifactResponse_info :: Lens'
  DescribeProvisioningArtifactResponse (Maybe (HashMap Text Text))
describeProvisioningArtifactResponse_info = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifactResponse' {Maybe (HashMap Text Text)
info :: Maybe (HashMap Text Text)
$sel:info:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse -> Maybe (HashMap Text Text)
info} -> Maybe (HashMap Text Text)
info) (\s :: DescribeProvisioningArtifactResponse
s@DescribeProvisioningArtifactResponse' {} Maybe (HashMap Text Text)
a -> DescribeProvisioningArtifactResponse
s {$sel:info:DescribeProvisioningArtifactResponse' :: Maybe (HashMap Text Text)
info = Maybe (HashMap Text Text)
a} :: DescribeProvisioningArtifactResponse) 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

-- | Information about the provisioning artifact.
describeProvisioningArtifactResponse_provisioningArtifactDetail :: Lens.Lens' DescribeProvisioningArtifactResponse (Prelude.Maybe ProvisioningArtifactDetail)
describeProvisioningArtifactResponse_provisioningArtifactDetail :: Lens'
  DescribeProvisioningArtifactResponse
  (Maybe ProvisioningArtifactDetail)
describeProvisioningArtifactResponse_provisioningArtifactDetail = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifactResponse' {Maybe ProvisioningArtifactDetail
provisioningArtifactDetail :: Maybe ProvisioningArtifactDetail
$sel:provisioningArtifactDetail:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse
-> Maybe ProvisioningArtifactDetail
provisioningArtifactDetail} -> Maybe ProvisioningArtifactDetail
provisioningArtifactDetail) (\s :: DescribeProvisioningArtifactResponse
s@DescribeProvisioningArtifactResponse' {} Maybe ProvisioningArtifactDetail
a -> DescribeProvisioningArtifactResponse
s {$sel:provisioningArtifactDetail:DescribeProvisioningArtifactResponse' :: Maybe ProvisioningArtifactDetail
provisioningArtifactDetail = Maybe ProvisioningArtifactDetail
a} :: DescribeProvisioningArtifactResponse)

-- | The status of the current request.
describeProvisioningArtifactResponse_status :: Lens.Lens' DescribeProvisioningArtifactResponse (Prelude.Maybe RequestStatus)
describeProvisioningArtifactResponse_status :: Lens' DescribeProvisioningArtifactResponse (Maybe RequestStatus)
describeProvisioningArtifactResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningArtifactResponse' {Maybe RequestStatus
status :: Maybe RequestStatus
$sel:status:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse -> Maybe RequestStatus
status} -> Maybe RequestStatus
status) (\s :: DescribeProvisioningArtifactResponse
s@DescribeProvisioningArtifactResponse' {} Maybe RequestStatus
a -> DescribeProvisioningArtifactResponse
s {$sel:status:DescribeProvisioningArtifactResponse' :: Maybe RequestStatus
status = Maybe RequestStatus
a} :: DescribeProvisioningArtifactResponse)

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

instance
  Prelude.NFData
    DescribeProvisioningArtifactResponse
  where
  rnf :: DescribeProvisioningArtifactResponse -> ()
rnf DescribeProvisioningArtifactResponse' {Int
Maybe (HashMap Text Text)
Maybe ProvisioningArtifactDetail
Maybe RequestStatus
httpStatus :: Int
status :: Maybe RequestStatus
provisioningArtifactDetail :: Maybe ProvisioningArtifactDetail
info :: Maybe (HashMap Text Text)
$sel:httpStatus:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse -> Int
$sel:status:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse -> Maybe RequestStatus
$sel:provisioningArtifactDetail:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse
-> Maybe ProvisioningArtifactDetail
$sel:info:DescribeProvisioningArtifactResponse' :: DescribeProvisioningArtifactResponse -> Maybe (HashMap Text Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
info
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProvisioningArtifactDetail
provisioningArtifactDetail
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RequestStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus