{-# 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.InstanceStatus 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.InstanceState
import Amazonka.EC2.Types.InstanceStatusEvent
import Amazonka.EC2.Types.InstanceStatusSummary
import qualified Amazonka.Prelude as Prelude
data InstanceStatus = InstanceStatus'
{
InstanceStatus -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
InstanceStatus -> Maybe [InstanceStatusEvent]
events :: Prelude.Maybe [InstanceStatusEvent],
InstanceStatus -> Maybe Text
instanceId :: Prelude.Maybe Prelude.Text,
InstanceStatus -> Maybe InstanceState
instanceState :: Prelude.Maybe InstanceState,
InstanceStatus -> Maybe InstanceStatusSummary
instanceStatus :: Prelude.Maybe InstanceStatusSummary,
InstanceStatus -> Maybe Text
outpostArn :: Prelude.Maybe Prelude.Text,
InstanceStatus -> Maybe InstanceStatusSummary
systemStatus :: Prelude.Maybe InstanceStatusSummary
}
deriving (InstanceStatus -> InstanceStatus -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InstanceStatus -> InstanceStatus -> Bool
$c/= :: InstanceStatus -> InstanceStatus -> Bool
== :: InstanceStatus -> InstanceStatus -> Bool
$c== :: InstanceStatus -> InstanceStatus -> Bool
Prelude.Eq, ReadPrec [InstanceStatus]
ReadPrec InstanceStatus
Int -> ReadS InstanceStatus
ReadS [InstanceStatus]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InstanceStatus]
$creadListPrec :: ReadPrec [InstanceStatus]
readPrec :: ReadPrec InstanceStatus
$creadPrec :: ReadPrec InstanceStatus
readList :: ReadS [InstanceStatus]
$creadList :: ReadS [InstanceStatus]
readsPrec :: Int -> ReadS InstanceStatus
$creadsPrec :: Int -> ReadS InstanceStatus
Prelude.Read, Int -> InstanceStatus -> ShowS
[InstanceStatus] -> ShowS
InstanceStatus -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InstanceStatus] -> ShowS
$cshowList :: [InstanceStatus] -> ShowS
show :: InstanceStatus -> String
$cshow :: InstanceStatus -> String
showsPrec :: Int -> InstanceStatus -> ShowS
$cshowsPrec :: Int -> InstanceStatus -> ShowS
Prelude.Show, forall x. Rep InstanceStatus x -> InstanceStatus
forall x. InstanceStatus -> Rep InstanceStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InstanceStatus x -> InstanceStatus
$cfrom :: forall x. InstanceStatus -> Rep InstanceStatus x
Prelude.Generic)
newInstanceStatus ::
InstanceStatus
newInstanceStatus :: InstanceStatus
newInstanceStatus =
InstanceStatus'
{ $sel:availabilityZone:InstanceStatus' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
$sel:events:InstanceStatus' :: Maybe [InstanceStatusEvent]
events = forall a. Maybe a
Prelude.Nothing,
$sel:instanceId:InstanceStatus' :: Maybe Text
instanceId = forall a. Maybe a
Prelude.Nothing,
$sel:instanceState:InstanceStatus' :: Maybe InstanceState
instanceState = forall a. Maybe a
Prelude.Nothing,
$sel:instanceStatus:InstanceStatus' :: Maybe InstanceStatusSummary
instanceStatus = forall a. Maybe a
Prelude.Nothing,
$sel:outpostArn:InstanceStatus' :: Maybe Text
outpostArn = forall a. Maybe a
Prelude.Nothing,
$sel:systemStatus:InstanceStatus' :: Maybe InstanceStatusSummary
systemStatus = forall a. Maybe a
Prelude.Nothing
}
instanceStatus_availabilityZone :: Lens.Lens' InstanceStatus (Prelude.Maybe Prelude.Text)
instanceStatus_availabilityZone :: Lens' InstanceStatus (Maybe Text)
instanceStatus_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:InstanceStatus' :: InstanceStatus -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe Text
a -> InstanceStatus
s {$sel:availabilityZone:InstanceStatus' :: Maybe Text
availabilityZone = Maybe Text
a} :: InstanceStatus)
instanceStatus_events :: Lens.Lens' InstanceStatus (Prelude.Maybe [InstanceStatusEvent])
instanceStatus_events :: Lens' InstanceStatus (Maybe [InstanceStatusEvent])
instanceStatus_events = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe [InstanceStatusEvent]
events :: Maybe [InstanceStatusEvent]
$sel:events:InstanceStatus' :: InstanceStatus -> Maybe [InstanceStatusEvent]
events} -> Maybe [InstanceStatusEvent]
events) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe [InstanceStatusEvent]
a -> InstanceStatus
s {$sel:events:InstanceStatus' :: Maybe [InstanceStatusEvent]
events = Maybe [InstanceStatusEvent]
a} :: InstanceStatus) 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
instanceStatus_instanceId :: Lens.Lens' InstanceStatus (Prelude.Maybe Prelude.Text)
instanceStatus_instanceId :: Lens' InstanceStatus (Maybe Text)
instanceStatus_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe Text
instanceId :: Maybe Text
$sel:instanceId:InstanceStatus' :: InstanceStatus -> Maybe Text
instanceId} -> Maybe Text
instanceId) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe Text
a -> InstanceStatus
s {$sel:instanceId:InstanceStatus' :: Maybe Text
instanceId = Maybe Text
a} :: InstanceStatus)
instanceStatus_instanceState :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceState)
instanceStatus_instanceState :: Lens' InstanceStatus (Maybe InstanceState)
instanceStatus_instanceState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceState
instanceState :: Maybe InstanceState
$sel:instanceState:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
instanceState} -> Maybe InstanceState
instanceState) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceState
a -> InstanceStatus
s {$sel:instanceState:InstanceStatus' :: Maybe InstanceState
instanceState = Maybe InstanceState
a} :: InstanceStatus)
instanceStatus_instanceStatus :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceStatusSummary)
instanceStatus_instanceStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)
instanceStatus_instanceStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceStatusSummary
instanceStatus :: Maybe InstanceStatusSummary
$sel:instanceStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
instanceStatus} -> Maybe InstanceStatusSummary
instanceStatus) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceStatusSummary
a -> InstanceStatus
s {$sel:instanceStatus:InstanceStatus' :: Maybe InstanceStatusSummary
instanceStatus = Maybe InstanceStatusSummary
a} :: InstanceStatus)
instanceStatus_outpostArn :: Lens.Lens' InstanceStatus (Prelude.Maybe Prelude.Text)
instanceStatus_outpostArn :: Lens' InstanceStatus (Maybe Text)
instanceStatus_outpostArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe Text
outpostArn :: Maybe Text
$sel:outpostArn:InstanceStatus' :: InstanceStatus -> Maybe Text
outpostArn} -> Maybe Text
outpostArn) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe Text
a -> InstanceStatus
s {$sel:outpostArn:InstanceStatus' :: Maybe Text
outpostArn = Maybe Text
a} :: InstanceStatus)
instanceStatus_systemStatus :: Lens.Lens' InstanceStatus (Prelude.Maybe InstanceStatusSummary)
instanceStatus_systemStatus :: Lens' InstanceStatus (Maybe InstanceStatusSummary)
instanceStatus_systemStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InstanceStatus' {Maybe InstanceStatusSummary
systemStatus :: Maybe InstanceStatusSummary
$sel:systemStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
systemStatus} -> Maybe InstanceStatusSummary
systemStatus) (\s :: InstanceStatus
s@InstanceStatus' {} Maybe InstanceStatusSummary
a -> InstanceStatus
s {$sel:systemStatus:InstanceStatus' :: Maybe InstanceStatusSummary
systemStatus = Maybe InstanceStatusSummary
a} :: InstanceStatus)
instance Data.FromXML InstanceStatus where
parseXML :: [Node] -> Either String InstanceStatus
parseXML [Node]
x =
Maybe Text
-> Maybe [InstanceStatusEvent]
-> Maybe Text
-> Maybe InstanceState
-> Maybe InstanceStatusSummary
-> Maybe Text
-> Maybe InstanceStatusSummary
-> InstanceStatus
InstanceStatus'
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
"eventsSet"
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
"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
"instanceState")
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
"instanceStatus")
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
"outpostArn")
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
"systemStatus")
instance Prelude.Hashable InstanceStatus where
hashWithSalt :: Int -> InstanceStatus -> Int
hashWithSalt Int
_salt InstanceStatus' {Maybe [InstanceStatusEvent]
Maybe Text
Maybe InstanceState
Maybe InstanceStatusSummary
systemStatus :: Maybe InstanceStatusSummary
outpostArn :: Maybe Text
instanceStatus :: Maybe InstanceStatusSummary
instanceState :: Maybe InstanceState
instanceId :: Maybe Text
events :: Maybe [InstanceStatusEvent]
availabilityZone :: Maybe Text
$sel:systemStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
$sel:outpostArn:InstanceStatus' :: InstanceStatus -> Maybe Text
$sel:instanceStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
$sel:instanceState:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
$sel:instanceId:InstanceStatus' :: InstanceStatus -> Maybe Text
$sel:events:InstanceStatus' :: InstanceStatus -> Maybe [InstanceStatusEvent]
$sel:availabilityZone:InstanceStatus' :: InstanceStatus -> 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 [InstanceStatusEvent]
events
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
instanceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceState
instanceState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceStatusSummary
instanceStatus
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
outpostArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InstanceStatusSummary
systemStatus
instance Prelude.NFData InstanceStatus where
rnf :: InstanceStatus -> ()
rnf InstanceStatus' {Maybe [InstanceStatusEvent]
Maybe Text
Maybe InstanceState
Maybe InstanceStatusSummary
systemStatus :: Maybe InstanceStatusSummary
outpostArn :: Maybe Text
instanceStatus :: Maybe InstanceStatusSummary
instanceState :: Maybe InstanceState
instanceId :: Maybe Text
events :: Maybe [InstanceStatusEvent]
availabilityZone :: Maybe Text
$sel:systemStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
$sel:outpostArn:InstanceStatus' :: InstanceStatus -> Maybe Text
$sel:instanceStatus:InstanceStatus' :: InstanceStatus -> Maybe InstanceStatusSummary
$sel:instanceState:InstanceStatus' :: InstanceStatus -> Maybe InstanceState
$sel:instanceId:InstanceStatus' :: InstanceStatus -> Maybe Text
$sel:events:InstanceStatus' :: InstanceStatus -> Maybe [InstanceStatusEvent]
$sel:availabilityZone:InstanceStatus' :: InstanceStatus -> 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 [InstanceStatusEvent]
events
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 InstanceState
instanceState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceStatusSummary
instanceStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
outpostArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InstanceStatusSummary
systemStatus