{-# 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 #-}
module Amazonka.EC2.Types.ExportTask 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.ExportTaskState
import Amazonka.EC2.Types.ExportToS3Task
import Amazonka.EC2.Types.InstanceExportDetails
import Amazonka.EC2.Types.Tag
import qualified Amazonka.Prelude as Prelude
data ExportTask = ExportTask'
{
ExportTask -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
ExportTask -> Text
description :: Prelude.Text,
ExportTask -> Text
exportTaskId :: Prelude.Text,
ExportTask -> ExportToS3Task
exportToS3Task :: ExportToS3Task,
ExportTask -> InstanceExportDetails
instanceExportDetails :: InstanceExportDetails,
ExportTask -> ExportTaskState
state :: ExportTaskState,
ExportTask -> Text
statusMessage :: Prelude.Text
}
deriving (ExportTask -> ExportTask -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExportTask -> ExportTask -> Bool
$c/= :: ExportTask -> ExportTask -> Bool
== :: ExportTask -> ExportTask -> Bool
$c== :: ExportTask -> ExportTask -> Bool
Prelude.Eq, ReadPrec [ExportTask]
ReadPrec ExportTask
Int -> ReadS ExportTask
ReadS [ExportTask]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ExportTask]
$creadListPrec :: ReadPrec [ExportTask]
readPrec :: ReadPrec ExportTask
$creadPrec :: ReadPrec ExportTask
readList :: ReadS [ExportTask]
$creadList :: ReadS [ExportTask]
readsPrec :: Int -> ReadS ExportTask
$creadsPrec :: Int -> ReadS ExportTask
Prelude.Read, Int -> ExportTask -> ShowS
[ExportTask] -> ShowS
ExportTask -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExportTask] -> ShowS
$cshowList :: [ExportTask] -> ShowS
show :: ExportTask -> String
$cshow :: ExportTask -> String
showsPrec :: Int -> ExportTask -> ShowS
$cshowsPrec :: Int -> ExportTask -> ShowS
Prelude.Show, forall x. Rep ExportTask x -> ExportTask
forall x. ExportTask -> Rep ExportTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ExportTask x -> ExportTask
$cfrom :: forall x. ExportTask -> Rep ExportTask x
Prelude.Generic)
newExportTask ::
Prelude.Text ->
Prelude.Text ->
ExportToS3Task ->
InstanceExportDetails ->
ExportTaskState ->
Prelude.Text ->
ExportTask
newExportTask :: Text
-> Text
-> ExportToS3Task
-> InstanceExportDetails
-> ExportTaskState
-> Text
-> ExportTask
newExportTask
Text
pDescription_
Text
pExportTaskId_
ExportToS3Task
pExportToS3Task_
InstanceExportDetails
pInstanceExportDetails_
ExportTaskState
pState_
Text
pStatusMessage_ =
ExportTask'
{ $sel:tags:ExportTask' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:description:ExportTask' :: Text
description = Text
pDescription_,
$sel:exportTaskId:ExportTask' :: Text
exportTaskId = Text
pExportTaskId_,
$sel:exportToS3Task:ExportTask' :: ExportToS3Task
exportToS3Task = ExportToS3Task
pExportToS3Task_,
$sel:instanceExportDetails:ExportTask' :: InstanceExportDetails
instanceExportDetails = InstanceExportDetails
pInstanceExportDetails_,
$sel:state:ExportTask' :: ExportTaskState
state = ExportTaskState
pState_,
$sel:statusMessage:ExportTask' :: Text
statusMessage = Text
pStatusMessage_
}
exportTask_tags :: Lens.Lens' ExportTask (Prelude.Maybe [Tag])
exportTask_tags :: Lens' ExportTask (Maybe [Tag])
exportTask_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:ExportTask' :: ExportTask -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: ExportTask
s@ExportTask' {} Maybe [Tag]
a -> ExportTask
s {$sel:tags:ExportTask' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: ExportTask) 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
exportTask_description :: Lens.Lens' ExportTask Prelude.Text
exportTask_description :: Lens' ExportTask Text
exportTask_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {Text
description :: Text
$sel:description:ExportTask' :: ExportTask -> Text
description} -> Text
description) (\s :: ExportTask
s@ExportTask' {} Text
a -> ExportTask
s {$sel:description:ExportTask' :: Text
description = Text
a} :: ExportTask)
exportTask_exportTaskId :: Lens.Lens' ExportTask Prelude.Text
exportTask_exportTaskId :: Lens' ExportTask Text
exportTask_exportTaskId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {Text
exportTaskId :: Text
$sel:exportTaskId:ExportTask' :: ExportTask -> Text
exportTaskId} -> Text
exportTaskId) (\s :: ExportTask
s@ExportTask' {} Text
a -> ExportTask
s {$sel:exportTaskId:ExportTask' :: Text
exportTaskId = Text
a} :: ExportTask)
exportTask_exportToS3Task :: Lens.Lens' ExportTask ExportToS3Task
exportTask_exportToS3Task :: Lens' ExportTask ExportToS3Task
exportTask_exportToS3Task = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {ExportToS3Task
exportToS3Task :: ExportToS3Task
$sel:exportToS3Task:ExportTask' :: ExportTask -> ExportToS3Task
exportToS3Task} -> ExportToS3Task
exportToS3Task) (\s :: ExportTask
s@ExportTask' {} ExportToS3Task
a -> ExportTask
s {$sel:exportToS3Task:ExportTask' :: ExportToS3Task
exportToS3Task = ExportToS3Task
a} :: ExportTask)
exportTask_instanceExportDetails :: Lens.Lens' ExportTask InstanceExportDetails
exportTask_instanceExportDetails :: Lens' ExportTask InstanceExportDetails
exportTask_instanceExportDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {InstanceExportDetails
instanceExportDetails :: InstanceExportDetails
$sel:instanceExportDetails:ExportTask' :: ExportTask -> InstanceExportDetails
instanceExportDetails} -> InstanceExportDetails
instanceExportDetails) (\s :: ExportTask
s@ExportTask' {} InstanceExportDetails
a -> ExportTask
s {$sel:instanceExportDetails:ExportTask' :: InstanceExportDetails
instanceExportDetails = InstanceExportDetails
a} :: ExportTask)
exportTask_state :: Lens.Lens' ExportTask ExportTaskState
exportTask_state :: Lens' ExportTask ExportTaskState
exportTask_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {ExportTaskState
state :: ExportTaskState
$sel:state:ExportTask' :: ExportTask -> ExportTaskState
state} -> ExportTaskState
state) (\s :: ExportTask
s@ExportTask' {} ExportTaskState
a -> ExportTask
s {$sel:state:ExportTask' :: ExportTaskState
state = ExportTaskState
a} :: ExportTask)
exportTask_statusMessage :: Lens.Lens' ExportTask Prelude.Text
exportTask_statusMessage :: Lens' ExportTask Text
exportTask_statusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportTask' {Text
statusMessage :: Text
$sel:statusMessage:ExportTask' :: ExportTask -> Text
statusMessage} -> Text
statusMessage) (\s :: ExportTask
s@ExportTask' {} Text
a -> ExportTask
s {$sel:statusMessage:ExportTask' :: Text
statusMessage = Text
a} :: ExportTask)
instance Data.FromXML ExportTask where
parseXML :: [Node] -> Either String ExportTask
parseXML [Node]
x =
Maybe [Tag]
-> Text
-> Text
-> ExportToS3Task
-> InstanceExportDetails
-> ExportTaskState
-> Text
-> ExportTask
ExportTask'
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
"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 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 a
Data..@ Text
"exportTaskId")
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
"exportToS3")
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
"instanceExport")
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
"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 a
Data..@ Text
"statusMessage")
instance Prelude.Hashable ExportTask where
hashWithSalt :: Int -> ExportTask -> Int
hashWithSalt Int
_salt ExportTask' {Maybe [Tag]
Text
ExportTaskState
ExportToS3Task
InstanceExportDetails
statusMessage :: Text
state :: ExportTaskState
instanceExportDetails :: InstanceExportDetails
exportToS3Task :: ExportToS3Task
exportTaskId :: Text
description :: Text
tags :: Maybe [Tag]
$sel:statusMessage:ExportTask' :: ExportTask -> Text
$sel:state:ExportTask' :: ExportTask -> ExportTaskState
$sel:instanceExportDetails:ExportTask' :: ExportTask -> InstanceExportDetails
$sel:exportToS3Task:ExportTask' :: ExportTask -> ExportToS3Task
$sel:exportTaskId:ExportTask' :: ExportTask -> Text
$sel:description:ExportTask' :: ExportTask -> Text
$sel:tags:ExportTask' :: ExportTask -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
exportTaskId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExportToS3Task
exportToS3Task
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` InstanceExportDetails
instanceExportDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExportTaskState
state
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
statusMessage
instance Prelude.NFData ExportTask where
rnf :: ExportTask -> ()
rnf ExportTask' {Maybe [Tag]
Text
ExportTaskState
ExportToS3Task
InstanceExportDetails
statusMessage :: Text
state :: ExportTaskState
instanceExportDetails :: InstanceExportDetails
exportToS3Task :: ExportToS3Task
exportTaskId :: Text
description :: Text
tags :: Maybe [Tag]
$sel:statusMessage:ExportTask' :: ExportTask -> Text
$sel:state:ExportTask' :: ExportTask -> ExportTaskState
$sel:instanceExportDetails:ExportTask' :: ExportTask -> InstanceExportDetails
$sel:exportToS3Task:ExportTask' :: ExportTask -> ExportToS3Task
$sel:exportTaskId:ExportTask' :: ExportTask -> Text
$sel:description:ExportTask' :: ExportTask -> Text
$sel:tags:ExportTask' :: ExportTask -> Maybe [Tag]
..} =
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 Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
exportTaskId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExportToS3Task
exportToS3Task
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf InstanceExportDetails
instanceExportDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExportTaskState
state
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
statusMessage