{-# 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.Route53.Types.HealthCheckObservation where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.Route53.Internal
import Amazonka.Route53.Types.HealthCheckRegion
import Amazonka.Route53.Types.StatusReport
data HealthCheckObservation = HealthCheckObservation'
{
HealthCheckObservation -> Maybe Text
iPAddress :: Prelude.Maybe Prelude.Text,
HealthCheckObservation -> Maybe HealthCheckRegion
region :: Prelude.Maybe HealthCheckRegion,
HealthCheckObservation -> Maybe StatusReport
statusReport :: Prelude.Maybe StatusReport
}
deriving (HealthCheckObservation -> HealthCheckObservation -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HealthCheckObservation -> HealthCheckObservation -> Bool
$c/= :: HealthCheckObservation -> HealthCheckObservation -> Bool
== :: HealthCheckObservation -> HealthCheckObservation -> Bool
$c== :: HealthCheckObservation -> HealthCheckObservation -> Bool
Prelude.Eq, ReadPrec [HealthCheckObservation]
ReadPrec HealthCheckObservation
Int -> ReadS HealthCheckObservation
ReadS [HealthCheckObservation]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [HealthCheckObservation]
$creadListPrec :: ReadPrec [HealthCheckObservation]
readPrec :: ReadPrec HealthCheckObservation
$creadPrec :: ReadPrec HealthCheckObservation
readList :: ReadS [HealthCheckObservation]
$creadList :: ReadS [HealthCheckObservation]
readsPrec :: Int -> ReadS HealthCheckObservation
$creadsPrec :: Int -> ReadS HealthCheckObservation
Prelude.Read, Int -> HealthCheckObservation -> ShowS
[HealthCheckObservation] -> ShowS
HealthCheckObservation -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HealthCheckObservation] -> ShowS
$cshowList :: [HealthCheckObservation] -> ShowS
show :: HealthCheckObservation -> String
$cshow :: HealthCheckObservation -> String
showsPrec :: Int -> HealthCheckObservation -> ShowS
$cshowsPrec :: Int -> HealthCheckObservation -> ShowS
Prelude.Show, forall x. Rep HealthCheckObservation x -> HealthCheckObservation
forall x. HealthCheckObservation -> Rep HealthCheckObservation x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HealthCheckObservation x -> HealthCheckObservation
$cfrom :: forall x. HealthCheckObservation -> Rep HealthCheckObservation x
Prelude.Generic)
newHealthCheckObservation ::
HealthCheckObservation
newHealthCheckObservation :: HealthCheckObservation
newHealthCheckObservation =
HealthCheckObservation'
{ $sel:iPAddress:HealthCheckObservation' :: Maybe Text
iPAddress =
forall a. Maybe a
Prelude.Nothing,
$sel:region:HealthCheckObservation' :: Maybe HealthCheckRegion
region = forall a. Maybe a
Prelude.Nothing,
$sel:statusReport:HealthCheckObservation' :: Maybe StatusReport
statusReport = forall a. Maybe a
Prelude.Nothing
}
healthCheckObservation_iPAddress :: Lens.Lens' HealthCheckObservation (Prelude.Maybe Prelude.Text)
healthCheckObservation_iPAddress :: Lens' HealthCheckObservation (Maybe Text)
healthCheckObservation_iPAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HealthCheckObservation' {Maybe Text
iPAddress :: Maybe Text
$sel:iPAddress:HealthCheckObservation' :: HealthCheckObservation -> Maybe Text
iPAddress} -> Maybe Text
iPAddress) (\s :: HealthCheckObservation
s@HealthCheckObservation' {} Maybe Text
a -> HealthCheckObservation
s {$sel:iPAddress:HealthCheckObservation' :: Maybe Text
iPAddress = Maybe Text
a} :: HealthCheckObservation)
healthCheckObservation_region :: Lens.Lens' HealthCheckObservation (Prelude.Maybe HealthCheckRegion)
healthCheckObservation_region :: Lens' HealthCheckObservation (Maybe HealthCheckRegion)
healthCheckObservation_region = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HealthCheckObservation' {Maybe HealthCheckRegion
region :: Maybe HealthCheckRegion
$sel:region:HealthCheckObservation' :: HealthCheckObservation -> Maybe HealthCheckRegion
region} -> Maybe HealthCheckRegion
region) (\s :: HealthCheckObservation
s@HealthCheckObservation' {} Maybe HealthCheckRegion
a -> HealthCheckObservation
s {$sel:region:HealthCheckObservation' :: Maybe HealthCheckRegion
region = Maybe HealthCheckRegion
a} :: HealthCheckObservation)
healthCheckObservation_statusReport :: Lens.Lens' HealthCheckObservation (Prelude.Maybe StatusReport)
healthCheckObservation_statusReport :: Lens' HealthCheckObservation (Maybe StatusReport)
healthCheckObservation_statusReport = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HealthCheckObservation' {Maybe StatusReport
statusReport :: Maybe StatusReport
$sel:statusReport:HealthCheckObservation' :: HealthCheckObservation -> Maybe StatusReport
statusReport} -> Maybe StatusReport
statusReport) (\s :: HealthCheckObservation
s@HealthCheckObservation' {} Maybe StatusReport
a -> HealthCheckObservation
s {$sel:statusReport:HealthCheckObservation' :: Maybe StatusReport
statusReport = Maybe StatusReport
a} :: HealthCheckObservation)
instance Data.FromXML HealthCheckObservation where
parseXML :: [Node] -> Either String HealthCheckObservation
parseXML [Node]
x =
Maybe Text
-> Maybe HealthCheckRegion
-> Maybe StatusReport
-> HealthCheckObservation
HealthCheckObservation'
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
"IPAddress")
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
"Region")
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
"StatusReport")
instance Prelude.Hashable HealthCheckObservation where
hashWithSalt :: Int -> HealthCheckObservation -> Int
hashWithSalt Int
_salt HealthCheckObservation' {Maybe Text
Maybe HealthCheckRegion
Maybe StatusReport
statusReport :: Maybe StatusReport
region :: Maybe HealthCheckRegion
iPAddress :: Maybe Text
$sel:statusReport:HealthCheckObservation' :: HealthCheckObservation -> Maybe StatusReport
$sel:region:HealthCheckObservation' :: HealthCheckObservation -> Maybe HealthCheckRegion
$sel:iPAddress:HealthCheckObservation' :: HealthCheckObservation -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
iPAddress
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HealthCheckRegion
region
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StatusReport
statusReport
instance Prelude.NFData HealthCheckObservation where
rnf :: HealthCheckObservation -> ()
rnf HealthCheckObservation' {Maybe Text
Maybe HealthCheckRegion
Maybe StatusReport
statusReport :: Maybe StatusReport
region :: Maybe HealthCheckRegion
iPAddress :: Maybe Text
$sel:statusReport:HealthCheckObservation' :: HealthCheckObservation -> Maybe StatusReport
$sel:region:HealthCheckObservation' :: HealthCheckObservation -> Maybe HealthCheckRegion
$sel:iPAddress:HealthCheckObservation' :: HealthCheckObservation -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
iPAddress
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HealthCheckRegion
region
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StatusReport
statusReport