{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.PinpointEmail.CreateEmailIdentity
(
CreateEmailIdentity (..),
newCreateEmailIdentity,
createEmailIdentity_tags,
createEmailIdentity_emailIdentity,
CreateEmailIdentityResponse (..),
newCreateEmailIdentityResponse,
createEmailIdentityResponse_dkimAttributes,
createEmailIdentityResponse_identityType,
createEmailIdentityResponse_verifiedForSendingStatus,
createEmailIdentityResponse_httpStatus,
)
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateEmailIdentity = CreateEmailIdentity'
{
CreateEmailIdentity -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateEmailIdentity -> Text
emailIdentity :: Prelude.Text
}
deriving (CreateEmailIdentity -> CreateEmailIdentity -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEmailIdentity -> CreateEmailIdentity -> Bool
$c/= :: CreateEmailIdentity -> CreateEmailIdentity -> Bool
== :: CreateEmailIdentity -> CreateEmailIdentity -> Bool
$c== :: CreateEmailIdentity -> CreateEmailIdentity -> Bool
Prelude.Eq, ReadPrec [CreateEmailIdentity]
ReadPrec CreateEmailIdentity
Int -> ReadS CreateEmailIdentity
ReadS [CreateEmailIdentity]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEmailIdentity]
$creadListPrec :: ReadPrec [CreateEmailIdentity]
readPrec :: ReadPrec CreateEmailIdentity
$creadPrec :: ReadPrec CreateEmailIdentity
readList :: ReadS [CreateEmailIdentity]
$creadList :: ReadS [CreateEmailIdentity]
readsPrec :: Int -> ReadS CreateEmailIdentity
$creadsPrec :: Int -> ReadS CreateEmailIdentity
Prelude.Read, Int -> CreateEmailIdentity -> ShowS
[CreateEmailIdentity] -> ShowS
CreateEmailIdentity -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEmailIdentity] -> ShowS
$cshowList :: [CreateEmailIdentity] -> ShowS
show :: CreateEmailIdentity -> String
$cshow :: CreateEmailIdentity -> String
showsPrec :: Int -> CreateEmailIdentity -> ShowS
$cshowsPrec :: Int -> CreateEmailIdentity -> ShowS
Prelude.Show, forall x. Rep CreateEmailIdentity x -> CreateEmailIdentity
forall x. CreateEmailIdentity -> Rep CreateEmailIdentity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEmailIdentity x -> CreateEmailIdentity
$cfrom :: forall x. CreateEmailIdentity -> Rep CreateEmailIdentity x
Prelude.Generic)
newCreateEmailIdentity ::
Prelude.Text ->
CreateEmailIdentity
newCreateEmailIdentity :: Text -> CreateEmailIdentity
newCreateEmailIdentity Text
pEmailIdentity_ =
CreateEmailIdentity'
{ $sel:tags:CreateEmailIdentity' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:emailIdentity:CreateEmailIdentity' :: Text
emailIdentity = Text
pEmailIdentity_
}
createEmailIdentity_tags :: Lens.Lens' CreateEmailIdentity (Prelude.Maybe [Tag])
createEmailIdentity_tags :: Lens' CreateEmailIdentity (Maybe [Tag])
createEmailIdentity_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentity' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateEmailIdentity' :: CreateEmailIdentity -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateEmailIdentity
s@CreateEmailIdentity' {} Maybe [Tag]
a -> CreateEmailIdentity
s {$sel:tags:CreateEmailIdentity' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateEmailIdentity) 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
createEmailIdentity_emailIdentity :: Lens.Lens' CreateEmailIdentity Prelude.Text
createEmailIdentity_emailIdentity :: Lens' CreateEmailIdentity Text
createEmailIdentity_emailIdentity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentity' {Text
emailIdentity :: Text
$sel:emailIdentity:CreateEmailIdentity' :: CreateEmailIdentity -> Text
emailIdentity} -> Text
emailIdentity) (\s :: CreateEmailIdentity
s@CreateEmailIdentity' {} Text
a -> CreateEmailIdentity
s {$sel:emailIdentity:CreateEmailIdentity' :: Text
emailIdentity = Text
a} :: CreateEmailIdentity)
instance Core.AWSRequest CreateEmailIdentity where
type
AWSResponse CreateEmailIdentity =
CreateEmailIdentityResponse
request :: (Service -> Service)
-> CreateEmailIdentity -> Request CreateEmailIdentity
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateEmailIdentity
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateEmailIdentity)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe DkimAttributes
-> Maybe IdentityType
-> Maybe Bool
-> Int
-> CreateEmailIdentityResponse
CreateEmailIdentityResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DkimAttributes")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"IdentityType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"VerifiedForSendingStatus")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateEmailIdentity where
hashWithSalt :: Int -> CreateEmailIdentity -> Int
hashWithSalt Int
_salt CreateEmailIdentity' {Maybe [Tag]
Text
emailIdentity :: Text
tags :: Maybe [Tag]
$sel:emailIdentity:CreateEmailIdentity' :: CreateEmailIdentity -> Text
$sel:tags:CreateEmailIdentity' :: CreateEmailIdentity -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
emailIdentity
instance Prelude.NFData CreateEmailIdentity where
rnf :: CreateEmailIdentity -> ()
rnf CreateEmailIdentity' {Maybe [Tag]
Text
emailIdentity :: Text
tags :: Maybe [Tag]
$sel:emailIdentity:CreateEmailIdentity' :: CreateEmailIdentity -> Text
$sel:tags:CreateEmailIdentity' :: CreateEmailIdentity -> Maybe [Tag]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
emailIdentity
instance Data.ToHeaders CreateEmailIdentity where
toHeaders :: CreateEmailIdentity -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateEmailIdentity where
toJSON :: CreateEmailIdentity -> Value
toJSON CreateEmailIdentity' {Maybe [Tag]
Text
emailIdentity :: Text
tags :: Maybe [Tag]
$sel:emailIdentity:CreateEmailIdentity' :: CreateEmailIdentity -> Text
$sel:tags:CreateEmailIdentity' :: CreateEmailIdentity -> Maybe [Tag]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Tags" 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 [Tag]
tags,
forall a. a -> Maybe a
Prelude.Just
(Key
"EmailIdentity" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
emailIdentity)
]
)
instance Data.ToPath CreateEmailIdentity where
toPath :: CreateEmailIdentity -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/v1/email/identities"
instance Data.ToQuery CreateEmailIdentity where
toQuery :: CreateEmailIdentity -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateEmailIdentityResponse = CreateEmailIdentityResponse'
{
CreateEmailIdentityResponse -> Maybe DkimAttributes
dkimAttributes :: Prelude.Maybe DkimAttributes,
CreateEmailIdentityResponse -> Maybe IdentityType
identityType :: Prelude.Maybe IdentityType,
CreateEmailIdentityResponse -> Maybe Bool
verifiedForSendingStatus :: Prelude.Maybe Prelude.Bool,
CreateEmailIdentityResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateEmailIdentityResponse -> CreateEmailIdentityResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEmailIdentityResponse -> CreateEmailIdentityResponse -> Bool
$c/= :: CreateEmailIdentityResponse -> CreateEmailIdentityResponse -> Bool
== :: CreateEmailIdentityResponse -> CreateEmailIdentityResponse -> Bool
$c== :: CreateEmailIdentityResponse -> CreateEmailIdentityResponse -> Bool
Prelude.Eq, ReadPrec [CreateEmailIdentityResponse]
ReadPrec CreateEmailIdentityResponse
Int -> ReadS CreateEmailIdentityResponse
ReadS [CreateEmailIdentityResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEmailIdentityResponse]
$creadListPrec :: ReadPrec [CreateEmailIdentityResponse]
readPrec :: ReadPrec CreateEmailIdentityResponse
$creadPrec :: ReadPrec CreateEmailIdentityResponse
readList :: ReadS [CreateEmailIdentityResponse]
$creadList :: ReadS [CreateEmailIdentityResponse]
readsPrec :: Int -> ReadS CreateEmailIdentityResponse
$creadsPrec :: Int -> ReadS CreateEmailIdentityResponse
Prelude.Read, Int -> CreateEmailIdentityResponse -> ShowS
[CreateEmailIdentityResponse] -> ShowS
CreateEmailIdentityResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEmailIdentityResponse] -> ShowS
$cshowList :: [CreateEmailIdentityResponse] -> ShowS
show :: CreateEmailIdentityResponse -> String
$cshow :: CreateEmailIdentityResponse -> String
showsPrec :: Int -> CreateEmailIdentityResponse -> ShowS
$cshowsPrec :: Int -> CreateEmailIdentityResponse -> ShowS
Prelude.Show, forall x.
Rep CreateEmailIdentityResponse x -> CreateEmailIdentityResponse
forall x.
CreateEmailIdentityResponse -> Rep CreateEmailIdentityResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateEmailIdentityResponse x -> CreateEmailIdentityResponse
$cfrom :: forall x.
CreateEmailIdentityResponse -> Rep CreateEmailIdentityResponse x
Prelude.Generic)
newCreateEmailIdentityResponse ::
Prelude.Int ->
CreateEmailIdentityResponse
newCreateEmailIdentityResponse :: Int -> CreateEmailIdentityResponse
newCreateEmailIdentityResponse Int
pHttpStatus_ =
CreateEmailIdentityResponse'
{ $sel:dkimAttributes:CreateEmailIdentityResponse' :: Maybe DkimAttributes
dkimAttributes =
forall a. Maybe a
Prelude.Nothing,
$sel:identityType:CreateEmailIdentityResponse' :: Maybe IdentityType
identityType = forall a. Maybe a
Prelude.Nothing,
$sel:verifiedForSendingStatus:CreateEmailIdentityResponse' :: Maybe Bool
verifiedForSendingStatus = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateEmailIdentityResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createEmailIdentityResponse_dkimAttributes :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe DkimAttributes)
createEmailIdentityResponse_dkimAttributes :: Lens' CreateEmailIdentityResponse (Maybe DkimAttributes)
createEmailIdentityResponse_dkimAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentityResponse' {Maybe DkimAttributes
dkimAttributes :: Maybe DkimAttributes
$sel:dkimAttributes:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe DkimAttributes
dkimAttributes} -> Maybe DkimAttributes
dkimAttributes) (\s :: CreateEmailIdentityResponse
s@CreateEmailIdentityResponse' {} Maybe DkimAttributes
a -> CreateEmailIdentityResponse
s {$sel:dkimAttributes:CreateEmailIdentityResponse' :: Maybe DkimAttributes
dkimAttributes = Maybe DkimAttributes
a} :: CreateEmailIdentityResponse)
createEmailIdentityResponse_identityType :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe IdentityType)
createEmailIdentityResponse_identityType :: Lens' CreateEmailIdentityResponse (Maybe IdentityType)
createEmailIdentityResponse_identityType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentityResponse' {Maybe IdentityType
identityType :: Maybe IdentityType
$sel:identityType:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe IdentityType
identityType} -> Maybe IdentityType
identityType) (\s :: CreateEmailIdentityResponse
s@CreateEmailIdentityResponse' {} Maybe IdentityType
a -> CreateEmailIdentityResponse
s {$sel:identityType:CreateEmailIdentityResponse' :: Maybe IdentityType
identityType = Maybe IdentityType
a} :: CreateEmailIdentityResponse)
createEmailIdentityResponse_verifiedForSendingStatus :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe Prelude.Bool)
createEmailIdentityResponse_verifiedForSendingStatus :: Lens' CreateEmailIdentityResponse (Maybe Bool)
createEmailIdentityResponse_verifiedForSendingStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentityResponse' {Maybe Bool
verifiedForSendingStatus :: Maybe Bool
$sel:verifiedForSendingStatus:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe Bool
verifiedForSendingStatus} -> Maybe Bool
verifiedForSendingStatus) (\s :: CreateEmailIdentityResponse
s@CreateEmailIdentityResponse' {} Maybe Bool
a -> CreateEmailIdentityResponse
s {$sel:verifiedForSendingStatus:CreateEmailIdentityResponse' :: Maybe Bool
verifiedForSendingStatus = Maybe Bool
a} :: CreateEmailIdentityResponse)
createEmailIdentityResponse_httpStatus :: Lens.Lens' CreateEmailIdentityResponse Prelude.Int
createEmailIdentityResponse_httpStatus :: Lens' CreateEmailIdentityResponse Int
createEmailIdentityResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEmailIdentityResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateEmailIdentityResponse
s@CreateEmailIdentityResponse' {} Int
a -> CreateEmailIdentityResponse
s {$sel:httpStatus:CreateEmailIdentityResponse' :: Int
httpStatus = Int
a} :: CreateEmailIdentityResponse)
instance Prelude.NFData CreateEmailIdentityResponse where
rnf :: CreateEmailIdentityResponse -> ()
rnf CreateEmailIdentityResponse' {Int
Maybe Bool
Maybe DkimAttributes
Maybe IdentityType
httpStatus :: Int
verifiedForSendingStatus :: Maybe Bool
identityType :: Maybe IdentityType
dkimAttributes :: Maybe DkimAttributes
$sel:httpStatus:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Int
$sel:verifiedForSendingStatus:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe Bool
$sel:identityType:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe IdentityType
$sel:dkimAttributes:CreateEmailIdentityResponse' :: CreateEmailIdentityResponse -> Maybe DkimAttributes
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DkimAttributes
dkimAttributes
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IdentityType
identityType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
verifiedForSendingStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus