{-# 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.DescribeProvisioningParameters
-- 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 configuration required to provision the
-- specified product using the specified provisioning artifact.
--
-- If the output contains a TagOption key with an empty list of values,
-- there is a TagOption conflict for that key. The end user cannot take
-- action to fix the conflict, and launch is not blocked. In subsequent
-- calls to ProvisionProduct, do not include conflicted TagOption keys as
-- tags, or this causes the error \"Parameter validation failed: Missing
-- required parameter in Tags[/N/]:/Value/\". Tag the provisioned product
-- with the value @sc-tagoption-conflict-portfolioId-productId@.
module Amazonka.ServiceCatalog.DescribeProvisioningParameters
  ( -- * Creating a Request
    DescribeProvisioningParameters (..),
    newDescribeProvisioningParameters,

    -- * Request Lenses
    describeProvisioningParameters_acceptLanguage,
    describeProvisioningParameters_pathId,
    describeProvisioningParameters_pathName,
    describeProvisioningParameters_productId,
    describeProvisioningParameters_productName,
    describeProvisioningParameters_provisioningArtifactId,
    describeProvisioningParameters_provisioningArtifactName,

    -- * Destructuring the Response
    DescribeProvisioningParametersResponse (..),
    newDescribeProvisioningParametersResponse,

    -- * Response Lenses
    describeProvisioningParametersResponse_constraintSummaries,
    describeProvisioningParametersResponse_provisioningArtifactOutputKeys,
    describeProvisioningParametersResponse_provisioningArtifactOutputs,
    describeProvisioningParametersResponse_provisioningArtifactParameters,
    describeProvisioningParametersResponse_provisioningArtifactPreferences,
    describeProvisioningParametersResponse_tagOptions,
    describeProvisioningParametersResponse_usageInstructions,
    describeProvisioningParametersResponse_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:/ 'newDescribeProvisioningParameters' smart constructor.
data DescribeProvisioningParameters = DescribeProvisioningParameters'
  { -- | The language code.
    --
    -- -   @en@ - English (default)
    --
    -- -   @jp@ - Japanese
    --
    -- -   @zh@ - Chinese
    DescribeProvisioningParameters -> Maybe Text
acceptLanguage :: Prelude.Maybe Prelude.Text,
    -- | The path identifier of the product. This value is optional if the
    -- product has a default path, and required if the product has more than
    -- one path. To list the paths for a product, use ListLaunchPaths. You must
    -- provide the name or ID, but not both.
    DescribeProvisioningParameters -> Maybe Text
pathId :: Prelude.Maybe Prelude.Text,
    -- | The name of the path. You must provide the name or ID, but not both.
    DescribeProvisioningParameters -> Maybe Text
pathName :: Prelude.Maybe Prelude.Text,
    -- | The product identifier. You must provide the product name or ID, but not
    -- both.
    DescribeProvisioningParameters -> Maybe Text
productId :: Prelude.Maybe Prelude.Text,
    -- | The name of the product. You must provide the name or ID, but not both.
    DescribeProvisioningParameters -> Maybe Text
productName :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the provisioning artifact. You must provide the name
    -- or ID, but not both.
    DescribeProvisioningParameters -> Maybe Text
provisioningArtifactId :: Prelude.Maybe Prelude.Text,
    -- | The name of the provisioning artifact. You must provide the name or ID,
    -- but not both.
    DescribeProvisioningParameters -> Maybe Text
provisioningArtifactName :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeProvisioningParameters
-> DescribeProvisioningParameters -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningParameters
-> DescribeProvisioningParameters -> Bool
$c/= :: DescribeProvisioningParameters
-> DescribeProvisioningParameters -> Bool
== :: DescribeProvisioningParameters
-> DescribeProvisioningParameters -> Bool
$c== :: DescribeProvisioningParameters
-> DescribeProvisioningParameters -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningParameters]
ReadPrec DescribeProvisioningParameters
Int -> ReadS DescribeProvisioningParameters
ReadS [DescribeProvisioningParameters]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningParameters]
$creadListPrec :: ReadPrec [DescribeProvisioningParameters]
readPrec :: ReadPrec DescribeProvisioningParameters
$creadPrec :: ReadPrec DescribeProvisioningParameters
readList :: ReadS [DescribeProvisioningParameters]
$creadList :: ReadS [DescribeProvisioningParameters]
readsPrec :: Int -> ReadS DescribeProvisioningParameters
$creadsPrec :: Int -> ReadS DescribeProvisioningParameters
Prelude.Read, Int -> DescribeProvisioningParameters -> ShowS
[DescribeProvisioningParameters] -> ShowS
DescribeProvisioningParameters -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningParameters] -> ShowS
$cshowList :: [DescribeProvisioningParameters] -> ShowS
show :: DescribeProvisioningParameters -> String
$cshow :: DescribeProvisioningParameters -> String
showsPrec :: Int -> DescribeProvisioningParameters -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningParameters -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningParameters x
-> DescribeProvisioningParameters
forall x.
DescribeProvisioningParameters
-> Rep DescribeProvisioningParameters x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningParameters x
-> DescribeProvisioningParameters
$cfrom :: forall x.
DescribeProvisioningParameters
-> Rep DescribeProvisioningParameters x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningParameters' 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', 'describeProvisioningParameters_acceptLanguage' - The language code.
--
-- -   @en@ - English (default)
--
-- -   @jp@ - Japanese
--
-- -   @zh@ - Chinese
--
-- 'pathId', 'describeProvisioningParameters_pathId' - The path identifier of the product. This value is optional if the
-- product has a default path, and required if the product has more than
-- one path. To list the paths for a product, use ListLaunchPaths. You must
-- provide the name or ID, but not both.
--
-- 'pathName', 'describeProvisioningParameters_pathName' - The name of the path. You must provide the name or ID, but not both.
--
-- 'productId', 'describeProvisioningParameters_productId' - The product identifier. You must provide the product name or ID, but not
-- both.
--
-- 'productName', 'describeProvisioningParameters_productName' - The name of the product. You must provide the name or ID, but not both.
--
-- 'provisioningArtifactId', 'describeProvisioningParameters_provisioningArtifactId' - The identifier of the provisioning artifact. You must provide the name
-- or ID, but not both.
--
-- 'provisioningArtifactName', 'describeProvisioningParameters_provisioningArtifactName' - The name of the provisioning artifact. You must provide the name or ID,
-- but not both.
newDescribeProvisioningParameters ::
  DescribeProvisioningParameters
newDescribeProvisioningParameters :: DescribeProvisioningParameters
newDescribeProvisioningParameters =
  DescribeProvisioningParameters'
    { $sel:acceptLanguage:DescribeProvisioningParameters' :: Maybe Text
acceptLanguage =
        forall a. Maybe a
Prelude.Nothing,
      $sel:pathId:DescribeProvisioningParameters' :: Maybe Text
pathId = forall a. Maybe a
Prelude.Nothing,
      $sel:pathName:DescribeProvisioningParameters' :: Maybe Text
pathName = forall a. Maybe a
Prelude.Nothing,
      $sel:productId:DescribeProvisioningParameters' :: Maybe Text
productId = forall a. Maybe a
Prelude.Nothing,
      $sel:productName:DescribeProvisioningParameters' :: Maybe Text
productName = forall a. Maybe a
Prelude.Nothing,
      $sel:provisioningArtifactId:DescribeProvisioningParameters' :: Maybe Text
provisioningArtifactId = forall a. Maybe a
Prelude.Nothing,
      $sel:provisioningArtifactName:DescribeProvisioningParameters' :: Maybe Text
provisioningArtifactName = forall a. Maybe a
Prelude.Nothing
    }

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

-- | The path identifier of the product. This value is optional if the
-- product has a default path, and required if the product has more than
-- one path. To list the paths for a product, use ListLaunchPaths. You must
-- provide the name or ID, but not both.
describeProvisioningParameters_pathId :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_pathId :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_pathId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
pathId :: Maybe Text
$sel:pathId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
pathId} -> Maybe Text
pathId) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:pathId:DescribeProvisioningParameters' :: Maybe Text
pathId = Maybe Text
a} :: DescribeProvisioningParameters)

-- | The name of the path. You must provide the name or ID, but not both.
describeProvisioningParameters_pathName :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_pathName :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_pathName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
pathName :: Maybe Text
$sel:pathName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
pathName} -> Maybe Text
pathName) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:pathName:DescribeProvisioningParameters' :: Maybe Text
pathName = Maybe Text
a} :: DescribeProvisioningParameters)

-- | The product identifier. You must provide the product name or ID, but not
-- both.
describeProvisioningParameters_productId :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_productId :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_productId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
productId :: Maybe Text
$sel:productId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
productId} -> Maybe Text
productId) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:productId:DescribeProvisioningParameters' :: Maybe Text
productId = Maybe Text
a} :: DescribeProvisioningParameters)

-- | The name of the product. You must provide the name or ID, but not both.
describeProvisioningParameters_productName :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_productName :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_productName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
productName :: Maybe Text
$sel:productName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
productName} -> Maybe Text
productName) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:productName:DescribeProvisioningParameters' :: Maybe Text
productName = Maybe Text
a} :: DescribeProvisioningParameters)

-- | The identifier of the provisioning artifact. You must provide the name
-- or ID, but not both.
describeProvisioningParameters_provisioningArtifactId :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_provisioningArtifactId :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_provisioningArtifactId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
provisioningArtifactId :: Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
provisioningArtifactId} -> Maybe Text
provisioningArtifactId) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:provisioningArtifactId:DescribeProvisioningParameters' :: Maybe Text
provisioningArtifactId = Maybe Text
a} :: DescribeProvisioningParameters)

-- | The name of the provisioning artifact. You must provide the name or ID,
-- but not both.
describeProvisioningParameters_provisioningArtifactName :: Lens.Lens' DescribeProvisioningParameters (Prelude.Maybe Prelude.Text)
describeProvisioningParameters_provisioningArtifactName :: Lens' DescribeProvisioningParameters (Maybe Text)
describeProvisioningParameters_provisioningArtifactName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParameters' {Maybe Text
provisioningArtifactName :: Maybe Text
$sel:provisioningArtifactName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
provisioningArtifactName} -> Maybe Text
provisioningArtifactName) (\s :: DescribeProvisioningParameters
s@DescribeProvisioningParameters' {} Maybe Text
a -> DescribeProvisioningParameters
s {$sel:provisioningArtifactName:DescribeProvisioningParameters' :: Maybe Text
provisioningArtifactName = Maybe Text
a} :: DescribeProvisioningParameters)

instance
  Core.AWSRequest
    DescribeProvisioningParameters
  where
  type
    AWSResponse DescribeProvisioningParameters =
      DescribeProvisioningParametersResponse
  request :: (Service -> Service)
-> DescribeProvisioningParameters
-> Request DescribeProvisioningParameters
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 DescribeProvisioningParameters
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeProvisioningParameters)))
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 [ConstraintSummary]
-> Maybe [ProvisioningArtifactOutput]
-> Maybe [ProvisioningArtifactOutput]
-> Maybe [ProvisioningArtifactParameter]
-> Maybe ProvisioningArtifactPreferences
-> Maybe [TagOptionSummary]
-> Maybe [UsageInstruction]
-> Int
-> DescribeProvisioningParametersResponse
DescribeProvisioningParametersResponse'
            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
"ConstraintSummaries"
                            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
"ProvisioningArtifactOutputKeys"
                            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
"ProvisioningArtifactOutputs"
                            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
"ProvisioningArtifactParameters"
                            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
"ProvisioningArtifactPreferences")
            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
"TagOptions" 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
"UsageInstructions"
                            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
    DescribeProvisioningParameters
  where
  hashWithSalt :: Int -> DescribeProvisioningParameters -> Int
hashWithSalt
    Int
_salt
    DescribeProvisioningParameters' {Maybe Text
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
pathName :: Maybe Text
pathId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:provisioningArtifactName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> 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
pathId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
pathName
        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

instance
  Prelude.NFData
    DescribeProvisioningParameters
  where
  rnf :: DescribeProvisioningParameters -> ()
rnf DescribeProvisioningParameters' {Maybe Text
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
pathName :: Maybe Text
pathId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:provisioningArtifactName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> 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
pathId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
pathName
      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

instance
  Data.ToHeaders
    DescribeProvisioningParameters
  where
  toHeaders :: DescribeProvisioningParameters -> 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.DescribeProvisioningParameters" ::
                          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 DescribeProvisioningParameters where
  toJSON :: DescribeProvisioningParameters -> Value
toJSON DescribeProvisioningParameters' {Maybe Text
provisioningArtifactName :: Maybe Text
provisioningArtifactId :: Maybe Text
productName :: Maybe Text
productId :: Maybe Text
pathName :: Maybe Text
pathId :: Maybe Text
acceptLanguage :: Maybe Text
$sel:provisioningArtifactName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:provisioningArtifactId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:productId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathName:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:pathId:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> Maybe Text
$sel:acceptLanguage:DescribeProvisioningParameters' :: DescribeProvisioningParameters -> 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
"PathId" 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
pathId,
            (Key
"PathName" 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
pathName,
            (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
          ]
      )

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

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

-- | /See:/ 'newDescribeProvisioningParametersResponse' smart constructor.
data DescribeProvisioningParametersResponse = DescribeProvisioningParametersResponse'
  { -- | Information about the constraints used to provision the product.
    DescribeProvisioningParametersResponse -> Maybe [ConstraintSummary]
constraintSummaries :: Prelude.Maybe [ConstraintSummary],
    -- | A list of the keys and descriptions of the outputs. These outputs can be
    -- referenced from a provisioned product launched from this provisioning
    -- artifact.
    DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys :: Prelude.Maybe [ProvisioningArtifactOutput],
    -- | The output of the provisioning artifact.
    DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs :: Prelude.Maybe [ProvisioningArtifactOutput],
    -- | Information about the parameters used to provision the product.
    DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters :: Prelude.Maybe [ProvisioningArtifactParameter],
    -- | An object that contains information about preferences, such as Regions
    -- and accounts, for the provisioning artifact.
    DescribeProvisioningParametersResponse
-> Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences :: Prelude.Maybe ProvisioningArtifactPreferences,
    -- | Information about the TagOptions associated with the resource.
    DescribeProvisioningParametersResponse -> Maybe [TagOptionSummary]
tagOptions :: Prelude.Maybe [TagOptionSummary],
    -- | Any additional metadata specifically related to the provisioning of the
    -- product. For example, see the @Version@ field of the CloudFormation
    -- template.
    DescribeProvisioningParametersResponse -> Maybe [UsageInstruction]
usageInstructions :: Prelude.Maybe [UsageInstruction],
    -- | The response's http status code.
    DescribeProvisioningParametersResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeProvisioningParametersResponse
-> DescribeProvisioningParametersResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningParametersResponse
-> DescribeProvisioningParametersResponse -> Bool
$c/= :: DescribeProvisioningParametersResponse
-> DescribeProvisioningParametersResponse -> Bool
== :: DescribeProvisioningParametersResponse
-> DescribeProvisioningParametersResponse -> Bool
$c== :: DescribeProvisioningParametersResponse
-> DescribeProvisioningParametersResponse -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningParametersResponse]
ReadPrec DescribeProvisioningParametersResponse
Int -> ReadS DescribeProvisioningParametersResponse
ReadS [DescribeProvisioningParametersResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningParametersResponse]
$creadListPrec :: ReadPrec [DescribeProvisioningParametersResponse]
readPrec :: ReadPrec DescribeProvisioningParametersResponse
$creadPrec :: ReadPrec DescribeProvisioningParametersResponse
readList :: ReadS [DescribeProvisioningParametersResponse]
$creadList :: ReadS [DescribeProvisioningParametersResponse]
readsPrec :: Int -> ReadS DescribeProvisioningParametersResponse
$creadsPrec :: Int -> ReadS DescribeProvisioningParametersResponse
Prelude.Read, Int -> DescribeProvisioningParametersResponse -> ShowS
[DescribeProvisioningParametersResponse] -> ShowS
DescribeProvisioningParametersResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningParametersResponse] -> ShowS
$cshowList :: [DescribeProvisioningParametersResponse] -> ShowS
show :: DescribeProvisioningParametersResponse -> String
$cshow :: DescribeProvisioningParametersResponse -> String
showsPrec :: Int -> DescribeProvisioningParametersResponse -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningParametersResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningParametersResponse x
-> DescribeProvisioningParametersResponse
forall x.
DescribeProvisioningParametersResponse
-> Rep DescribeProvisioningParametersResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningParametersResponse x
-> DescribeProvisioningParametersResponse
$cfrom :: forall x.
DescribeProvisioningParametersResponse
-> Rep DescribeProvisioningParametersResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningParametersResponse' 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:
--
-- 'constraintSummaries', 'describeProvisioningParametersResponse_constraintSummaries' - Information about the constraints used to provision the product.
--
-- 'provisioningArtifactOutputKeys', 'describeProvisioningParametersResponse_provisioningArtifactOutputKeys' - A list of the keys and descriptions of the outputs. These outputs can be
-- referenced from a provisioned product launched from this provisioning
-- artifact.
--
-- 'provisioningArtifactOutputs', 'describeProvisioningParametersResponse_provisioningArtifactOutputs' - The output of the provisioning artifact.
--
-- 'provisioningArtifactParameters', 'describeProvisioningParametersResponse_provisioningArtifactParameters' - Information about the parameters used to provision the product.
--
-- 'provisioningArtifactPreferences', 'describeProvisioningParametersResponse_provisioningArtifactPreferences' - An object that contains information about preferences, such as Regions
-- and accounts, for the provisioning artifact.
--
-- 'tagOptions', 'describeProvisioningParametersResponse_tagOptions' - Information about the TagOptions associated with the resource.
--
-- 'usageInstructions', 'describeProvisioningParametersResponse_usageInstructions' - Any additional metadata specifically related to the provisioning of the
-- product. For example, see the @Version@ field of the CloudFormation
-- template.
--
-- 'httpStatus', 'describeProvisioningParametersResponse_httpStatus' - The response's http status code.
newDescribeProvisioningParametersResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeProvisioningParametersResponse
newDescribeProvisioningParametersResponse :: Int -> DescribeProvisioningParametersResponse
newDescribeProvisioningParametersResponse
  Int
pHttpStatus_ =
    DescribeProvisioningParametersResponse'
      { $sel:constraintSummaries:DescribeProvisioningParametersResponse' :: Maybe [ConstraintSummary]
constraintSummaries =
          forall a. Maybe a
Prelude.Nothing,
        $sel:provisioningArtifactOutputKeys:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys =
          forall a. Maybe a
Prelude.Nothing,
        $sel:provisioningArtifactOutputs:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs =
          forall a. Maybe a
Prelude.Nothing,
        $sel:provisioningArtifactParameters:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters =
          forall a. Maybe a
Prelude.Nothing,
        $sel:provisioningArtifactPreferences:DescribeProvisioningParametersResponse' :: Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences =
          forall a. Maybe a
Prelude.Nothing,
        $sel:tagOptions:DescribeProvisioningParametersResponse' :: Maybe [TagOptionSummary]
tagOptions = forall a. Maybe a
Prelude.Nothing,
        $sel:usageInstructions:DescribeProvisioningParametersResponse' :: Maybe [UsageInstruction]
usageInstructions = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeProvisioningParametersResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | Information about the constraints used to provision the product.
describeProvisioningParametersResponse_constraintSummaries :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [ConstraintSummary])
describeProvisioningParametersResponse_constraintSummaries :: Lens'
  DescribeProvisioningParametersResponse (Maybe [ConstraintSummary])
describeProvisioningParametersResponse_constraintSummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [ConstraintSummary]
constraintSummaries :: Maybe [ConstraintSummary]
$sel:constraintSummaries:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [ConstraintSummary]
constraintSummaries} -> Maybe [ConstraintSummary]
constraintSummaries) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [ConstraintSummary]
a -> DescribeProvisioningParametersResponse
s {$sel:constraintSummaries:DescribeProvisioningParametersResponse' :: Maybe [ConstraintSummary]
constraintSummaries = Maybe [ConstraintSummary]
a} :: DescribeProvisioningParametersResponse) 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

-- | A list of the keys and descriptions of the outputs. These outputs can be
-- referenced from a provisioned product launched from this provisioning
-- artifact.
describeProvisioningParametersResponse_provisioningArtifactOutputKeys :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [ProvisioningArtifactOutput])
describeProvisioningParametersResponse_provisioningArtifactOutputKeys :: Lens'
  DescribeProvisioningParametersResponse
  (Maybe [ProvisioningArtifactOutput])
describeProvisioningParametersResponse_provisioningArtifactOutputKeys = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys :: Maybe [ProvisioningArtifactOutput]
$sel:provisioningArtifactOutputKeys:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys} -> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [ProvisioningArtifactOutput]
a -> DescribeProvisioningParametersResponse
s {$sel:provisioningArtifactOutputKeys:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys = Maybe [ProvisioningArtifactOutput]
a} :: DescribeProvisioningParametersResponse) 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 output of the provisioning artifact.
describeProvisioningParametersResponse_provisioningArtifactOutputs :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [ProvisioningArtifactOutput])
describeProvisioningParametersResponse_provisioningArtifactOutputs :: Lens'
  DescribeProvisioningParametersResponse
  (Maybe [ProvisioningArtifactOutput])
describeProvisioningParametersResponse_provisioningArtifactOutputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs :: Maybe [ProvisioningArtifactOutput]
$sel:provisioningArtifactOutputs:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs} -> Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [ProvisioningArtifactOutput]
a -> DescribeProvisioningParametersResponse
s {$sel:provisioningArtifactOutputs:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs = Maybe [ProvisioningArtifactOutput]
a} :: DescribeProvisioningParametersResponse) 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 parameters used to provision the product.
describeProvisioningParametersResponse_provisioningArtifactParameters :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [ProvisioningArtifactParameter])
describeProvisioningParametersResponse_provisioningArtifactParameters :: Lens'
  DescribeProvisioningParametersResponse
  (Maybe [ProvisioningArtifactParameter])
describeProvisioningParametersResponse_provisioningArtifactParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters :: Maybe [ProvisioningArtifactParameter]
$sel:provisioningArtifactParameters:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters} -> Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [ProvisioningArtifactParameter]
a -> DescribeProvisioningParametersResponse
s {$sel:provisioningArtifactParameters:DescribeProvisioningParametersResponse' :: Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters = Maybe [ProvisioningArtifactParameter]
a} :: DescribeProvisioningParametersResponse) 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

-- | An object that contains information about preferences, such as Regions
-- and accounts, for the provisioning artifact.
describeProvisioningParametersResponse_provisioningArtifactPreferences :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe ProvisioningArtifactPreferences)
describeProvisioningParametersResponse_provisioningArtifactPreferences :: Lens'
  DescribeProvisioningParametersResponse
  (Maybe ProvisioningArtifactPreferences)
describeProvisioningParametersResponse_provisioningArtifactPreferences = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences :: Maybe ProvisioningArtifactPreferences
$sel:provisioningArtifactPreferences:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences} -> Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe ProvisioningArtifactPreferences
a -> DescribeProvisioningParametersResponse
s {$sel:provisioningArtifactPreferences:DescribeProvisioningParametersResponse' :: Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences = Maybe ProvisioningArtifactPreferences
a} :: DescribeProvisioningParametersResponse)

-- | Information about the TagOptions associated with the resource.
describeProvisioningParametersResponse_tagOptions :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [TagOptionSummary])
describeProvisioningParametersResponse_tagOptions :: Lens'
  DescribeProvisioningParametersResponse (Maybe [TagOptionSummary])
describeProvisioningParametersResponse_tagOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [TagOptionSummary]
tagOptions :: Maybe [TagOptionSummary]
$sel:tagOptions:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [TagOptionSummary]
tagOptions} -> Maybe [TagOptionSummary]
tagOptions) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [TagOptionSummary]
a -> DescribeProvisioningParametersResponse
s {$sel:tagOptions:DescribeProvisioningParametersResponse' :: Maybe [TagOptionSummary]
tagOptions = Maybe [TagOptionSummary]
a} :: DescribeProvisioningParametersResponse) 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

-- | Any additional metadata specifically related to the provisioning of the
-- product. For example, see the @Version@ field of the CloudFormation
-- template.
describeProvisioningParametersResponse_usageInstructions :: Lens.Lens' DescribeProvisioningParametersResponse (Prelude.Maybe [UsageInstruction])
describeProvisioningParametersResponse_usageInstructions :: Lens'
  DescribeProvisioningParametersResponse (Maybe [UsageInstruction])
describeProvisioningParametersResponse_usageInstructions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Maybe [UsageInstruction]
usageInstructions :: Maybe [UsageInstruction]
$sel:usageInstructions:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [UsageInstruction]
usageInstructions} -> Maybe [UsageInstruction]
usageInstructions) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Maybe [UsageInstruction]
a -> DescribeProvisioningParametersResponse
s {$sel:usageInstructions:DescribeProvisioningParametersResponse' :: Maybe [UsageInstruction]
usageInstructions = Maybe [UsageInstruction]
a} :: DescribeProvisioningParametersResponse) 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.
describeProvisioningParametersResponse_httpStatus :: Lens.Lens' DescribeProvisioningParametersResponse Prelude.Int
describeProvisioningParametersResponse_httpStatus :: Lens' DescribeProvisioningParametersResponse Int
describeProvisioningParametersResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningParametersResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeProvisioningParametersResponse
s@DescribeProvisioningParametersResponse' {} Int
a -> DescribeProvisioningParametersResponse
s {$sel:httpStatus:DescribeProvisioningParametersResponse' :: Int
httpStatus = Int
a} :: DescribeProvisioningParametersResponse)

instance
  Prelude.NFData
    DescribeProvisioningParametersResponse
  where
  rnf :: DescribeProvisioningParametersResponse -> ()
rnf DescribeProvisioningParametersResponse' {Int
Maybe [ConstraintSummary]
Maybe [ProvisioningArtifactOutput]
Maybe [ProvisioningArtifactParameter]
Maybe [TagOptionSummary]
Maybe [UsageInstruction]
Maybe ProvisioningArtifactPreferences
httpStatus :: Int
usageInstructions :: Maybe [UsageInstruction]
tagOptions :: Maybe [TagOptionSummary]
provisioningArtifactPreferences :: Maybe ProvisioningArtifactPreferences
provisioningArtifactParameters :: Maybe [ProvisioningArtifactParameter]
provisioningArtifactOutputs :: Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys :: Maybe [ProvisioningArtifactOutput]
constraintSummaries :: Maybe [ConstraintSummary]
$sel:httpStatus:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Int
$sel:usageInstructions:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [UsageInstruction]
$sel:tagOptions:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [TagOptionSummary]
$sel:provisioningArtifactPreferences:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe ProvisioningArtifactPreferences
$sel:provisioningArtifactParameters:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactParameter]
$sel:provisioningArtifactOutputs:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
$sel:provisioningArtifactOutputKeys:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse
-> Maybe [ProvisioningArtifactOutput]
$sel:constraintSummaries:DescribeProvisioningParametersResponse' :: DescribeProvisioningParametersResponse -> Maybe [ConstraintSummary]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [ConstraintSummary]
constraintSummaries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputKeys
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ProvisioningArtifactOutput]
provisioningArtifactOutputs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ProvisioningArtifactParameter]
provisioningArtifactParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProvisioningArtifactPreferences
provisioningArtifactPreferences
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TagOptionSummary]
tagOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [UsageInstruction]
usageInstructions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus