{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.StackSummary
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.CloudFormation.Types.StackSummary where

import Amazonka.CloudFormation.Types.StackDriftInformationSummary
import Amazonka.CloudFormation.Types.StackStatus
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | The StackSummary Data Type
--
-- /See:/ 'newStackSummary' smart constructor.
data StackSummary = StackSummary'
  { -- | The time the stack was last updated. This field will only be returned if
    -- the stack has been updated at least once.
    StackSummary -> Maybe ISO8601
lastUpdatedTime :: Prelude.Maybe Core.ISO8601,
    -- | For nested stacks--stacks created as resources for another stack--the
    -- stack ID of the top-level stack to which the nested stack ultimately
    -- belongs.
    --
    -- For more information, see
    -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
    -- in the /CloudFormation User Guide/.
    StackSummary -> Maybe Text
rootId :: Prelude.Maybe Prelude.Text,
    -- | Success\/Failure message associated with the stack status.
    StackSummary -> Maybe Text
stackStatusReason :: Prelude.Maybe Prelude.Text,
    -- | The template description of the template used to create the stack.
    StackSummary -> Maybe Text
templateDescription :: Prelude.Maybe Prelude.Text,
    -- | Summarizes information on whether a stack\'s actual configuration
    -- differs, or has /drifted/, from it\'s expected configuration, as defined
    -- in the stack template and any values specified as template parameters.
    -- For more information, see
    -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html Detecting Unregulated Configuration Changes to Stacks and Resources>.
    StackSummary -> Maybe StackDriftInformationSummary
driftInformation :: Prelude.Maybe StackDriftInformationSummary,
    -- | The time the stack was deleted.
    StackSummary -> Maybe ISO8601
deletionTime :: Prelude.Maybe Core.ISO8601,
    -- | Unique stack identifier.
    StackSummary -> Maybe Text
stackId :: Prelude.Maybe Prelude.Text,
    -- | For nested stacks--stacks created as resources for another stack--the
    -- stack ID of the direct parent of this stack. For the first level of
    -- nested stacks, the root stack is also the parent stack.
    --
    -- For more information, see
    -- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
    -- in the /CloudFormation User Guide/.
    StackSummary -> Maybe Text
parentId :: Prelude.Maybe Prelude.Text,
    -- | The name associated with the stack.
    StackSummary -> Text
stackName :: Prelude.Text,
    -- | The time the stack was created.
    StackSummary -> ISO8601
creationTime :: Core.ISO8601,
    -- | The current status of the stack.
    StackSummary -> StackStatus
stackStatus :: StackStatus
  }
  deriving (StackSummary -> StackSummary -> Bool
(StackSummary -> StackSummary -> Bool)
-> (StackSummary -> StackSummary -> Bool) -> Eq StackSummary
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StackSummary -> StackSummary -> Bool
$c/= :: StackSummary -> StackSummary -> Bool
== :: StackSummary -> StackSummary -> Bool
$c== :: StackSummary -> StackSummary -> Bool
Prelude.Eq, ReadPrec [StackSummary]
ReadPrec StackSummary
Int -> ReadS StackSummary
ReadS [StackSummary]
(Int -> ReadS StackSummary)
-> ReadS [StackSummary]
-> ReadPrec StackSummary
-> ReadPrec [StackSummary]
-> Read StackSummary
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StackSummary]
$creadListPrec :: ReadPrec [StackSummary]
readPrec :: ReadPrec StackSummary
$creadPrec :: ReadPrec StackSummary
readList :: ReadS [StackSummary]
$creadList :: ReadS [StackSummary]
readsPrec :: Int -> ReadS StackSummary
$creadsPrec :: Int -> ReadS StackSummary
Prelude.Read, Int -> StackSummary -> ShowS
[StackSummary] -> ShowS
StackSummary -> String
(Int -> StackSummary -> ShowS)
-> (StackSummary -> String)
-> ([StackSummary] -> ShowS)
-> Show StackSummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StackSummary] -> ShowS
$cshowList :: [StackSummary] -> ShowS
show :: StackSummary -> String
$cshow :: StackSummary -> String
showsPrec :: Int -> StackSummary -> ShowS
$cshowsPrec :: Int -> StackSummary -> ShowS
Prelude.Show, (forall x. StackSummary -> Rep StackSummary x)
-> (forall x. Rep StackSummary x -> StackSummary)
-> Generic StackSummary
forall x. Rep StackSummary x -> StackSummary
forall x. StackSummary -> Rep StackSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StackSummary x -> StackSummary
$cfrom :: forall x. StackSummary -> Rep StackSummary x
Prelude.Generic)

-- |
-- Create a value of 'StackSummary' 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:
--
-- 'lastUpdatedTime', 'stackSummary_lastUpdatedTime' - The time the stack was last updated. This field will only be returned if
-- the stack has been updated at least once.
--
-- 'rootId', 'stackSummary_rootId' - For nested stacks--stacks created as resources for another stack--the
-- stack ID of the top-level stack to which the nested stack ultimately
-- belongs.
--
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
-- in the /CloudFormation User Guide/.
--
-- 'stackStatusReason', 'stackSummary_stackStatusReason' - Success\/Failure message associated with the stack status.
--
-- 'templateDescription', 'stackSummary_templateDescription' - The template description of the template used to create the stack.
--
-- 'driftInformation', 'stackSummary_driftInformation' - Summarizes information on whether a stack\'s actual configuration
-- differs, or has /drifted/, from it\'s expected configuration, as defined
-- in the stack template and any values specified as template parameters.
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html Detecting Unregulated Configuration Changes to Stacks and Resources>.
--
-- 'deletionTime', 'stackSummary_deletionTime' - The time the stack was deleted.
--
-- 'stackId', 'stackSummary_stackId' - Unique stack identifier.
--
-- 'parentId', 'stackSummary_parentId' - For nested stacks--stacks created as resources for another stack--the
-- stack ID of the direct parent of this stack. For the first level of
-- nested stacks, the root stack is also the parent stack.
--
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
-- in the /CloudFormation User Guide/.
--
-- 'stackName', 'stackSummary_stackName' - The name associated with the stack.
--
-- 'creationTime', 'stackSummary_creationTime' - The time the stack was created.
--
-- 'stackStatus', 'stackSummary_stackStatus' - The current status of the stack.
newStackSummary ::
  -- | 'stackName'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'stackStatus'
  StackStatus ->
  StackSummary
newStackSummary :: Text -> UTCTime -> StackStatus -> StackSummary
newStackSummary
  Text
pStackName_
  UTCTime
pCreationTime_
  StackStatus
pStackStatus_ =
    StackSummary' :: Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe StackDriftInformationSummary
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Text
-> ISO8601
-> StackStatus
-> StackSummary
StackSummary'
      { $sel:lastUpdatedTime:StackSummary' :: Maybe ISO8601
lastUpdatedTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
        $sel:rootId:StackSummary' :: Maybe Text
rootId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:stackStatusReason:StackSummary' :: Maybe Text
stackStatusReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:templateDescription:StackSummary' :: Maybe Text
templateDescription = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:driftInformation:StackSummary' :: Maybe StackDriftInformationSummary
driftInformation = Maybe StackDriftInformationSummary
forall a. Maybe a
Prelude.Nothing,
        $sel:deletionTime:StackSummary' :: Maybe ISO8601
deletionTime = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
        $sel:stackId:StackSummary' :: Maybe Text
stackId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:parentId:StackSummary' :: Maybe Text
parentId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:stackName:StackSummary' :: Text
stackName = Text
pStackName_,
        $sel:creationTime:StackSummary' :: ISO8601
creationTime = Tagged UTCTime (Identity UTCTime)
-> Tagged ISO8601 (Identity ISO8601)
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time (Tagged UTCTime (Identity UTCTime)
 -> Tagged ISO8601 (Identity ISO8601))
-> UTCTime -> ISO8601
forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:stackStatus:StackSummary' :: StackStatus
stackStatus = StackStatus
pStackStatus_
      }

-- | The time the stack was last updated. This field will only be returned if
-- the stack has been updated at least once.
stackSummary_lastUpdatedTime :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.UTCTime)
stackSummary_lastUpdatedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> StackSummary -> f StackSummary
stackSummary_lastUpdatedTime = (StackSummary -> Maybe ISO8601)
-> (StackSummary -> Maybe ISO8601 -> StackSummary)
-> Lens StackSummary StackSummary (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe ISO8601
lastUpdatedTime :: Maybe ISO8601
$sel:lastUpdatedTime:StackSummary' :: StackSummary -> Maybe ISO8601
lastUpdatedTime} -> Maybe ISO8601
lastUpdatedTime) (\s :: StackSummary
s@StackSummary' {} Maybe ISO8601
a -> StackSummary
s {$sel:lastUpdatedTime:StackSummary' :: Maybe ISO8601
lastUpdatedTime = Maybe ISO8601
a} :: StackSummary) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> StackSummary -> f StackSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> StackSummary
-> f StackSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | For nested stacks--stacks created as resources for another stack--the
-- stack ID of the top-level stack to which the nested stack ultimately
-- belongs.
--
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
-- in the /CloudFormation User Guide/.
stackSummary_rootId :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.Text)
stackSummary_rootId :: (Maybe Text -> f (Maybe Text)) -> StackSummary -> f StackSummary
stackSummary_rootId = (StackSummary -> Maybe Text)
-> (StackSummary -> Maybe Text -> StackSummary)
-> Lens StackSummary StackSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe Text
rootId :: Maybe Text
$sel:rootId:StackSummary' :: StackSummary -> Maybe Text
rootId} -> Maybe Text
rootId) (\s :: StackSummary
s@StackSummary' {} Maybe Text
a -> StackSummary
s {$sel:rootId:StackSummary' :: Maybe Text
rootId = Maybe Text
a} :: StackSummary)

-- | Success\/Failure message associated with the stack status.
stackSummary_stackStatusReason :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.Text)
stackSummary_stackStatusReason :: (Maybe Text -> f (Maybe Text)) -> StackSummary -> f StackSummary
stackSummary_stackStatusReason = (StackSummary -> Maybe Text)
-> (StackSummary -> Maybe Text -> StackSummary)
-> Lens StackSummary StackSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe Text
stackStatusReason :: Maybe Text
$sel:stackStatusReason:StackSummary' :: StackSummary -> Maybe Text
stackStatusReason} -> Maybe Text
stackStatusReason) (\s :: StackSummary
s@StackSummary' {} Maybe Text
a -> StackSummary
s {$sel:stackStatusReason:StackSummary' :: Maybe Text
stackStatusReason = Maybe Text
a} :: StackSummary)

-- | The template description of the template used to create the stack.
stackSummary_templateDescription :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.Text)
stackSummary_templateDescription :: (Maybe Text -> f (Maybe Text)) -> StackSummary -> f StackSummary
stackSummary_templateDescription = (StackSummary -> Maybe Text)
-> (StackSummary -> Maybe Text -> StackSummary)
-> Lens StackSummary StackSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe Text
templateDescription :: Maybe Text
$sel:templateDescription:StackSummary' :: StackSummary -> Maybe Text
templateDescription} -> Maybe Text
templateDescription) (\s :: StackSummary
s@StackSummary' {} Maybe Text
a -> StackSummary
s {$sel:templateDescription:StackSummary' :: Maybe Text
templateDescription = Maybe Text
a} :: StackSummary)

-- | Summarizes information on whether a stack\'s actual configuration
-- differs, or has /drifted/, from it\'s expected configuration, as defined
-- in the stack template and any values specified as template parameters.
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html Detecting Unregulated Configuration Changes to Stacks and Resources>.
stackSummary_driftInformation :: Lens.Lens' StackSummary (Prelude.Maybe StackDriftInformationSummary)
stackSummary_driftInformation :: (Maybe StackDriftInformationSummary
 -> f (Maybe StackDriftInformationSummary))
-> StackSummary -> f StackSummary
stackSummary_driftInformation = (StackSummary -> Maybe StackDriftInformationSummary)
-> (StackSummary
    -> Maybe StackDriftInformationSummary -> StackSummary)
-> Lens
     StackSummary
     StackSummary
     (Maybe StackDriftInformationSummary)
     (Maybe StackDriftInformationSummary)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe StackDriftInformationSummary
driftInformation :: Maybe StackDriftInformationSummary
$sel:driftInformation:StackSummary' :: StackSummary -> Maybe StackDriftInformationSummary
driftInformation} -> Maybe StackDriftInformationSummary
driftInformation) (\s :: StackSummary
s@StackSummary' {} Maybe StackDriftInformationSummary
a -> StackSummary
s {$sel:driftInformation:StackSummary' :: Maybe StackDriftInformationSummary
driftInformation = Maybe StackDriftInformationSummary
a} :: StackSummary)

-- | The time the stack was deleted.
stackSummary_deletionTime :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.UTCTime)
stackSummary_deletionTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> StackSummary -> f StackSummary
stackSummary_deletionTime = (StackSummary -> Maybe ISO8601)
-> (StackSummary -> Maybe ISO8601 -> StackSummary)
-> Lens StackSummary StackSummary (Maybe ISO8601) (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe ISO8601
deletionTime :: Maybe ISO8601
$sel:deletionTime:StackSummary' :: StackSummary -> Maybe ISO8601
deletionTime} -> Maybe ISO8601
deletionTime) (\s :: StackSummary
s@StackSummary' {} Maybe ISO8601
a -> StackSummary
s {$sel:deletionTime:StackSummary' :: Maybe ISO8601
deletionTime = Maybe ISO8601
a} :: StackSummary) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> StackSummary -> f StackSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> StackSummary
-> f StackSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Unique stack identifier.
stackSummary_stackId :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.Text)
stackSummary_stackId :: (Maybe Text -> f (Maybe Text)) -> StackSummary -> f StackSummary
stackSummary_stackId = (StackSummary -> Maybe Text)
-> (StackSummary -> Maybe Text -> StackSummary)
-> Lens StackSummary StackSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe Text
stackId :: Maybe Text
$sel:stackId:StackSummary' :: StackSummary -> Maybe Text
stackId} -> Maybe Text
stackId) (\s :: StackSummary
s@StackSummary' {} Maybe Text
a -> StackSummary
s {$sel:stackId:StackSummary' :: Maybe Text
stackId = Maybe Text
a} :: StackSummary)

-- | For nested stacks--stacks created as resources for another stack--the
-- stack ID of the direct parent of this stack. For the first level of
-- nested stacks, the root stack is also the parent stack.
--
-- For more information, see
-- <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html Working with Nested Stacks>
-- in the /CloudFormation User Guide/.
stackSummary_parentId :: Lens.Lens' StackSummary (Prelude.Maybe Prelude.Text)
stackSummary_parentId :: (Maybe Text -> f (Maybe Text)) -> StackSummary -> f StackSummary
stackSummary_parentId = (StackSummary -> Maybe Text)
-> (StackSummary -> Maybe Text -> StackSummary)
-> Lens StackSummary StackSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Maybe Text
parentId :: Maybe Text
$sel:parentId:StackSummary' :: StackSummary -> Maybe Text
parentId} -> Maybe Text
parentId) (\s :: StackSummary
s@StackSummary' {} Maybe Text
a -> StackSummary
s {$sel:parentId:StackSummary' :: Maybe Text
parentId = Maybe Text
a} :: StackSummary)

-- | The name associated with the stack.
stackSummary_stackName :: Lens.Lens' StackSummary Prelude.Text
stackSummary_stackName :: (Text -> f Text) -> StackSummary -> f StackSummary
stackSummary_stackName = (StackSummary -> Text)
-> (StackSummary -> Text -> StackSummary)
-> Lens StackSummary StackSummary Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {Text
stackName :: Text
$sel:stackName:StackSummary' :: StackSummary -> Text
stackName} -> Text
stackName) (\s :: StackSummary
s@StackSummary' {} Text
a -> StackSummary
s {$sel:stackName:StackSummary' :: Text
stackName = Text
a} :: StackSummary)

-- | The time the stack was created.
stackSummary_creationTime :: Lens.Lens' StackSummary Prelude.UTCTime
stackSummary_creationTime :: (UTCTime -> f UTCTime) -> StackSummary -> f StackSummary
stackSummary_creationTime = (StackSummary -> ISO8601)
-> (StackSummary -> ISO8601 -> StackSummary)
-> Lens StackSummary StackSummary ISO8601 ISO8601
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {ISO8601
creationTime :: ISO8601
$sel:creationTime:StackSummary' :: StackSummary -> ISO8601
creationTime} -> ISO8601
creationTime) (\s :: StackSummary
s@StackSummary' {} ISO8601
a -> StackSummary
s {$sel:creationTime:StackSummary' :: ISO8601
creationTime = ISO8601
a} :: StackSummary) ((ISO8601 -> f ISO8601) -> StackSummary -> f StackSummary)
-> ((UTCTime -> f UTCTime) -> ISO8601 -> f ISO8601)
-> (UTCTime -> f UTCTime)
-> StackSummary
-> f StackSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (UTCTime -> f UTCTime) -> ISO8601 -> f ISO8601
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The current status of the stack.
stackSummary_stackStatus :: Lens.Lens' StackSummary StackStatus
stackSummary_stackStatus :: (StackStatus -> f StackStatus) -> StackSummary -> f StackSummary
stackSummary_stackStatus = (StackSummary -> StackStatus)
-> (StackSummary -> StackStatus -> StackSummary)
-> Lens StackSummary StackSummary StackStatus StackStatus
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StackSummary' {StackStatus
stackStatus :: StackStatus
$sel:stackStatus:StackSummary' :: StackSummary -> StackStatus
stackStatus} -> StackStatus
stackStatus) (\s :: StackSummary
s@StackSummary' {} StackStatus
a -> StackSummary
s {$sel:stackStatus:StackSummary' :: StackStatus
stackStatus = StackStatus
a} :: StackSummary)

instance Core.FromXML StackSummary where
  parseXML :: [Node] -> Either String StackSummary
parseXML [Node]
x =
    Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe StackDriftInformationSummary
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Text
-> ISO8601
-> StackStatus
-> StackSummary
StackSummary'
      (Maybe ISO8601
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe StackDriftInformationSummary
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> ISO8601
 -> StackStatus
 -> StackSummary)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe StackDriftInformationSummary
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> ISO8601
      -> StackStatus
      -> StackSummary)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"LastUpdatedTime")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe StackDriftInformationSummary
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> ISO8601
   -> StackStatus
   -> StackSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe StackDriftInformationSummary
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> ISO8601
      -> StackStatus
      -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"RootId")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe StackDriftInformationSummary
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> ISO8601
   -> StackStatus
   -> StackSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe StackDriftInformationSummary
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> ISO8601
      -> StackStatus
      -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StackStatusReason")
      Either
  String
  (Maybe Text
   -> Maybe StackDriftInformationSummary
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> ISO8601
   -> StackStatus
   -> StackSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe StackDriftInformationSummary
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> ISO8601
      -> StackStatus
      -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"TemplateDescription")
      Either
  String
  (Maybe StackDriftInformationSummary
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> ISO8601
   -> StackStatus
   -> StackSummary)
-> Either String (Maybe StackDriftInformationSummary)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> ISO8601
      -> StackStatus
      -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node]
-> Text -> Either String (Maybe StackDriftInformationSummary)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DriftInformation")
      Either
  String
  (Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> ISO8601
   -> StackStatus
   -> StackSummary)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Text
      -> Maybe Text -> Text -> ISO8601 -> StackStatus -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"DeletionTime")
      Either
  String
  (Maybe Text
   -> Maybe Text -> Text -> ISO8601 -> StackStatus -> StackSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text -> Text -> ISO8601 -> StackStatus -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StackId")
      Either
  String
  (Maybe Text -> Text -> ISO8601 -> StackStatus -> StackSummary)
-> Either String (Maybe Text)
-> Either String (Text -> ISO8601 -> StackStatus -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ParentId")
      Either String (Text -> ISO8601 -> StackStatus -> StackSummary)
-> Either String Text
-> Either String (ISO8601 -> StackStatus -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String Text
forall a. FromXML a => [Node] -> Text -> Either String a
Core..@ Text
"StackName")
      Either String (ISO8601 -> StackStatus -> StackSummary)
-> Either String ISO8601
-> Either String (StackStatus -> StackSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String ISO8601
forall a. FromXML a => [Node] -> Text -> Either String a
Core..@ Text
"CreationTime")
      Either String (StackStatus -> StackSummary)
-> Either String StackStatus -> Either String StackSummary
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String StackStatus
forall a. FromXML a => [Node] -> Text -> Either String a
Core..@ Text
"StackStatus")

instance Prelude.Hashable StackSummary

instance Prelude.NFData StackSummary