{-# 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.Config.Types.SourceDetail where
import Amazonka.Config.Types.EventSource
import Amazonka.Config.Types.MaximumExecutionFrequency
import Amazonka.Config.Types.MessageType
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 SourceDetail = SourceDetail'
{
SourceDetail -> Maybe EventSource
eventSource :: Prelude.Maybe EventSource,
SourceDetail -> Maybe MaximumExecutionFrequency
maximumExecutionFrequency :: Prelude.Maybe MaximumExecutionFrequency,
SourceDetail -> Maybe MessageType
messageType :: Prelude.Maybe MessageType
}
deriving (SourceDetail -> SourceDetail -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SourceDetail -> SourceDetail -> Bool
$c/= :: SourceDetail -> SourceDetail -> Bool
== :: SourceDetail -> SourceDetail -> Bool
$c== :: SourceDetail -> SourceDetail -> Bool
Prelude.Eq, ReadPrec [SourceDetail]
ReadPrec SourceDetail
Int -> ReadS SourceDetail
ReadS [SourceDetail]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SourceDetail]
$creadListPrec :: ReadPrec [SourceDetail]
readPrec :: ReadPrec SourceDetail
$creadPrec :: ReadPrec SourceDetail
readList :: ReadS [SourceDetail]
$creadList :: ReadS [SourceDetail]
readsPrec :: Int -> ReadS SourceDetail
$creadsPrec :: Int -> ReadS SourceDetail
Prelude.Read, Int -> SourceDetail -> ShowS
[SourceDetail] -> ShowS
SourceDetail -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SourceDetail] -> ShowS
$cshowList :: [SourceDetail] -> ShowS
show :: SourceDetail -> String
$cshow :: SourceDetail -> String
showsPrec :: Int -> SourceDetail -> ShowS
$cshowsPrec :: Int -> SourceDetail -> ShowS
Prelude.Show, forall x. Rep SourceDetail x -> SourceDetail
forall x. SourceDetail -> Rep SourceDetail x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SourceDetail x -> SourceDetail
$cfrom :: forall x. SourceDetail -> Rep SourceDetail x
Prelude.Generic)
newSourceDetail ::
SourceDetail
newSourceDetail :: SourceDetail
newSourceDetail =
SourceDetail'
{ $sel:eventSource:SourceDetail' :: Maybe EventSource
eventSource = forall a. Maybe a
Prelude.Nothing,
$sel:maximumExecutionFrequency:SourceDetail' :: Maybe MaximumExecutionFrequency
maximumExecutionFrequency = forall a. Maybe a
Prelude.Nothing,
$sel:messageType:SourceDetail' :: Maybe MessageType
messageType = forall a. Maybe a
Prelude.Nothing
}
sourceDetail_eventSource :: Lens.Lens' SourceDetail (Prelude.Maybe EventSource)
sourceDetail_eventSource :: Lens' SourceDetail (Maybe EventSource)
sourceDetail_eventSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceDetail' {Maybe EventSource
eventSource :: Maybe EventSource
$sel:eventSource:SourceDetail' :: SourceDetail -> Maybe EventSource
eventSource} -> Maybe EventSource
eventSource) (\s :: SourceDetail
s@SourceDetail' {} Maybe EventSource
a -> SourceDetail
s {$sel:eventSource:SourceDetail' :: Maybe EventSource
eventSource = Maybe EventSource
a} :: SourceDetail)
sourceDetail_maximumExecutionFrequency :: Lens.Lens' SourceDetail (Prelude.Maybe MaximumExecutionFrequency)
sourceDetail_maximumExecutionFrequency :: Lens' SourceDetail (Maybe MaximumExecutionFrequency)
sourceDetail_maximumExecutionFrequency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceDetail' {Maybe MaximumExecutionFrequency
maximumExecutionFrequency :: Maybe MaximumExecutionFrequency
$sel:maximumExecutionFrequency:SourceDetail' :: SourceDetail -> Maybe MaximumExecutionFrequency
maximumExecutionFrequency} -> Maybe MaximumExecutionFrequency
maximumExecutionFrequency) (\s :: SourceDetail
s@SourceDetail' {} Maybe MaximumExecutionFrequency
a -> SourceDetail
s {$sel:maximumExecutionFrequency:SourceDetail' :: Maybe MaximumExecutionFrequency
maximumExecutionFrequency = Maybe MaximumExecutionFrequency
a} :: SourceDetail)
sourceDetail_messageType :: Lens.Lens' SourceDetail (Prelude.Maybe MessageType)
sourceDetail_messageType :: Lens' SourceDetail (Maybe MessageType)
sourceDetail_messageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceDetail' {Maybe MessageType
messageType :: Maybe MessageType
$sel:messageType:SourceDetail' :: SourceDetail -> Maybe MessageType
messageType} -> Maybe MessageType
messageType) (\s :: SourceDetail
s@SourceDetail' {} Maybe MessageType
a -> SourceDetail
s {$sel:messageType:SourceDetail' :: Maybe MessageType
messageType = Maybe MessageType
a} :: SourceDetail)
instance Data.FromJSON SourceDetail where
parseJSON :: Value -> Parser SourceDetail
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"SourceDetail"
( \Object
x ->
Maybe EventSource
-> Maybe MaximumExecutionFrequency
-> Maybe MessageType
-> SourceDetail
SourceDetail'
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
"EventSource")
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
"MaximumExecutionFrequency")
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
"MessageType")
)
instance Prelude.Hashable SourceDetail where
hashWithSalt :: Int -> SourceDetail -> Int
hashWithSalt Int
_salt SourceDetail' {Maybe EventSource
Maybe MaximumExecutionFrequency
Maybe MessageType
messageType :: Maybe MessageType
maximumExecutionFrequency :: Maybe MaximumExecutionFrequency
eventSource :: Maybe EventSource
$sel:messageType:SourceDetail' :: SourceDetail -> Maybe MessageType
$sel:maximumExecutionFrequency:SourceDetail' :: SourceDetail -> Maybe MaximumExecutionFrequency
$sel:eventSource:SourceDetail' :: SourceDetail -> Maybe EventSource
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EventSource
eventSource
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MaximumExecutionFrequency
maximumExecutionFrequency
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MessageType
messageType
instance Prelude.NFData SourceDetail where
rnf :: SourceDetail -> ()
rnf SourceDetail' {Maybe EventSource
Maybe MaximumExecutionFrequency
Maybe MessageType
messageType :: Maybe MessageType
maximumExecutionFrequency :: Maybe MaximumExecutionFrequency
eventSource :: Maybe EventSource
$sel:messageType:SourceDetail' :: SourceDetail -> Maybe MessageType
$sel:maximumExecutionFrequency:SourceDetail' :: SourceDetail -> Maybe MaximumExecutionFrequency
$sel:eventSource:SourceDetail' :: SourceDetail -> Maybe EventSource
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe EventSource
eventSource
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MaximumExecutionFrequency
maximumExecutionFrequency
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MessageType
messageType
instance Data.ToJSON SourceDetail where
toJSON :: SourceDetail -> Value
toJSON SourceDetail' {Maybe EventSource
Maybe MaximumExecutionFrequency
Maybe MessageType
messageType :: Maybe MessageType
maximumExecutionFrequency :: Maybe MaximumExecutionFrequency
eventSource :: Maybe EventSource
$sel:messageType:SourceDetail' :: SourceDetail -> Maybe MessageType
$sel:maximumExecutionFrequency:SourceDetail' :: SourceDetail -> Maybe MaximumExecutionFrequency
$sel:eventSource:SourceDetail' :: SourceDetail -> Maybe EventSource
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"EventSource" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EventSource
eventSource,
(Key
"MaximumExecutionFrequency" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MaximumExecutionFrequency
maximumExecutionFrequency,
(Key
"MessageType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MessageType
messageType
]
)