{-# 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.CloudFormation.DescribeChangeSet
-- 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 the inputs for the change set and a list of changes that
-- CloudFormation will make if you execute the change set. For more
-- information, see
-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html Updating Stacks Using Change Sets>
-- in the CloudFormation User Guide.
--
-- This operation returns paginated results.
module Amazonka.CloudFormation.DescribeChangeSet
  ( -- * Creating a Request
    DescribeChangeSet (..),
    newDescribeChangeSet,

    -- * Request Lenses
    describeChangeSet_nextToken,
    describeChangeSet_stackName,
    describeChangeSet_changeSetName,

    -- * Destructuring the Response
    DescribeChangeSetResponse (..),
    newDescribeChangeSetResponse,

    -- * Response Lenses
    describeChangeSetResponse_capabilities,
    describeChangeSetResponse_changeSetId,
    describeChangeSetResponse_changeSetName,
    describeChangeSetResponse_changes,
    describeChangeSetResponse_creationTime,
    describeChangeSetResponse_description,
    describeChangeSetResponse_executionStatus,
    describeChangeSetResponse_includeNestedStacks,
    describeChangeSetResponse_nextToken,
    describeChangeSetResponse_notificationARNs,
    describeChangeSetResponse_parameters,
    describeChangeSetResponse_parentChangeSetId,
    describeChangeSetResponse_rollbackConfiguration,
    describeChangeSetResponse_rootChangeSetId,
    describeChangeSetResponse_stackId,
    describeChangeSetResponse_stackName,
    describeChangeSetResponse_statusReason,
    describeChangeSetResponse_tags,
    describeChangeSetResponse_httpStatus,
    describeChangeSetResponse_status,
  )
where

import Amazonka.CloudFormation.Types
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

-- | The input for the DescribeChangeSet action.
--
-- /See:/ 'newDescribeChangeSet' smart constructor.
data DescribeChangeSet = DescribeChangeSet'
  { -- | A string (provided by the DescribeChangeSet response output) that
    -- identifies the next page of information that you want to retrieve.
    DescribeChangeSet -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | If you specified the name of a change set, specify the stack name or ID
    -- (ARN) of the change set you want to describe.
    DescribeChangeSet -> Maybe Text
stackName :: Prelude.Maybe Prelude.Text,
    -- | The name or Amazon Resource Name (ARN) of the change set that you want
    -- to describe.
    DescribeChangeSet -> Text
changeSetName :: Prelude.Text
  }
  deriving (DescribeChangeSet -> DescribeChangeSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeChangeSet -> DescribeChangeSet -> Bool
$c/= :: DescribeChangeSet -> DescribeChangeSet -> Bool
== :: DescribeChangeSet -> DescribeChangeSet -> Bool
$c== :: DescribeChangeSet -> DescribeChangeSet -> Bool
Prelude.Eq, ReadPrec [DescribeChangeSet]
ReadPrec DescribeChangeSet
Int -> ReadS DescribeChangeSet
ReadS [DescribeChangeSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeChangeSet]
$creadListPrec :: ReadPrec [DescribeChangeSet]
readPrec :: ReadPrec DescribeChangeSet
$creadPrec :: ReadPrec DescribeChangeSet
readList :: ReadS [DescribeChangeSet]
$creadList :: ReadS [DescribeChangeSet]
readsPrec :: Int -> ReadS DescribeChangeSet
$creadsPrec :: Int -> ReadS DescribeChangeSet
Prelude.Read, Int -> DescribeChangeSet -> ShowS
[DescribeChangeSet] -> ShowS
DescribeChangeSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeChangeSet] -> ShowS
$cshowList :: [DescribeChangeSet] -> ShowS
show :: DescribeChangeSet -> String
$cshow :: DescribeChangeSet -> String
showsPrec :: Int -> DescribeChangeSet -> ShowS
$cshowsPrec :: Int -> DescribeChangeSet -> ShowS
Prelude.Show, forall x. Rep DescribeChangeSet x -> DescribeChangeSet
forall x. DescribeChangeSet -> Rep DescribeChangeSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeChangeSet x -> DescribeChangeSet
$cfrom :: forall x. DescribeChangeSet -> Rep DescribeChangeSet x
Prelude.Generic)

-- |
-- Create a value of 'DescribeChangeSet' 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:
--
-- 'nextToken', 'describeChangeSet_nextToken' - A string (provided by the DescribeChangeSet response output) that
-- identifies the next page of information that you want to retrieve.
--
-- 'stackName', 'describeChangeSet_stackName' - If you specified the name of a change set, specify the stack name or ID
-- (ARN) of the change set you want to describe.
--
-- 'changeSetName', 'describeChangeSet_changeSetName' - The name or Amazon Resource Name (ARN) of the change set that you want
-- to describe.
newDescribeChangeSet ::
  -- | 'changeSetName'
  Prelude.Text ->
  DescribeChangeSet
newDescribeChangeSet :: Text -> DescribeChangeSet
newDescribeChangeSet Text
pChangeSetName_ =
  DescribeChangeSet'
    { $sel:nextToken:DescribeChangeSet' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:stackName:DescribeChangeSet' :: Maybe Text
stackName = forall a. Maybe a
Prelude.Nothing,
      $sel:changeSetName:DescribeChangeSet' :: Text
changeSetName = Text
pChangeSetName_
    }

-- | A string (provided by the DescribeChangeSet response output) that
-- identifies the next page of information that you want to retrieve.
describeChangeSet_nextToken :: Lens.Lens' DescribeChangeSet (Prelude.Maybe Prelude.Text)
describeChangeSet_nextToken :: Lens' DescribeChangeSet (Maybe Text)
describeChangeSet_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSet' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeChangeSet
s@DescribeChangeSet' {} Maybe Text
a -> DescribeChangeSet
s {$sel:nextToken:DescribeChangeSet' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeChangeSet)

-- | If you specified the name of a change set, specify the stack name or ID
-- (ARN) of the change set you want to describe.
describeChangeSet_stackName :: Lens.Lens' DescribeChangeSet (Prelude.Maybe Prelude.Text)
describeChangeSet_stackName :: Lens' DescribeChangeSet (Maybe Text)
describeChangeSet_stackName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSet' {Maybe Text
stackName :: Maybe Text
$sel:stackName:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
stackName} -> Maybe Text
stackName) (\s :: DescribeChangeSet
s@DescribeChangeSet' {} Maybe Text
a -> DescribeChangeSet
s {$sel:stackName:DescribeChangeSet' :: Maybe Text
stackName = Maybe Text
a} :: DescribeChangeSet)

-- | The name or Amazon Resource Name (ARN) of the change set that you want
-- to describe.
describeChangeSet_changeSetName :: Lens.Lens' DescribeChangeSet Prelude.Text
describeChangeSet_changeSetName :: Lens' DescribeChangeSet Text
describeChangeSet_changeSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSet' {Text
changeSetName :: Text
$sel:changeSetName:DescribeChangeSet' :: DescribeChangeSet -> Text
changeSetName} -> Text
changeSetName) (\s :: DescribeChangeSet
s@DescribeChangeSet' {} Text
a -> DescribeChangeSet
s {$sel:changeSetName:DescribeChangeSet' :: Text
changeSetName = Text
a} :: DescribeChangeSet)

instance Core.AWSPager DescribeChangeSet where
  page :: DescribeChangeSet
-> AWSResponse DescribeChangeSet -> Maybe DescribeChangeSet
page DescribeChangeSet
rq AWSResponse DescribeChangeSet
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeChangeSet
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeChangeSet
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeChangeSetResponse (Maybe [Change])
describeChangeSetResponse_changes
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeChangeSet
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeChangeSet (Maybe Text)
describeChangeSet_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeChangeSet
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest DescribeChangeSet where
  type
    AWSResponse DescribeChangeSet =
      DescribeChangeSetResponse
  request :: (Service -> Service)
-> DescribeChangeSet -> Request DescribeChangeSet
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeChangeSet
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeChangeSet)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DescribeChangeSetResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [Capability]
-> Maybe Text
-> Maybe Text
-> Maybe [Change]
-> Maybe ISO8601
-> Maybe Text
-> Maybe ExecutionStatus
-> Maybe Bool
-> Maybe Text
-> Maybe [Text]
-> Maybe [Parameter]
-> Maybe Text
-> Maybe RollbackConfiguration
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> Int
-> ChangeSetStatus
-> DescribeChangeSetResponse
DescribeChangeSetResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Capabilities"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ChangeSetId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ChangeSetName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Changes"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ExecutionStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"IncludeNestedStacks")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"NextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"NotificationARNs"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Parameters"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ParentChangeSetId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RollbackConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"RootChangeSetId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"StackId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"StackName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"StatusReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Tags"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"Status")
      )

instance Prelude.Hashable DescribeChangeSet where
  hashWithSalt :: Int -> DescribeChangeSet -> Int
hashWithSalt Int
_salt DescribeChangeSet' {Maybe Text
Text
changeSetName :: Text
stackName :: Maybe Text
nextToken :: Maybe Text
$sel:changeSetName:DescribeChangeSet' :: DescribeChangeSet -> Text
$sel:stackName:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
$sel:nextToken:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
stackName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
changeSetName

instance Prelude.NFData DescribeChangeSet where
  rnf :: DescribeChangeSet -> ()
rnf DescribeChangeSet' {Maybe Text
Text
changeSetName :: Text
stackName :: Maybe Text
nextToken :: Maybe Text
$sel:changeSetName:DescribeChangeSet' :: DescribeChangeSet -> Text
$sel:stackName:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
$sel:nextToken:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stackName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
changeSetName

instance Data.ToHeaders DescribeChangeSet where
  toHeaders :: DescribeChangeSet -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

instance Data.ToQuery DescribeChangeSet where
  toQuery :: DescribeChangeSet -> QueryString
toQuery DescribeChangeSet' {Maybe Text
Text
changeSetName :: Text
stackName :: Maybe Text
nextToken :: Maybe Text
$sel:changeSetName:DescribeChangeSet' :: DescribeChangeSet -> Text
$sel:stackName:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
$sel:nextToken:DescribeChangeSet' :: DescribeChangeSet -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeChangeSet" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-05-15" :: Prelude.ByteString),
        ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken,
        ByteString
"StackName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
stackName,
        ByteString
"ChangeSetName" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
changeSetName
      ]

-- | The output for the DescribeChangeSet action.
--
-- /See:/ 'newDescribeChangeSetResponse' smart constructor.
data DescribeChangeSetResponse = DescribeChangeSetResponse'
  { -- | If you execute the change set, the list of capabilities that were
    -- explicitly acknowledged when the change set was created.
    DescribeChangeSetResponse -> Maybe [Capability]
capabilities :: Prelude.Maybe [Capability],
    -- | The Amazon Resource Name (ARN) of the change set.
    DescribeChangeSetResponse -> Maybe Text
changeSetId :: Prelude.Maybe Prelude.Text,
    -- | The name of the change set.
    DescribeChangeSetResponse -> Maybe Text
changeSetName :: Prelude.Maybe Prelude.Text,
    -- | A list of @Change@ structures that describes the resources
    -- CloudFormation changes if you execute the change set.
    DescribeChangeSetResponse -> Maybe [Change]
changes :: Prelude.Maybe [Change],
    -- | The start time when the change set was created, in UTC.
    DescribeChangeSetResponse -> Maybe ISO8601
creationTime :: Prelude.Maybe Data.ISO8601,
    -- | Information about the change set.
    DescribeChangeSetResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | If the change set execution status is @AVAILABLE@, you can execute the
    -- change set. If you can\'t execute the change set, the status indicates
    -- why. For example, a change set might be in an @UNAVAILABLE@ state
    -- because CloudFormation is still creating it or in an @OBSOLETE@ state
    -- because the stack was already updated.
    DescribeChangeSetResponse -> Maybe ExecutionStatus
executionStatus :: Prelude.Maybe ExecutionStatus,
    -- | Verifies if @IncludeNestedStacks@ is set to @True@.
    DescribeChangeSetResponse -> Maybe Bool
includeNestedStacks :: Prelude.Maybe Prelude.Bool,
    -- | If the output exceeds 1 MB, a string that identifies the next page of
    -- changes. If there is no additional page, this value is null.
    DescribeChangeSetResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
    -- that will be associated with the stack if you execute the change set.
    DescribeChangeSetResponse -> Maybe [Text]
notificationARNs :: Prelude.Maybe [Prelude.Text],
    -- | A list of @Parameter@ structures that describes the input parameters and
    -- their values used to create the change set. For more information, see
    -- the
    -- <https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html Parameter>
    -- data type.
    DescribeChangeSetResponse -> Maybe [Parameter]
parameters :: Prelude.Maybe [Parameter],
    -- | Specifies the change set ID of the parent change set in the current
    -- nested change set hierarchy.
    DescribeChangeSetResponse -> Maybe Text
parentChangeSetId :: Prelude.Maybe Prelude.Text,
    -- | The rollback triggers for CloudFormation to monitor during stack
    -- creation and updating operations, and for the specified monitoring
    -- period afterwards.
    DescribeChangeSetResponse -> Maybe RollbackConfiguration
rollbackConfiguration :: Prelude.Maybe RollbackConfiguration,
    -- | Specifies the change set ID of the root change set in the current nested
    -- change set hierarchy.
    DescribeChangeSetResponse -> Maybe Text
rootChangeSetId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the stack that\'s associated with the
    -- change set.
    DescribeChangeSetResponse -> Maybe Text
stackId :: Prelude.Maybe Prelude.Text,
    -- | The name of the stack that\'s associated with the change set.
    DescribeChangeSetResponse -> Maybe Text
stackName :: Prelude.Maybe Prelude.Text,
    -- | A description of the change set\'s status. For example, if your attempt
    -- to create a change set failed, CloudFormation shows the error message.
    DescribeChangeSetResponse -> Maybe Text
statusReason :: Prelude.Maybe Prelude.Text,
    -- | If you execute the change set, the tags that will be associated with the
    -- stack.
    DescribeChangeSetResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The response's http status code.
    DescribeChangeSetResponse -> Int
httpStatus :: Prelude.Int,
    -- | The current status of the change set, such as @CREATE_IN_PROGRESS@,
    -- @CREATE_COMPLETE@, or @FAILED@.
    DescribeChangeSetResponse -> ChangeSetStatus
status :: ChangeSetStatus
  }
  deriving (DescribeChangeSetResponse -> DescribeChangeSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeChangeSetResponse -> DescribeChangeSetResponse -> Bool
$c/= :: DescribeChangeSetResponse -> DescribeChangeSetResponse -> Bool
== :: DescribeChangeSetResponse -> DescribeChangeSetResponse -> Bool
$c== :: DescribeChangeSetResponse -> DescribeChangeSetResponse -> Bool
Prelude.Eq, ReadPrec [DescribeChangeSetResponse]
ReadPrec DescribeChangeSetResponse
Int -> ReadS DescribeChangeSetResponse
ReadS [DescribeChangeSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeChangeSetResponse]
$creadListPrec :: ReadPrec [DescribeChangeSetResponse]
readPrec :: ReadPrec DescribeChangeSetResponse
$creadPrec :: ReadPrec DescribeChangeSetResponse
readList :: ReadS [DescribeChangeSetResponse]
$creadList :: ReadS [DescribeChangeSetResponse]
readsPrec :: Int -> ReadS DescribeChangeSetResponse
$creadsPrec :: Int -> ReadS DescribeChangeSetResponse
Prelude.Read, Int -> DescribeChangeSetResponse -> ShowS
[DescribeChangeSetResponse] -> ShowS
DescribeChangeSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeChangeSetResponse] -> ShowS
$cshowList :: [DescribeChangeSetResponse] -> ShowS
show :: DescribeChangeSetResponse -> String
$cshow :: DescribeChangeSetResponse -> String
showsPrec :: Int -> DescribeChangeSetResponse -> ShowS
$cshowsPrec :: Int -> DescribeChangeSetResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeChangeSetResponse x -> DescribeChangeSetResponse
forall x.
DescribeChangeSetResponse -> Rep DescribeChangeSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeChangeSetResponse x -> DescribeChangeSetResponse
$cfrom :: forall x.
DescribeChangeSetResponse -> Rep DescribeChangeSetResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeChangeSetResponse' 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:
--
-- 'capabilities', 'describeChangeSetResponse_capabilities' - If you execute the change set, the list of capabilities that were
-- explicitly acknowledged when the change set was created.
--
-- 'changeSetId', 'describeChangeSetResponse_changeSetId' - The Amazon Resource Name (ARN) of the change set.
--
-- 'changeSetName', 'describeChangeSetResponse_changeSetName' - The name of the change set.
--
-- 'changes', 'describeChangeSetResponse_changes' - A list of @Change@ structures that describes the resources
-- CloudFormation changes if you execute the change set.
--
-- 'creationTime', 'describeChangeSetResponse_creationTime' - The start time when the change set was created, in UTC.
--
-- 'description', 'describeChangeSetResponse_description' - Information about the change set.
--
-- 'executionStatus', 'describeChangeSetResponse_executionStatus' - If the change set execution status is @AVAILABLE@, you can execute the
-- change set. If you can\'t execute the change set, the status indicates
-- why. For example, a change set might be in an @UNAVAILABLE@ state
-- because CloudFormation is still creating it or in an @OBSOLETE@ state
-- because the stack was already updated.
--
-- 'includeNestedStacks', 'describeChangeSetResponse_includeNestedStacks' - Verifies if @IncludeNestedStacks@ is set to @True@.
--
-- 'nextToken', 'describeChangeSetResponse_nextToken' - If the output exceeds 1 MB, a string that identifies the next page of
-- changes. If there is no additional page, this value is null.
--
-- 'notificationARNs', 'describeChangeSetResponse_notificationARNs' - The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
-- that will be associated with the stack if you execute the change set.
--
-- 'parameters', 'describeChangeSetResponse_parameters' - A list of @Parameter@ structures that describes the input parameters and
-- their values used to create the change set. For more information, see
-- the
-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html Parameter>
-- data type.
--
-- 'parentChangeSetId', 'describeChangeSetResponse_parentChangeSetId' - Specifies the change set ID of the parent change set in the current
-- nested change set hierarchy.
--
-- 'rollbackConfiguration', 'describeChangeSetResponse_rollbackConfiguration' - The rollback triggers for CloudFormation to monitor during stack
-- creation and updating operations, and for the specified monitoring
-- period afterwards.
--
-- 'rootChangeSetId', 'describeChangeSetResponse_rootChangeSetId' - Specifies the change set ID of the root change set in the current nested
-- change set hierarchy.
--
-- 'stackId', 'describeChangeSetResponse_stackId' - The Amazon Resource Name (ARN) of the stack that\'s associated with the
-- change set.
--
-- 'stackName', 'describeChangeSetResponse_stackName' - The name of the stack that\'s associated with the change set.
--
-- 'statusReason', 'describeChangeSetResponse_statusReason' - A description of the change set\'s status. For example, if your attempt
-- to create a change set failed, CloudFormation shows the error message.
--
-- 'tags', 'describeChangeSetResponse_tags' - If you execute the change set, the tags that will be associated with the
-- stack.
--
-- 'httpStatus', 'describeChangeSetResponse_httpStatus' - The response's http status code.
--
-- 'status', 'describeChangeSetResponse_status' - The current status of the change set, such as @CREATE_IN_PROGRESS@,
-- @CREATE_COMPLETE@, or @FAILED@.
newDescribeChangeSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'status'
  ChangeSetStatus ->
  DescribeChangeSetResponse
newDescribeChangeSetResponse :: Int -> ChangeSetStatus -> DescribeChangeSetResponse
newDescribeChangeSetResponse Int
pHttpStatus_ ChangeSetStatus
pStatus_ =
  DescribeChangeSetResponse'
    { $sel:capabilities:DescribeChangeSetResponse' :: Maybe [Capability]
capabilities =
        forall a. Maybe a
Prelude.Nothing,
      $sel:changeSetId:DescribeChangeSetResponse' :: Maybe Text
changeSetId = forall a. Maybe a
Prelude.Nothing,
      $sel:changeSetName:DescribeChangeSetResponse' :: Maybe Text
changeSetName = forall a. Maybe a
Prelude.Nothing,
      $sel:changes:DescribeChangeSetResponse' :: Maybe [Change]
changes = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:DescribeChangeSetResponse' :: Maybe ISO8601
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeChangeSetResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:executionStatus:DescribeChangeSetResponse' :: Maybe ExecutionStatus
executionStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:includeNestedStacks:DescribeChangeSetResponse' :: Maybe Bool
includeNestedStacks = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:DescribeChangeSetResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:notificationARNs:DescribeChangeSetResponse' :: Maybe [Text]
notificationARNs = forall a. Maybe a
Prelude.Nothing,
      $sel:parameters:DescribeChangeSetResponse' :: Maybe [Parameter]
parameters = forall a. Maybe a
Prelude.Nothing,
      $sel:parentChangeSetId:DescribeChangeSetResponse' :: Maybe Text
parentChangeSetId = forall a. Maybe a
Prelude.Nothing,
      $sel:rollbackConfiguration:DescribeChangeSetResponse' :: Maybe RollbackConfiguration
rollbackConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:rootChangeSetId:DescribeChangeSetResponse' :: Maybe Text
rootChangeSetId = forall a. Maybe a
Prelude.Nothing,
      $sel:stackId:DescribeChangeSetResponse' :: Maybe Text
stackId = forall a. Maybe a
Prelude.Nothing,
      $sel:stackName:DescribeChangeSetResponse' :: Maybe Text
stackName = forall a. Maybe a
Prelude.Nothing,
      $sel:statusReason:DescribeChangeSetResponse' :: Maybe Text
statusReason = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeChangeSetResponse' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeChangeSetResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:status:DescribeChangeSetResponse' :: ChangeSetStatus
status = ChangeSetStatus
pStatus_
    }

-- | If you execute the change set, the list of capabilities that were
-- explicitly acknowledged when the change set was created.
describeChangeSetResponse_capabilities :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe [Capability])
describeChangeSetResponse_capabilities :: Lens' DescribeChangeSetResponse (Maybe [Capability])
describeChangeSetResponse_capabilities = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe [Capability]
capabilities :: Maybe [Capability]
$sel:capabilities:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Capability]
capabilities} -> Maybe [Capability]
capabilities) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe [Capability]
a -> DescribeChangeSetResponse
s {$sel:capabilities:DescribeChangeSetResponse' :: Maybe [Capability]
capabilities = Maybe [Capability]
a} :: DescribeChangeSetResponse) 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 Amazon Resource Name (ARN) of the change set.
describeChangeSetResponse_changeSetId :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_changeSetId :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_changeSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
changeSetId :: Maybe Text
$sel:changeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
changeSetId} -> Maybe Text
changeSetId) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:changeSetId:DescribeChangeSetResponse' :: Maybe Text
changeSetId = Maybe Text
a} :: DescribeChangeSetResponse)

-- | The name of the change set.
describeChangeSetResponse_changeSetName :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_changeSetName :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_changeSetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
changeSetName :: Maybe Text
$sel:changeSetName:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
changeSetName} -> Maybe Text
changeSetName) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:changeSetName:DescribeChangeSetResponse' :: Maybe Text
changeSetName = Maybe Text
a} :: DescribeChangeSetResponse)

-- | A list of @Change@ structures that describes the resources
-- CloudFormation changes if you execute the change set.
describeChangeSetResponse_changes :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe [Change])
describeChangeSetResponse_changes :: Lens' DescribeChangeSetResponse (Maybe [Change])
describeChangeSetResponse_changes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe [Change]
changes :: Maybe [Change]
$sel:changes:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Change]
changes} -> Maybe [Change]
changes) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe [Change]
a -> DescribeChangeSetResponse
s {$sel:changes:DescribeChangeSetResponse' :: Maybe [Change]
changes = Maybe [Change]
a} :: DescribeChangeSetResponse) 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 start time when the change set was created, in UTC.
describeChangeSetResponse_creationTime :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.UTCTime)
describeChangeSetResponse_creationTime :: Lens' DescribeChangeSetResponse (Maybe UTCTime)
describeChangeSetResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe ISO8601
creationTime :: Maybe ISO8601
$sel:creationTime:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe ISO8601
creationTime} -> Maybe ISO8601
creationTime) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe ISO8601
a -> DescribeChangeSetResponse
s {$sel:creationTime:DescribeChangeSetResponse' :: Maybe ISO8601
creationTime = Maybe ISO8601
a} :: DescribeChangeSetResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Information about the change set.
describeChangeSetResponse_description :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_description :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:description:DescribeChangeSetResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeChangeSetResponse)

-- | If the change set execution status is @AVAILABLE@, you can execute the
-- change set. If you can\'t execute the change set, the status indicates
-- why. For example, a change set might be in an @UNAVAILABLE@ state
-- because CloudFormation is still creating it or in an @OBSOLETE@ state
-- because the stack was already updated.
describeChangeSetResponse_executionStatus :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe ExecutionStatus)
describeChangeSetResponse_executionStatus :: Lens' DescribeChangeSetResponse (Maybe ExecutionStatus)
describeChangeSetResponse_executionStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe ExecutionStatus
executionStatus :: Maybe ExecutionStatus
$sel:executionStatus:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe ExecutionStatus
executionStatus} -> Maybe ExecutionStatus
executionStatus) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe ExecutionStatus
a -> DescribeChangeSetResponse
s {$sel:executionStatus:DescribeChangeSetResponse' :: Maybe ExecutionStatus
executionStatus = Maybe ExecutionStatus
a} :: DescribeChangeSetResponse)

-- | Verifies if @IncludeNestedStacks@ is set to @True@.
describeChangeSetResponse_includeNestedStacks :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Bool)
describeChangeSetResponse_includeNestedStacks :: Lens' DescribeChangeSetResponse (Maybe Bool)
describeChangeSetResponse_includeNestedStacks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Bool
includeNestedStacks :: Maybe Bool
$sel:includeNestedStacks:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Bool
includeNestedStacks} -> Maybe Bool
includeNestedStacks) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Bool
a -> DescribeChangeSetResponse
s {$sel:includeNestedStacks:DescribeChangeSetResponse' :: Maybe Bool
includeNestedStacks = Maybe Bool
a} :: DescribeChangeSetResponse)

-- | If the output exceeds 1 MB, a string that identifies the next page of
-- changes. If there is no additional page, this value is null.
describeChangeSetResponse_nextToken :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_nextToken :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:nextToken:DescribeChangeSetResponse' :: Maybe Text
nextToken = Maybe Text
a} :: DescribeChangeSetResponse)

-- | The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics
-- that will be associated with the stack if you execute the change set.
describeChangeSetResponse_notificationARNs :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe [Prelude.Text])
describeChangeSetResponse_notificationARNs :: Lens' DescribeChangeSetResponse (Maybe [Text])
describeChangeSetResponse_notificationARNs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe [Text]
notificationARNs :: Maybe [Text]
$sel:notificationARNs:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Text]
notificationARNs} -> Maybe [Text]
notificationARNs) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe [Text]
a -> DescribeChangeSetResponse
s {$sel:notificationARNs:DescribeChangeSetResponse' :: Maybe [Text]
notificationARNs = Maybe [Text]
a} :: DescribeChangeSetResponse) 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 @Parameter@ structures that describes the input parameters and
-- their values used to create the change set. For more information, see
-- the
-- <https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html Parameter>
-- data type.
describeChangeSetResponse_parameters :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe [Parameter])
describeChangeSetResponse_parameters :: Lens' DescribeChangeSetResponse (Maybe [Parameter])
describeChangeSetResponse_parameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe [Parameter]
parameters :: Maybe [Parameter]
$sel:parameters:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Parameter]
parameters} -> Maybe [Parameter]
parameters) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe [Parameter]
a -> DescribeChangeSetResponse
s {$sel:parameters:DescribeChangeSetResponse' :: Maybe [Parameter]
parameters = Maybe [Parameter]
a} :: DescribeChangeSetResponse) 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

-- | Specifies the change set ID of the parent change set in the current
-- nested change set hierarchy.
describeChangeSetResponse_parentChangeSetId :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_parentChangeSetId :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_parentChangeSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
parentChangeSetId :: Maybe Text
$sel:parentChangeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
parentChangeSetId} -> Maybe Text
parentChangeSetId) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:parentChangeSetId:DescribeChangeSetResponse' :: Maybe Text
parentChangeSetId = Maybe Text
a} :: DescribeChangeSetResponse)

-- | The rollback triggers for CloudFormation to monitor during stack
-- creation and updating operations, and for the specified monitoring
-- period afterwards.
describeChangeSetResponse_rollbackConfiguration :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe RollbackConfiguration)
describeChangeSetResponse_rollbackConfiguration :: Lens' DescribeChangeSetResponse (Maybe RollbackConfiguration)
describeChangeSetResponse_rollbackConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe RollbackConfiguration
rollbackConfiguration :: Maybe RollbackConfiguration
$sel:rollbackConfiguration:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe RollbackConfiguration
rollbackConfiguration} -> Maybe RollbackConfiguration
rollbackConfiguration) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe RollbackConfiguration
a -> DescribeChangeSetResponse
s {$sel:rollbackConfiguration:DescribeChangeSetResponse' :: Maybe RollbackConfiguration
rollbackConfiguration = Maybe RollbackConfiguration
a} :: DescribeChangeSetResponse)

-- | Specifies the change set ID of the root change set in the current nested
-- change set hierarchy.
describeChangeSetResponse_rootChangeSetId :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_rootChangeSetId :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_rootChangeSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
rootChangeSetId :: Maybe Text
$sel:rootChangeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
rootChangeSetId} -> Maybe Text
rootChangeSetId) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:rootChangeSetId:DescribeChangeSetResponse' :: Maybe Text
rootChangeSetId = Maybe Text
a} :: DescribeChangeSetResponse)

-- | The Amazon Resource Name (ARN) of the stack that\'s associated with the
-- change set.
describeChangeSetResponse_stackId :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_stackId :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_stackId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
stackId :: Maybe Text
$sel:stackId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
stackId} -> Maybe Text
stackId) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:stackId:DescribeChangeSetResponse' :: Maybe Text
stackId = Maybe Text
a} :: DescribeChangeSetResponse)

-- | The name of the stack that\'s associated with the change set.
describeChangeSetResponse_stackName :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_stackName :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_stackName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
stackName :: Maybe Text
$sel:stackName:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
stackName} -> Maybe Text
stackName) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:stackName:DescribeChangeSetResponse' :: Maybe Text
stackName = Maybe Text
a} :: DescribeChangeSetResponse)

-- | A description of the change set\'s status. For example, if your attempt
-- to create a change set failed, CloudFormation shows the error message.
describeChangeSetResponse_statusReason :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe Prelude.Text)
describeChangeSetResponse_statusReason :: Lens' DescribeChangeSetResponse (Maybe Text)
describeChangeSetResponse_statusReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe Text
statusReason :: Maybe Text
$sel:statusReason:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
statusReason} -> Maybe Text
statusReason) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe Text
a -> DescribeChangeSetResponse
s {$sel:statusReason:DescribeChangeSetResponse' :: Maybe Text
statusReason = Maybe Text
a} :: DescribeChangeSetResponse)

-- | If you execute the change set, the tags that will be associated with the
-- stack.
describeChangeSetResponse_tags :: Lens.Lens' DescribeChangeSetResponse (Prelude.Maybe [Tag])
describeChangeSetResponse_tags :: Lens' DescribeChangeSetResponse (Maybe [Tag])
describeChangeSetResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Maybe [Tag]
a -> DescribeChangeSetResponse
s {$sel:tags:DescribeChangeSetResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: DescribeChangeSetResponse) 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.
describeChangeSetResponse_httpStatus :: Lens.Lens' DescribeChangeSetResponse Prelude.Int
describeChangeSetResponse_httpStatus :: Lens' DescribeChangeSetResponse Int
describeChangeSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} Int
a -> DescribeChangeSetResponse
s {$sel:httpStatus:DescribeChangeSetResponse' :: Int
httpStatus = Int
a} :: DescribeChangeSetResponse)

-- | The current status of the change set, such as @CREATE_IN_PROGRESS@,
-- @CREATE_COMPLETE@, or @FAILED@.
describeChangeSetResponse_status :: Lens.Lens' DescribeChangeSetResponse ChangeSetStatus
describeChangeSetResponse_status :: Lens' DescribeChangeSetResponse ChangeSetStatus
describeChangeSetResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeChangeSetResponse' {ChangeSetStatus
status :: ChangeSetStatus
$sel:status:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> ChangeSetStatus
status} -> ChangeSetStatus
status) (\s :: DescribeChangeSetResponse
s@DescribeChangeSetResponse' {} ChangeSetStatus
a -> DescribeChangeSetResponse
s {$sel:status:DescribeChangeSetResponse' :: ChangeSetStatus
status = ChangeSetStatus
a} :: DescribeChangeSetResponse)

instance Prelude.NFData DescribeChangeSetResponse where
  rnf :: DescribeChangeSetResponse -> ()
rnf DescribeChangeSetResponse' {Int
Maybe Bool
Maybe [Text]
Maybe [Capability]
Maybe [Parameter]
Maybe [Change]
Maybe [Tag]
Maybe Text
Maybe ISO8601
Maybe ExecutionStatus
Maybe RollbackConfiguration
ChangeSetStatus
status :: ChangeSetStatus
httpStatus :: Int
tags :: Maybe [Tag]
statusReason :: Maybe Text
stackName :: Maybe Text
stackId :: Maybe Text
rootChangeSetId :: Maybe Text
rollbackConfiguration :: Maybe RollbackConfiguration
parentChangeSetId :: Maybe Text
parameters :: Maybe [Parameter]
notificationARNs :: Maybe [Text]
nextToken :: Maybe Text
includeNestedStacks :: Maybe Bool
executionStatus :: Maybe ExecutionStatus
description :: Maybe Text
creationTime :: Maybe ISO8601
changes :: Maybe [Change]
changeSetName :: Maybe Text
changeSetId :: Maybe Text
capabilities :: Maybe [Capability]
$sel:status:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> ChangeSetStatus
$sel:httpStatus:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Int
$sel:tags:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Tag]
$sel:statusReason:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:stackName:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:stackId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:rootChangeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:rollbackConfiguration:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe RollbackConfiguration
$sel:parentChangeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:parameters:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Parameter]
$sel:notificationARNs:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Text]
$sel:nextToken:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:includeNestedStacks:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Bool
$sel:executionStatus:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe ExecutionStatus
$sel:description:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:creationTime:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe ISO8601
$sel:changes:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Change]
$sel:changeSetName:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:changeSetId:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe Text
$sel:capabilities:DescribeChangeSetResponse' :: DescribeChangeSetResponse -> Maybe [Capability]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Capability]
capabilities
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
changeSetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
changeSetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Change]
changes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExecutionStatus
executionStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
includeNestedStacks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
notificationARNs
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Parameter]
parameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
parentChangeSetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RollbackConfiguration
rollbackConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
rootChangeSetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stackId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stackName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ChangeSetStatus
status