{-# 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.EC2.Types.DescribeFastSnapshotRestoreSuccessItem
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.EC2.Types.DescribeFastSnapshotRestoreSuccessItem where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Internal
import Amazonka.EC2.Types.FastSnapshotRestoreStateCode
import qualified Amazonka.Prelude as Prelude

-- | Describes fast snapshot restores for a snapshot.
--
-- /See:/ 'newDescribeFastSnapshotRestoreSuccessItem' smart constructor.
data DescribeFastSnapshotRestoreSuccessItem = DescribeFastSnapshotRestoreSuccessItem'
  { -- | The Availability Zone.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
    -- | The time at which fast snapshot restores entered the @disabled@ state.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
disabledTime :: Prelude.Maybe Data.ISO8601,
    -- | The time at which fast snapshot restores entered the @disabling@ state.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
disablingTime :: Prelude.Maybe Data.ISO8601,
    -- | The time at which fast snapshot restores entered the @enabled@ state.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
enabledTime :: Prelude.Maybe Data.ISO8601,
    -- | The time at which fast snapshot restores entered the @enabling@ state.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
enablingTime :: Prelude.Maybe Data.ISO8601,
    -- | The time at which fast snapshot restores entered the @optimizing@ state.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
optimizingTime :: Prelude.Maybe Data.ISO8601,
    -- | The Amazon Web Services owner alias that enabled fast snapshot restores
    -- on the snapshot. This is intended for future use.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
ownerAlias :: Prelude.Maybe Prelude.Text,
    -- | The ID of the Amazon Web Services account that enabled fast snapshot
    -- restores on the snapshot.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
ownerId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the snapshot.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
snapshotId :: Prelude.Maybe Prelude.Text,
    -- | The state of fast snapshot restores.
    DescribeFastSnapshotRestoreSuccessItem
-> Maybe FastSnapshotRestoreStateCode
state :: Prelude.Maybe FastSnapshotRestoreStateCode,
    -- | The reason for the state transition. The possible values are as follows:
    --
    -- -   @Client.UserInitiated@ - The state successfully transitioned to
    --     @enabling@ or @disabling@.
    --
    -- -   @Client.UserInitiated - Lifecycle state transition@ - The state
    --     successfully transitioned to @optimizing@, @enabled@, or @disabled@.
    DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
stateTransitionReason :: Prelude.Maybe Prelude.Text
  }
  deriving (DescribeFastSnapshotRestoreSuccessItem
-> DescribeFastSnapshotRestoreSuccessItem -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeFastSnapshotRestoreSuccessItem
-> DescribeFastSnapshotRestoreSuccessItem -> Bool
$c/= :: DescribeFastSnapshotRestoreSuccessItem
-> DescribeFastSnapshotRestoreSuccessItem -> Bool
== :: DescribeFastSnapshotRestoreSuccessItem
-> DescribeFastSnapshotRestoreSuccessItem -> Bool
$c== :: DescribeFastSnapshotRestoreSuccessItem
-> DescribeFastSnapshotRestoreSuccessItem -> Bool
Prelude.Eq, ReadPrec [DescribeFastSnapshotRestoreSuccessItem]
ReadPrec DescribeFastSnapshotRestoreSuccessItem
Int -> ReadS DescribeFastSnapshotRestoreSuccessItem
ReadS [DescribeFastSnapshotRestoreSuccessItem]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeFastSnapshotRestoreSuccessItem]
$creadListPrec :: ReadPrec [DescribeFastSnapshotRestoreSuccessItem]
readPrec :: ReadPrec DescribeFastSnapshotRestoreSuccessItem
$creadPrec :: ReadPrec DescribeFastSnapshotRestoreSuccessItem
readList :: ReadS [DescribeFastSnapshotRestoreSuccessItem]
$creadList :: ReadS [DescribeFastSnapshotRestoreSuccessItem]
readsPrec :: Int -> ReadS DescribeFastSnapshotRestoreSuccessItem
$creadsPrec :: Int -> ReadS DescribeFastSnapshotRestoreSuccessItem
Prelude.Read, Int -> DescribeFastSnapshotRestoreSuccessItem -> ShowS
[DescribeFastSnapshotRestoreSuccessItem] -> ShowS
DescribeFastSnapshotRestoreSuccessItem -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeFastSnapshotRestoreSuccessItem] -> ShowS
$cshowList :: [DescribeFastSnapshotRestoreSuccessItem] -> ShowS
show :: DescribeFastSnapshotRestoreSuccessItem -> String
$cshow :: DescribeFastSnapshotRestoreSuccessItem -> String
showsPrec :: Int -> DescribeFastSnapshotRestoreSuccessItem -> ShowS
$cshowsPrec :: Int -> DescribeFastSnapshotRestoreSuccessItem -> ShowS
Prelude.Show, forall x.
Rep DescribeFastSnapshotRestoreSuccessItem x
-> DescribeFastSnapshotRestoreSuccessItem
forall x.
DescribeFastSnapshotRestoreSuccessItem
-> Rep DescribeFastSnapshotRestoreSuccessItem x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeFastSnapshotRestoreSuccessItem x
-> DescribeFastSnapshotRestoreSuccessItem
$cfrom :: forall x.
DescribeFastSnapshotRestoreSuccessItem
-> Rep DescribeFastSnapshotRestoreSuccessItem x
Prelude.Generic)

-- |
-- Create a value of 'DescribeFastSnapshotRestoreSuccessItem' 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:
--
-- 'availabilityZone', 'describeFastSnapshotRestoreSuccessItem_availabilityZone' - The Availability Zone.
--
-- 'disabledTime', 'describeFastSnapshotRestoreSuccessItem_disabledTime' - The time at which fast snapshot restores entered the @disabled@ state.
--
-- 'disablingTime', 'describeFastSnapshotRestoreSuccessItem_disablingTime' - The time at which fast snapshot restores entered the @disabling@ state.
--
-- 'enabledTime', 'describeFastSnapshotRestoreSuccessItem_enabledTime' - The time at which fast snapshot restores entered the @enabled@ state.
--
-- 'enablingTime', 'describeFastSnapshotRestoreSuccessItem_enablingTime' - The time at which fast snapshot restores entered the @enabling@ state.
--
-- 'optimizingTime', 'describeFastSnapshotRestoreSuccessItem_optimizingTime' - The time at which fast snapshot restores entered the @optimizing@ state.
--
-- 'ownerAlias', 'describeFastSnapshotRestoreSuccessItem_ownerAlias' - The Amazon Web Services owner alias that enabled fast snapshot restores
-- on the snapshot. This is intended for future use.
--
-- 'ownerId', 'describeFastSnapshotRestoreSuccessItem_ownerId' - The ID of the Amazon Web Services account that enabled fast snapshot
-- restores on the snapshot.
--
-- 'snapshotId', 'describeFastSnapshotRestoreSuccessItem_snapshotId' - The ID of the snapshot.
--
-- 'state', 'describeFastSnapshotRestoreSuccessItem_state' - The state of fast snapshot restores.
--
-- 'stateTransitionReason', 'describeFastSnapshotRestoreSuccessItem_stateTransitionReason' - The reason for the state transition. The possible values are as follows:
--
-- -   @Client.UserInitiated@ - The state successfully transitioned to
--     @enabling@ or @disabling@.
--
-- -   @Client.UserInitiated - Lifecycle state transition@ - The state
--     successfully transitioned to @optimizing@, @enabled@, or @disabled@.
newDescribeFastSnapshotRestoreSuccessItem ::
  DescribeFastSnapshotRestoreSuccessItem
newDescribeFastSnapshotRestoreSuccessItem :: DescribeFastSnapshotRestoreSuccessItem
newDescribeFastSnapshotRestoreSuccessItem =
  DescribeFastSnapshotRestoreSuccessItem'
    { $sel:availabilityZone:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
availabilityZone =
        forall a. Maybe a
Prelude.Nothing,
      $sel:disabledTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
disabledTime = forall a. Maybe a
Prelude.Nothing,
      $sel:disablingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
disablingTime = forall a. Maybe a
Prelude.Nothing,
      $sel:enabledTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
enabledTime = forall a. Maybe a
Prelude.Nothing,
      $sel:enablingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
enablingTime = forall a. Maybe a
Prelude.Nothing,
      $sel:optimizingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
optimizingTime = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAlias:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
ownerAlias = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerId:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
ownerId = forall a. Maybe a
Prelude.Nothing,
      $sel:snapshotId:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
snapshotId = forall a. Maybe a
Prelude.Nothing,
      $sel:state:DescribeFastSnapshotRestoreSuccessItem' :: Maybe FastSnapshotRestoreStateCode
state = forall a. Maybe a
Prelude.Nothing,
      $sel:stateTransitionReason:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
stateTransitionReason =
        forall a. Maybe a
Prelude.Nothing
    }

-- | The Availability Zone.
describeFastSnapshotRestoreSuccessItem_availabilityZone :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.Text)
describeFastSnapshotRestoreSuccessItem_availabilityZone :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe Text)
describeFastSnapshotRestoreSuccessItem_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe Text
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:availabilityZone:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
availabilityZone = Maybe Text
a} :: DescribeFastSnapshotRestoreSuccessItem)

-- | The time at which fast snapshot restores entered the @disabled@ state.
describeFastSnapshotRestoreSuccessItem_disabledTime :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.UTCTime)
describeFastSnapshotRestoreSuccessItem_disabledTime :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe UTCTime)
describeFastSnapshotRestoreSuccessItem_disabledTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe ISO8601
disabledTime :: Maybe ISO8601
$sel:disabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
disabledTime} -> Maybe ISO8601
disabledTime) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe ISO8601
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:disabledTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
disabledTime = Maybe ISO8601
a} :: DescribeFastSnapshotRestoreSuccessItem) 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

-- | The time at which fast snapshot restores entered the @disabling@ state.
describeFastSnapshotRestoreSuccessItem_disablingTime :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.UTCTime)
describeFastSnapshotRestoreSuccessItem_disablingTime :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe UTCTime)
describeFastSnapshotRestoreSuccessItem_disablingTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe ISO8601
disablingTime :: Maybe ISO8601
$sel:disablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
disablingTime} -> Maybe ISO8601
disablingTime) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe ISO8601
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:disablingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
disablingTime = Maybe ISO8601
a} :: DescribeFastSnapshotRestoreSuccessItem) 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

-- | The time at which fast snapshot restores entered the @enabled@ state.
describeFastSnapshotRestoreSuccessItem_enabledTime :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.UTCTime)
describeFastSnapshotRestoreSuccessItem_enabledTime :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe UTCTime)
describeFastSnapshotRestoreSuccessItem_enabledTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe ISO8601
enabledTime :: Maybe ISO8601
$sel:enabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
enabledTime} -> Maybe ISO8601
enabledTime) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe ISO8601
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:enabledTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
enabledTime = Maybe ISO8601
a} :: DescribeFastSnapshotRestoreSuccessItem) 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

-- | The time at which fast snapshot restores entered the @enabling@ state.
describeFastSnapshotRestoreSuccessItem_enablingTime :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.UTCTime)
describeFastSnapshotRestoreSuccessItem_enablingTime :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe UTCTime)
describeFastSnapshotRestoreSuccessItem_enablingTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe ISO8601
enablingTime :: Maybe ISO8601
$sel:enablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
enablingTime} -> Maybe ISO8601
enablingTime) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe ISO8601
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:enablingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
enablingTime = Maybe ISO8601
a} :: DescribeFastSnapshotRestoreSuccessItem) 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

-- | The time at which fast snapshot restores entered the @optimizing@ state.
describeFastSnapshotRestoreSuccessItem_optimizingTime :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.UTCTime)
describeFastSnapshotRestoreSuccessItem_optimizingTime :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe UTCTime)
describeFastSnapshotRestoreSuccessItem_optimizingTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe ISO8601
optimizingTime :: Maybe ISO8601
$sel:optimizingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
optimizingTime} -> Maybe ISO8601
optimizingTime) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe ISO8601
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:optimizingTime:DescribeFastSnapshotRestoreSuccessItem' :: Maybe ISO8601
optimizingTime = Maybe ISO8601
a} :: DescribeFastSnapshotRestoreSuccessItem) 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

-- | The Amazon Web Services owner alias that enabled fast snapshot restores
-- on the snapshot. This is intended for future use.
describeFastSnapshotRestoreSuccessItem_ownerAlias :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.Text)
describeFastSnapshotRestoreSuccessItem_ownerAlias :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe Text)
describeFastSnapshotRestoreSuccessItem_ownerAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
ownerAlias :: Maybe Text
$sel:ownerAlias:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
ownerAlias} -> Maybe Text
ownerAlias) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe Text
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:ownerAlias:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
ownerAlias = Maybe Text
a} :: DescribeFastSnapshotRestoreSuccessItem)

-- | The ID of the Amazon Web Services account that enabled fast snapshot
-- restores on the snapshot.
describeFastSnapshotRestoreSuccessItem_ownerId :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.Text)
describeFastSnapshotRestoreSuccessItem_ownerId :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe Text)
describeFastSnapshotRestoreSuccessItem_ownerId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
ownerId :: Maybe Text
$sel:ownerId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
ownerId} -> Maybe Text
ownerId) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe Text
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:ownerId:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
ownerId = Maybe Text
a} :: DescribeFastSnapshotRestoreSuccessItem)

-- | The ID of the snapshot.
describeFastSnapshotRestoreSuccessItem_snapshotId :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.Text)
describeFastSnapshotRestoreSuccessItem_snapshotId :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe Text)
describeFastSnapshotRestoreSuccessItem_snapshotId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
snapshotId :: Maybe Text
$sel:snapshotId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
snapshotId} -> Maybe Text
snapshotId) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe Text
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:snapshotId:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
snapshotId = Maybe Text
a} :: DescribeFastSnapshotRestoreSuccessItem)

-- | The state of fast snapshot restores.
describeFastSnapshotRestoreSuccessItem_state :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe FastSnapshotRestoreStateCode)
describeFastSnapshotRestoreSuccessItem_state :: Lens'
  DescribeFastSnapshotRestoreSuccessItem
  (Maybe FastSnapshotRestoreStateCode)
describeFastSnapshotRestoreSuccessItem_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe FastSnapshotRestoreStateCode
state :: Maybe FastSnapshotRestoreStateCode
$sel:state:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem
-> Maybe FastSnapshotRestoreStateCode
state} -> Maybe FastSnapshotRestoreStateCode
state) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe FastSnapshotRestoreStateCode
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:state:DescribeFastSnapshotRestoreSuccessItem' :: Maybe FastSnapshotRestoreStateCode
state = Maybe FastSnapshotRestoreStateCode
a} :: DescribeFastSnapshotRestoreSuccessItem)

-- | The reason for the state transition. The possible values are as follows:
--
-- -   @Client.UserInitiated@ - The state successfully transitioned to
--     @enabling@ or @disabling@.
--
-- -   @Client.UserInitiated - Lifecycle state transition@ - The state
--     successfully transitioned to @optimizing@, @enabled@, or @disabled@.
describeFastSnapshotRestoreSuccessItem_stateTransitionReason :: Lens.Lens' DescribeFastSnapshotRestoreSuccessItem (Prelude.Maybe Prelude.Text)
describeFastSnapshotRestoreSuccessItem_stateTransitionReason :: Lens' DescribeFastSnapshotRestoreSuccessItem (Maybe Text)
describeFastSnapshotRestoreSuccessItem_stateTransitionReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
stateTransitionReason :: Maybe Text
$sel:stateTransitionReason:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
stateTransitionReason} -> Maybe Text
stateTransitionReason) (\s :: DescribeFastSnapshotRestoreSuccessItem
s@DescribeFastSnapshotRestoreSuccessItem' {} Maybe Text
a -> DescribeFastSnapshotRestoreSuccessItem
s {$sel:stateTransitionReason:DescribeFastSnapshotRestoreSuccessItem' :: Maybe Text
stateTransitionReason = Maybe Text
a} :: DescribeFastSnapshotRestoreSuccessItem)

instance
  Data.FromXML
    DescribeFastSnapshotRestoreSuccessItem
  where
  parseXML :: [Node] -> Either String DescribeFastSnapshotRestoreSuccessItem
parseXML [Node]
x =
    Maybe Text
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe FastSnapshotRestoreStateCode
-> Maybe Text
-> DescribeFastSnapshotRestoreSuccessItem
DescribeFastSnapshotRestoreSuccessItem'
      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
"availabilityZone")
      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
"disabledTime")
      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
"disablingTime")
      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
"enabledTime")
      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
"enablingTime")
      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
"optimizingTime")
      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
"ownerAlias")
      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
"ownerId")
      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
"snapshotId")
      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
"state")
      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
"stateTransitionReason")

instance
  Prelude.Hashable
    DescribeFastSnapshotRestoreSuccessItem
  where
  hashWithSalt :: Int -> DescribeFastSnapshotRestoreSuccessItem -> Int
hashWithSalt
    Int
_salt
    DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
Maybe ISO8601
Maybe FastSnapshotRestoreStateCode
stateTransitionReason :: Maybe Text
state :: Maybe FastSnapshotRestoreStateCode
snapshotId :: Maybe Text
ownerId :: Maybe Text
ownerAlias :: Maybe Text
optimizingTime :: Maybe ISO8601
enablingTime :: Maybe ISO8601
enabledTime :: Maybe ISO8601
disablingTime :: Maybe ISO8601
disabledTime :: Maybe ISO8601
availabilityZone :: Maybe Text
$sel:stateTransitionReason:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:state:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem
-> Maybe FastSnapshotRestoreStateCode
$sel:snapshotId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:ownerId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:ownerAlias:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:optimizingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:enablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:enabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:disablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:disabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:availabilityZone:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
availabilityZone
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
disabledTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
disablingTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
enabledTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
enablingTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ISO8601
optimizingTime
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAlias
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
snapshotId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FastSnapshotRestoreStateCode
state
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
stateTransitionReason

instance
  Prelude.NFData
    DescribeFastSnapshotRestoreSuccessItem
  where
  rnf :: DescribeFastSnapshotRestoreSuccessItem -> ()
rnf DescribeFastSnapshotRestoreSuccessItem' {Maybe Text
Maybe ISO8601
Maybe FastSnapshotRestoreStateCode
stateTransitionReason :: Maybe Text
state :: Maybe FastSnapshotRestoreStateCode
snapshotId :: Maybe Text
ownerId :: Maybe Text
ownerAlias :: Maybe Text
optimizingTime :: Maybe ISO8601
enablingTime :: Maybe ISO8601
enabledTime :: Maybe ISO8601
disablingTime :: Maybe ISO8601
disabledTime :: Maybe ISO8601
availabilityZone :: Maybe Text
$sel:stateTransitionReason:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:state:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem
-> Maybe FastSnapshotRestoreStateCode
$sel:snapshotId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:ownerId:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:ownerAlias:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
$sel:optimizingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:enablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:enabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:disablingTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:disabledTime:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe ISO8601
$sel:availabilityZone:DescribeFastSnapshotRestoreSuccessItem' :: DescribeFastSnapshotRestoreSuccessItem -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
availabilityZone
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
disabledTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
disablingTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
enabledTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
enablingTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
optimizingTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAlias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
snapshotId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FastSnapshotRestoreStateCode
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stateTransitionReason