{-# 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.PinpointEmail.Types.EmailContent where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.PinpointEmail.Types.Message
import Amazonka.PinpointEmail.Types.RawMessage
import Amazonka.PinpointEmail.Types.Template
import qualified Amazonka.Prelude as Prelude
data EmailContent = EmailContent'
{
EmailContent -> Maybe RawMessage
raw :: Prelude.Maybe RawMessage,
EmailContent -> Maybe Message
simple :: Prelude.Maybe Message,
EmailContent -> Maybe Template
template :: Prelude.Maybe Template
}
deriving (EmailContent -> EmailContent -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EmailContent -> EmailContent -> Bool
$c/= :: EmailContent -> EmailContent -> Bool
== :: EmailContent -> EmailContent -> Bool
$c== :: EmailContent -> EmailContent -> Bool
Prelude.Eq, ReadPrec [EmailContent]
ReadPrec EmailContent
Int -> ReadS EmailContent
ReadS [EmailContent]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EmailContent]
$creadListPrec :: ReadPrec [EmailContent]
readPrec :: ReadPrec EmailContent
$creadPrec :: ReadPrec EmailContent
readList :: ReadS [EmailContent]
$creadList :: ReadS [EmailContent]
readsPrec :: Int -> ReadS EmailContent
$creadsPrec :: Int -> ReadS EmailContent
Prelude.Read, Int -> EmailContent -> ShowS
[EmailContent] -> ShowS
EmailContent -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EmailContent] -> ShowS
$cshowList :: [EmailContent] -> ShowS
show :: EmailContent -> String
$cshow :: EmailContent -> String
showsPrec :: Int -> EmailContent -> ShowS
$cshowsPrec :: Int -> EmailContent -> ShowS
Prelude.Show, forall x. Rep EmailContent x -> EmailContent
forall x. EmailContent -> Rep EmailContent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EmailContent x -> EmailContent
$cfrom :: forall x. EmailContent -> Rep EmailContent x
Prelude.Generic)
newEmailContent ::
EmailContent
newEmailContent :: EmailContent
newEmailContent =
EmailContent'
{ $sel:raw:EmailContent' :: Maybe RawMessage
raw = forall a. Maybe a
Prelude.Nothing,
$sel:simple:EmailContent' :: Maybe Message
simple = forall a. Maybe a
Prelude.Nothing,
$sel:template:EmailContent' :: Maybe Template
template = forall a. Maybe a
Prelude.Nothing
}
emailContent_raw :: Lens.Lens' EmailContent (Prelude.Maybe RawMessage)
emailContent_raw :: Lens' EmailContent (Maybe RawMessage)
emailContent_raw = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EmailContent' {Maybe RawMessage
raw :: Maybe RawMessage
$sel:raw:EmailContent' :: EmailContent -> Maybe RawMessage
raw} -> Maybe RawMessage
raw) (\s :: EmailContent
s@EmailContent' {} Maybe RawMessage
a -> EmailContent
s {$sel:raw:EmailContent' :: Maybe RawMessage
raw = Maybe RawMessage
a} :: EmailContent)
emailContent_simple :: Lens.Lens' EmailContent (Prelude.Maybe Message)
emailContent_simple :: Lens' EmailContent (Maybe Message)
emailContent_simple = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EmailContent' {Maybe Message
simple :: Maybe Message
$sel:simple:EmailContent' :: EmailContent -> Maybe Message
simple} -> Maybe Message
simple) (\s :: EmailContent
s@EmailContent' {} Maybe Message
a -> EmailContent
s {$sel:simple:EmailContent' :: Maybe Message
simple = Maybe Message
a} :: EmailContent)
emailContent_template :: Lens.Lens' EmailContent (Prelude.Maybe Template)
emailContent_template :: Lens' EmailContent (Maybe Template)
emailContent_template = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EmailContent' {Maybe Template
template :: Maybe Template
$sel:template:EmailContent' :: EmailContent -> Maybe Template
template} -> Maybe Template
template) (\s :: EmailContent
s@EmailContent' {} Maybe Template
a -> EmailContent
s {$sel:template:EmailContent' :: Maybe Template
template = Maybe Template
a} :: EmailContent)
instance Prelude.Hashable EmailContent where
hashWithSalt :: Int -> EmailContent -> Int
hashWithSalt Int
_salt EmailContent' {Maybe Message
Maybe RawMessage
Maybe Template
template :: Maybe Template
simple :: Maybe Message
raw :: Maybe RawMessage
$sel:template:EmailContent' :: EmailContent -> Maybe Template
$sel:simple:EmailContent' :: EmailContent -> Maybe Message
$sel:raw:EmailContent' :: EmailContent -> Maybe RawMessage
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RawMessage
raw
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Message
simple
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Template
template
instance Prelude.NFData EmailContent where
rnf :: EmailContent -> ()
rnf EmailContent' {Maybe Message
Maybe RawMessage
Maybe Template
template :: Maybe Template
simple :: Maybe Message
raw :: Maybe RawMessage
$sel:template:EmailContent' :: EmailContent -> Maybe Template
$sel:simple:EmailContent' :: EmailContent -> Maybe Message
$sel:raw:EmailContent' :: EmailContent -> Maybe RawMessage
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe RawMessage
raw
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Message
simple
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Template
template
instance Data.ToJSON EmailContent where
toJSON :: EmailContent -> Value
toJSON EmailContent' {Maybe Message
Maybe RawMessage
Maybe Template
template :: Maybe Template
simple :: Maybe Message
raw :: Maybe RawMessage
$sel:template:EmailContent' :: EmailContent -> Maybe Template
$sel:simple:EmailContent' :: EmailContent -> Maybe Message
$sel:raw:EmailContent' :: EmailContent -> Maybe RawMessage
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Raw" 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 RawMessage
raw,
(Key
"Simple" 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 Message
simple,
(Key
"Template" 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 Template
template
]
)