{-# 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.AWSHealth.Types.Event where
import Amazonka.AWSHealth.Types.EventScopeCode
import Amazonka.AWSHealth.Types.EventStatusCode
import Amazonka.AWSHealth.Types.EventTypeCategory
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
data Event = Event'
{
Event -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
Event -> Maybe Text
availabilityZone :: Prelude.Maybe Prelude.Text,
Event -> Maybe POSIX
endTime :: Prelude.Maybe Data.POSIX,
Event -> Maybe EventScopeCode
eventScopeCode :: Prelude.Maybe EventScopeCode,
Event -> Maybe EventTypeCategory
eventTypeCategory :: Prelude.Maybe EventTypeCategory,
Event -> Maybe Text
eventTypeCode :: Prelude.Maybe Prelude.Text,
Event -> Maybe POSIX
lastUpdatedTime :: Prelude.Maybe Data.POSIX,
Event -> Maybe Text
region :: Prelude.Maybe Prelude.Text,
Event -> Maybe Text
service :: Prelude.Maybe Prelude.Text,
Event -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
Event -> Maybe EventStatusCode
statusCode :: Prelude.Maybe EventStatusCode
}
deriving (Event -> Event -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Event -> Event -> Bool
$c/= :: Event -> Event -> Bool
== :: Event -> Event -> Bool
$c== :: Event -> Event -> Bool
Prelude.Eq, ReadPrec [Event]
ReadPrec Event
Int -> ReadS Event
ReadS [Event]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Event]
$creadListPrec :: ReadPrec [Event]
readPrec :: ReadPrec Event
$creadPrec :: ReadPrec Event
readList :: ReadS [Event]
$creadList :: ReadS [Event]
readsPrec :: Int -> ReadS Event
$creadsPrec :: Int -> ReadS Event
Prelude.Read, Int -> Event -> ShowS
[Event] -> ShowS
Event -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Event] -> ShowS
$cshowList :: [Event] -> ShowS
show :: Event -> String
$cshow :: Event -> String
showsPrec :: Int -> Event -> ShowS
$cshowsPrec :: Int -> Event -> ShowS
Prelude.Show, forall x. Rep Event x -> Event
forall x. Event -> Rep Event x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Event x -> Event
$cfrom :: forall x. Event -> Rep Event x
Prelude.Generic)
newEvent ::
Event
newEvent :: Event
newEvent =
Event'
{ $sel:arn:Event' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:availabilityZone:Event' :: Maybe Text
availabilityZone = forall a. Maybe a
Prelude.Nothing,
$sel:endTime:Event' :: Maybe POSIX
endTime = forall a. Maybe a
Prelude.Nothing,
$sel:eventScopeCode:Event' :: Maybe EventScopeCode
eventScopeCode = forall a. Maybe a
Prelude.Nothing,
$sel:eventTypeCategory:Event' :: Maybe EventTypeCategory
eventTypeCategory = forall a. Maybe a
Prelude.Nothing,
$sel:eventTypeCode:Event' :: Maybe Text
eventTypeCode = forall a. Maybe a
Prelude.Nothing,
$sel:lastUpdatedTime:Event' :: Maybe POSIX
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
$sel:region:Event' :: Maybe Text
region = forall a. Maybe a
Prelude.Nothing,
$sel:service:Event' :: Maybe Text
service = forall a. Maybe a
Prelude.Nothing,
$sel:startTime:Event' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
$sel:statusCode:Event' :: Maybe EventStatusCode
statusCode = forall a. Maybe a
Prelude.Nothing
}
event_arn :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)
event_arn :: Lens' Event (Maybe Text)
event_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe Text
arn :: Maybe Text
$sel:arn:Event' :: Event -> Maybe Text
arn} -> Maybe Text
arn) (\s :: Event
s@Event' {} Maybe Text
a -> Event
s {$sel:arn:Event' :: Maybe Text
arn = Maybe Text
a} :: Event)
event_availabilityZone :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)
event_availabilityZone :: Lens' Event (Maybe Text)
event_availabilityZone = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe Text
availabilityZone :: Maybe Text
$sel:availabilityZone:Event' :: Event -> Maybe Text
availabilityZone} -> Maybe Text
availabilityZone) (\s :: Event
s@Event' {} Maybe Text
a -> Event
s {$sel:availabilityZone:Event' :: Maybe Text
availabilityZone = Maybe Text
a} :: Event)
event_endTime :: Lens.Lens' Event (Prelude.Maybe Prelude.UTCTime)
event_endTime :: Lens' Event (Maybe UTCTime)
event_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:Event' :: Event -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: Event
s@Event' {} Maybe POSIX
a -> Event
s {$sel:endTime:Event' :: Maybe POSIX
endTime = Maybe POSIX
a} :: Event) 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
event_eventScopeCode :: Lens.Lens' Event (Prelude.Maybe EventScopeCode)
event_eventScopeCode :: Lens' Event (Maybe EventScopeCode)
event_eventScopeCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe EventScopeCode
eventScopeCode :: Maybe EventScopeCode
$sel:eventScopeCode:Event' :: Event -> Maybe EventScopeCode
eventScopeCode} -> Maybe EventScopeCode
eventScopeCode) (\s :: Event
s@Event' {} Maybe EventScopeCode
a -> Event
s {$sel:eventScopeCode:Event' :: Maybe EventScopeCode
eventScopeCode = Maybe EventScopeCode
a} :: Event)
event_eventTypeCategory :: Lens.Lens' Event (Prelude.Maybe EventTypeCategory)
event_eventTypeCategory :: Lens' Event (Maybe EventTypeCategory)
event_eventTypeCategory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe EventTypeCategory
eventTypeCategory :: Maybe EventTypeCategory
$sel:eventTypeCategory:Event' :: Event -> Maybe EventTypeCategory
eventTypeCategory} -> Maybe EventTypeCategory
eventTypeCategory) (\s :: Event
s@Event' {} Maybe EventTypeCategory
a -> Event
s {$sel:eventTypeCategory:Event' :: Maybe EventTypeCategory
eventTypeCategory = Maybe EventTypeCategory
a} :: Event)
event_eventTypeCode :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)
event_eventTypeCode :: Lens' Event (Maybe Text)
event_eventTypeCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe Text
eventTypeCode :: Maybe Text
$sel:eventTypeCode:Event' :: Event -> Maybe Text
eventTypeCode} -> Maybe Text
eventTypeCode) (\s :: Event
s@Event' {} Maybe Text
a -> Event
s {$sel:eventTypeCode:Event' :: Maybe Text
eventTypeCode = Maybe Text
a} :: Event)
event_lastUpdatedTime :: Lens.Lens' Event (Prelude.Maybe Prelude.UTCTime)
event_lastUpdatedTime :: Lens' Event (Maybe UTCTime)
event_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe POSIX
lastUpdatedTime :: Maybe POSIX
$sel:lastUpdatedTime:Event' :: Event -> Maybe POSIX
lastUpdatedTime} -> Maybe POSIX
lastUpdatedTime) (\s :: Event
s@Event' {} Maybe POSIX
a -> Event
s {$sel:lastUpdatedTime:Event' :: Maybe POSIX
lastUpdatedTime = Maybe POSIX
a} :: Event) 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
event_region :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)
event_region :: Lens' Event (Maybe Text)
event_region = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe Text
region :: Maybe Text
$sel:region:Event' :: Event -> Maybe Text
region} -> Maybe Text
region) (\s :: Event
s@Event' {} Maybe Text
a -> Event
s {$sel:region:Event' :: Maybe Text
region = Maybe Text
a} :: Event)
event_service :: Lens.Lens' Event (Prelude.Maybe Prelude.Text)
event_service :: Lens' Event (Maybe Text)
event_service = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe Text
service :: Maybe Text
$sel:service:Event' :: Event -> Maybe Text
service} -> Maybe Text
service) (\s :: Event
s@Event' {} Maybe Text
a -> Event
s {$sel:service:Event' :: Maybe Text
service = Maybe Text
a} :: Event)
event_startTime :: Lens.Lens' Event (Prelude.Maybe Prelude.UTCTime)
event_startTime :: Lens' Event (Maybe UTCTime)
event_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:Event' :: Event -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: Event
s@Event' {} Maybe POSIX
a -> Event
s {$sel:startTime:Event' :: Maybe POSIX
startTime = Maybe POSIX
a} :: Event) 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
event_statusCode :: Lens.Lens' Event (Prelude.Maybe EventStatusCode)
event_statusCode :: Lens' Event (Maybe EventStatusCode)
event_statusCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Event' {Maybe EventStatusCode
statusCode :: Maybe EventStatusCode
$sel:statusCode:Event' :: Event -> Maybe EventStatusCode
statusCode} -> Maybe EventStatusCode
statusCode) (\s :: Event
s@Event' {} Maybe EventStatusCode
a -> Event
s {$sel:statusCode:Event' :: Maybe EventStatusCode
statusCode = Maybe EventStatusCode
a} :: Event)
instance Data.FromJSON Event where
parseJSON :: Value -> Parser Event
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Event"
( \Object
x ->
Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe EventScopeCode
-> Maybe EventTypeCategory
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe EventStatusCode
-> Event
Event'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"availabilityZone")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"endTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventScopeCode")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventTypeCategory")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventTypeCode")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lastUpdatedTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"region")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"service")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"startTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"statusCode")
)
instance Prelude.Hashable Event where
hashWithSalt :: Int -> Event -> Int
hashWithSalt Int
_salt Event' {Maybe Text
Maybe POSIX
Maybe EventScopeCode
Maybe EventStatusCode
Maybe EventTypeCategory
statusCode :: Maybe EventStatusCode
startTime :: Maybe POSIX
service :: Maybe Text
region :: Maybe Text
lastUpdatedTime :: Maybe POSIX
eventTypeCode :: Maybe Text
eventTypeCategory :: Maybe EventTypeCategory
eventScopeCode :: Maybe EventScopeCode
endTime :: Maybe POSIX
availabilityZone :: Maybe Text
arn :: Maybe Text
$sel:statusCode:Event' :: Event -> Maybe EventStatusCode
$sel:startTime:Event' :: Event -> Maybe POSIX
$sel:service:Event' :: Event -> Maybe Text
$sel:region:Event' :: Event -> Maybe Text
$sel:lastUpdatedTime:Event' :: Event -> Maybe POSIX
$sel:eventTypeCode:Event' :: Event -> Maybe Text
$sel:eventTypeCategory:Event' :: Event -> Maybe EventTypeCategory
$sel:eventScopeCode:Event' :: Event -> Maybe EventScopeCode
$sel:endTime:Event' :: Event -> Maybe POSIX
$sel:availabilityZone:Event' :: Event -> Maybe Text
$sel:arn:Event' :: Event -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
availabilityZone
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EventScopeCode
eventScopeCode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EventTypeCategory
eventTypeCategory
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
eventTypeCode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdatedTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
region
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
service
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EventStatusCode
statusCode
instance Prelude.NFData Event where
rnf :: Event -> ()
rnf Event' {Maybe Text
Maybe POSIX
Maybe EventScopeCode
Maybe EventStatusCode
Maybe EventTypeCategory
statusCode :: Maybe EventStatusCode
startTime :: Maybe POSIX
service :: Maybe Text
region :: Maybe Text
lastUpdatedTime :: Maybe POSIX
eventTypeCode :: Maybe Text
eventTypeCategory :: Maybe EventTypeCategory
eventScopeCode :: Maybe EventScopeCode
endTime :: Maybe POSIX
availabilityZone :: Maybe Text
arn :: Maybe Text
$sel:statusCode:Event' :: Event -> Maybe EventStatusCode
$sel:startTime:Event' :: Event -> Maybe POSIX
$sel:service:Event' :: Event -> Maybe Text
$sel:region:Event' :: Event -> Maybe Text
$sel:lastUpdatedTime:Event' :: Event -> Maybe POSIX
$sel:eventTypeCode:Event' :: Event -> Maybe Text
$sel:eventTypeCategory:Event' :: Event -> Maybe EventTypeCategory
$sel:eventScopeCode:Event' :: Event -> Maybe EventScopeCode
$sel:endTime:Event' :: Event -> Maybe POSIX
$sel:availabilityZone:Event' :: Event -> Maybe Text
$sel:arn:Event' :: Event -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 POSIX
endTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EventScopeCode
eventScopeCode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EventTypeCategory
eventTypeCategory
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventTypeCode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
region
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
service
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EventStatusCode
statusCode