{-# 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.ReplaceRootVolumeTask
-- 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.ReplaceRootVolumeTask 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.ReplaceRootVolumeTaskState
import Amazonka.EC2.Types.Tag
import qualified Amazonka.Prelude as Prelude

-- | Information about a root volume replacement task.
--
-- /See:/ 'newReplaceRootVolumeTask' smart constructor.
data ReplaceRootVolumeTask = ReplaceRootVolumeTask'
  { -- | The time the task completed.
    ReplaceRootVolumeTask -> Maybe Text
completeTime :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the original root volume is to be deleted after the
    -- root volume replacement task completes.
    ReplaceRootVolumeTask -> Maybe Bool
deleteReplacedRootVolume :: Prelude.Maybe Prelude.Bool,
    -- | The ID of the AMI used to create the replacement root volume.
    ReplaceRootVolumeTask -> Maybe Text
imageId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the instance for which the root volume replacement task was
    -- created.
    ReplaceRootVolumeTask -> Maybe Text
instanceId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the root volume replacement task.
    ReplaceRootVolumeTask -> Maybe Text
replaceRootVolumeTaskId :: Prelude.Maybe Prelude.Text,
    -- | The ID of the snapshot used to create the replacement root volume.
    ReplaceRootVolumeTask -> Maybe Text
snapshotId :: Prelude.Maybe Prelude.Text,
    -- | The time the task was started.
    ReplaceRootVolumeTask -> Maybe Text
startTime :: Prelude.Maybe Prelude.Text,
    -- | The tags assigned to the task.
    ReplaceRootVolumeTask -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The state of the task. The task can be in one of the following states:
    --
    -- -   @pending@ - the replacement volume is being created.
    --
    -- -   @in-progress@ - the original volume is being detached and the
    --     replacement volume is being attached.
    --
    -- -   @succeeded@ - the replacement volume has been successfully attached
    --     to the instance and the instance is available.
    --
    -- -   @failing@ - the replacement task is in the process of failing.
    --
    -- -   @failed@ - the replacement task has failed but the original root
    --     volume is still attached.
    --
    -- -   @failing-detached@ - the replacement task is in the process of
    --     failing. The instance might have no root volume attached.
    --
    -- -   @failed-detached@ - the replacement task has failed and the instance
    --     has no root volume attached.
    ReplaceRootVolumeTask -> Maybe ReplaceRootVolumeTaskState
taskState :: Prelude.Maybe ReplaceRootVolumeTaskState
  }
  deriving (ReplaceRootVolumeTask -> ReplaceRootVolumeTask -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReplaceRootVolumeTask -> ReplaceRootVolumeTask -> Bool
$c/= :: ReplaceRootVolumeTask -> ReplaceRootVolumeTask -> Bool
== :: ReplaceRootVolumeTask -> ReplaceRootVolumeTask -> Bool
$c== :: ReplaceRootVolumeTask -> ReplaceRootVolumeTask -> Bool
Prelude.Eq, ReadPrec [ReplaceRootVolumeTask]
ReadPrec ReplaceRootVolumeTask
Int -> ReadS ReplaceRootVolumeTask
ReadS [ReplaceRootVolumeTask]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReplaceRootVolumeTask]
$creadListPrec :: ReadPrec [ReplaceRootVolumeTask]
readPrec :: ReadPrec ReplaceRootVolumeTask
$creadPrec :: ReadPrec ReplaceRootVolumeTask
readList :: ReadS [ReplaceRootVolumeTask]
$creadList :: ReadS [ReplaceRootVolumeTask]
readsPrec :: Int -> ReadS ReplaceRootVolumeTask
$creadsPrec :: Int -> ReadS ReplaceRootVolumeTask
Prelude.Read, Int -> ReplaceRootVolumeTask -> ShowS
[ReplaceRootVolumeTask] -> ShowS
ReplaceRootVolumeTask -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReplaceRootVolumeTask] -> ShowS
$cshowList :: [ReplaceRootVolumeTask] -> ShowS
show :: ReplaceRootVolumeTask -> String
$cshow :: ReplaceRootVolumeTask -> String
showsPrec :: Int -> ReplaceRootVolumeTask -> ShowS
$cshowsPrec :: Int -> ReplaceRootVolumeTask -> ShowS
Prelude.Show, forall x. Rep ReplaceRootVolumeTask x -> ReplaceRootVolumeTask
forall x. ReplaceRootVolumeTask -> Rep ReplaceRootVolumeTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReplaceRootVolumeTask x -> ReplaceRootVolumeTask
$cfrom :: forall x. ReplaceRootVolumeTask -> Rep ReplaceRootVolumeTask x
Prelude.Generic)

-- |
-- Create a value of 'ReplaceRootVolumeTask' 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:
--
-- 'completeTime', 'replaceRootVolumeTask_completeTime' - The time the task completed.
--
-- 'deleteReplacedRootVolume', 'replaceRootVolumeTask_deleteReplacedRootVolume' - Indicates whether the original root volume is to be deleted after the
-- root volume replacement task completes.
--
-- 'imageId', 'replaceRootVolumeTask_imageId' - The ID of the AMI used to create the replacement root volume.
--
-- 'instanceId', 'replaceRootVolumeTask_instanceId' - The ID of the instance for which the root volume replacement task was
-- created.
--
-- 'replaceRootVolumeTaskId', 'replaceRootVolumeTask_replaceRootVolumeTaskId' - The ID of the root volume replacement task.
--
-- 'snapshotId', 'replaceRootVolumeTask_snapshotId' - The ID of the snapshot used to create the replacement root volume.
--
-- 'startTime', 'replaceRootVolumeTask_startTime' - The time the task was started.
--
-- 'tags', 'replaceRootVolumeTask_tags' - The tags assigned to the task.
--
-- 'taskState', 'replaceRootVolumeTask_taskState' - The state of the task. The task can be in one of the following states:
--
-- -   @pending@ - the replacement volume is being created.
--
-- -   @in-progress@ - the original volume is being detached and the
--     replacement volume is being attached.
--
-- -   @succeeded@ - the replacement volume has been successfully attached
--     to the instance and the instance is available.
--
-- -   @failing@ - the replacement task is in the process of failing.
--
-- -   @failed@ - the replacement task has failed but the original root
--     volume is still attached.
--
-- -   @failing-detached@ - the replacement task is in the process of
--     failing. The instance might have no root volume attached.
--
-- -   @failed-detached@ - the replacement task has failed and the instance
--     has no root volume attached.
newReplaceRootVolumeTask ::
  ReplaceRootVolumeTask
newReplaceRootVolumeTask :: ReplaceRootVolumeTask
newReplaceRootVolumeTask =
  ReplaceRootVolumeTask'
    { $sel:completeTime:ReplaceRootVolumeTask' :: Maybe Text
completeTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:deleteReplacedRootVolume:ReplaceRootVolumeTask' :: Maybe Bool
deleteReplacedRootVolume = forall a. Maybe a
Prelude.Nothing,
      $sel:imageId:ReplaceRootVolumeTask' :: Maybe Text
imageId = forall a. Maybe a
Prelude.Nothing,
      $sel:instanceId:ReplaceRootVolumeTask' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
      $sel:replaceRootVolumeTaskId:ReplaceRootVolumeTask' :: Maybe Text
replaceRootVolumeTaskId = forall a. Maybe a
Prelude.Nothing,
      $sel:snapshotId:ReplaceRootVolumeTask' :: Maybe Text
snapshotId = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:ReplaceRootVolumeTask' :: Maybe Text
startTime = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ReplaceRootVolumeTask' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:taskState:ReplaceRootVolumeTask' :: Maybe ReplaceRootVolumeTaskState
taskState = forall a. Maybe a
Prelude.Nothing
    }

-- | The time the task completed.
replaceRootVolumeTask_completeTime :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_completeTime :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_completeTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
completeTime :: Maybe Text
$sel:completeTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
completeTime} -> Maybe Text
completeTime) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:completeTime:ReplaceRootVolumeTask' :: Maybe Text
completeTime = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | Indicates whether the original root volume is to be deleted after the
-- root volume replacement task completes.
replaceRootVolumeTask_deleteReplacedRootVolume :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Bool)
replaceRootVolumeTask_deleteReplacedRootVolume :: Lens' ReplaceRootVolumeTask (Maybe Bool)
replaceRootVolumeTask_deleteReplacedRootVolume = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Bool
deleteReplacedRootVolume :: Maybe Bool
$sel:deleteReplacedRootVolume:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Bool
deleteReplacedRootVolume} -> Maybe Bool
deleteReplacedRootVolume) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Bool
a -> ReplaceRootVolumeTask
s {$sel:deleteReplacedRootVolume:ReplaceRootVolumeTask' :: Maybe Bool
deleteReplacedRootVolume = Maybe Bool
a} :: ReplaceRootVolumeTask)

-- | The ID of the AMI used to create the replacement root volume.
replaceRootVolumeTask_imageId :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_imageId :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
imageId :: Maybe Text
$sel:imageId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
imageId} -> Maybe Text
imageId) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:imageId:ReplaceRootVolumeTask' :: Maybe Text
imageId = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | The ID of the instance for which the root volume replacement task was
-- created.
replaceRootVolumeTask_instanceId :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_instanceId :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
instanceId :: Maybe Text
$sel:instanceId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
instanceId} -> Maybe Text
instanceId) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:instanceId:ReplaceRootVolumeTask' :: Maybe Text
instanceId = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | The ID of the root volume replacement task.
replaceRootVolumeTask_replaceRootVolumeTaskId :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_replaceRootVolumeTaskId :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_replaceRootVolumeTaskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
replaceRootVolumeTaskId :: Maybe Text
$sel:replaceRootVolumeTaskId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
replaceRootVolumeTaskId} -> Maybe Text
replaceRootVolumeTaskId) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:replaceRootVolumeTaskId:ReplaceRootVolumeTask' :: Maybe Text
replaceRootVolumeTaskId = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | The ID of the snapshot used to create the replacement root volume.
replaceRootVolumeTask_snapshotId :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_snapshotId :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_snapshotId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
snapshotId :: Maybe Text
$sel:snapshotId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
snapshotId} -> Maybe Text
snapshotId) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:snapshotId:ReplaceRootVolumeTask' :: Maybe Text
snapshotId = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | The time the task was started.
replaceRootVolumeTask_startTime :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe Prelude.Text)
replaceRootVolumeTask_startTime :: Lens' ReplaceRootVolumeTask (Maybe Text)
replaceRootVolumeTask_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe Text
startTime :: Maybe Text
$sel:startTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
startTime} -> Maybe Text
startTime) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe Text
a -> ReplaceRootVolumeTask
s {$sel:startTime:ReplaceRootVolumeTask' :: Maybe Text
startTime = Maybe Text
a} :: ReplaceRootVolumeTask)

-- | The tags assigned to the task.
replaceRootVolumeTask_tags :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe [Tag])
replaceRootVolumeTask_tags :: Lens' ReplaceRootVolumeTask (Maybe [Tag])
replaceRootVolumeTask_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe [Tag]
a -> ReplaceRootVolumeTask
s {$sel:tags:ReplaceRootVolumeTask' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: ReplaceRootVolumeTask) 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 state of the task. The task can be in one of the following states:
--
-- -   @pending@ - the replacement volume is being created.
--
-- -   @in-progress@ - the original volume is being detached and the
--     replacement volume is being attached.
--
-- -   @succeeded@ - the replacement volume has been successfully attached
--     to the instance and the instance is available.
--
-- -   @failing@ - the replacement task is in the process of failing.
--
-- -   @failed@ - the replacement task has failed but the original root
--     volume is still attached.
--
-- -   @failing-detached@ - the replacement task is in the process of
--     failing. The instance might have no root volume attached.
--
-- -   @failed-detached@ - the replacement task has failed and the instance
--     has no root volume attached.
replaceRootVolumeTask_taskState :: Lens.Lens' ReplaceRootVolumeTask (Prelude.Maybe ReplaceRootVolumeTaskState)
replaceRootVolumeTask_taskState :: Lens' ReplaceRootVolumeTask (Maybe ReplaceRootVolumeTaskState)
replaceRootVolumeTask_taskState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReplaceRootVolumeTask' {Maybe ReplaceRootVolumeTaskState
taskState :: Maybe ReplaceRootVolumeTaskState
$sel:taskState:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe ReplaceRootVolumeTaskState
taskState} -> Maybe ReplaceRootVolumeTaskState
taskState) (\s :: ReplaceRootVolumeTask
s@ReplaceRootVolumeTask' {} Maybe ReplaceRootVolumeTaskState
a -> ReplaceRootVolumeTask
s {$sel:taskState:ReplaceRootVolumeTask' :: Maybe ReplaceRootVolumeTaskState
taskState = Maybe ReplaceRootVolumeTaskState
a} :: ReplaceRootVolumeTask)

instance Data.FromXML ReplaceRootVolumeTask where
  parseXML :: [Node] -> Either String ReplaceRootVolumeTask
parseXML [Node]
x =
    Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Tag]
-> Maybe ReplaceRootVolumeTaskState
-> ReplaceRootVolumeTask
ReplaceRootVolumeTask'
      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
"completeTime")
      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
"deleteReplacedRootVolume")
      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
"imageId")
      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
"instanceId")
      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
"replaceRootVolumeTaskId")
      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
"startTime")
      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
"tagSet"
                      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
"item")
                  )
      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
"taskState")

instance Prelude.Hashable ReplaceRootVolumeTask where
  hashWithSalt :: Int -> ReplaceRootVolumeTask -> Int
hashWithSalt Int
_salt ReplaceRootVolumeTask' {Maybe Bool
Maybe [Tag]
Maybe Text
Maybe ReplaceRootVolumeTaskState
taskState :: Maybe ReplaceRootVolumeTaskState
tags :: Maybe [Tag]
startTime :: Maybe Text
snapshotId :: Maybe Text
replaceRootVolumeTaskId :: Maybe Text
instanceId :: Maybe Text
imageId :: Maybe Text
deleteReplacedRootVolume :: Maybe Bool
completeTime :: Maybe Text
$sel:taskState:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe ReplaceRootVolumeTaskState
$sel:tags:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe [Tag]
$sel:startTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:snapshotId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:replaceRootVolumeTaskId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:instanceId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:imageId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:deleteReplacedRootVolume:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Bool
$sel:completeTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
completeTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
deleteReplacedRootVolume
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
imageId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
instanceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
replaceRootVolumeTaskId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
snapshotId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ReplaceRootVolumeTaskState
taskState

instance Prelude.NFData ReplaceRootVolumeTask where
  rnf :: ReplaceRootVolumeTask -> ()
rnf ReplaceRootVolumeTask' {Maybe Bool
Maybe [Tag]
Maybe Text
Maybe ReplaceRootVolumeTaskState
taskState :: Maybe ReplaceRootVolumeTaskState
tags :: Maybe [Tag]
startTime :: Maybe Text
snapshotId :: Maybe Text
replaceRootVolumeTaskId :: Maybe Text
instanceId :: Maybe Text
imageId :: Maybe Text
deleteReplacedRootVolume :: Maybe Bool
completeTime :: Maybe Text
$sel:taskState:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe ReplaceRootVolumeTaskState
$sel:tags:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe [Tag]
$sel:startTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:snapshotId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:replaceRootVolumeTaskId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:instanceId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:imageId:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
$sel:deleteReplacedRootVolume:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Bool
$sel:completeTime:ReplaceRootVolumeTask' :: ReplaceRootVolumeTask -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
completeTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
deleteReplacedRootVolume
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
imageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
instanceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
replaceRootVolumeTaskId
      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 Text
startTime
      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 Maybe ReplaceRootVolumeTaskState
taskState