{-# 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.Pinpoint.UpdateEmailChannel
(
UpdateEmailChannel (..),
newUpdateEmailChannel,
updateEmailChannel_applicationId,
updateEmailChannel_emailChannelRequest,
UpdateEmailChannelResponse (..),
newUpdateEmailChannelResponse,
updateEmailChannelResponse_httpStatus,
updateEmailChannelResponse_emailChannelResponse,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Pinpoint.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateEmailChannel = UpdateEmailChannel'
{
UpdateEmailChannel -> Text
applicationId :: Prelude.Text,
UpdateEmailChannel -> EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
}
deriving (UpdateEmailChannel -> UpdateEmailChannel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateEmailChannel -> UpdateEmailChannel -> Bool
$c/= :: UpdateEmailChannel -> UpdateEmailChannel -> Bool
== :: UpdateEmailChannel -> UpdateEmailChannel -> Bool
$c== :: UpdateEmailChannel -> UpdateEmailChannel -> Bool
Prelude.Eq, ReadPrec [UpdateEmailChannel]
ReadPrec UpdateEmailChannel
Int -> ReadS UpdateEmailChannel
ReadS [UpdateEmailChannel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateEmailChannel]
$creadListPrec :: ReadPrec [UpdateEmailChannel]
readPrec :: ReadPrec UpdateEmailChannel
$creadPrec :: ReadPrec UpdateEmailChannel
readList :: ReadS [UpdateEmailChannel]
$creadList :: ReadS [UpdateEmailChannel]
readsPrec :: Int -> ReadS UpdateEmailChannel
$creadsPrec :: Int -> ReadS UpdateEmailChannel
Prelude.Read, Int -> UpdateEmailChannel -> ShowS
[UpdateEmailChannel] -> ShowS
UpdateEmailChannel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateEmailChannel] -> ShowS
$cshowList :: [UpdateEmailChannel] -> ShowS
show :: UpdateEmailChannel -> String
$cshow :: UpdateEmailChannel -> String
showsPrec :: Int -> UpdateEmailChannel -> ShowS
$cshowsPrec :: Int -> UpdateEmailChannel -> ShowS
Prelude.Show, forall x. Rep UpdateEmailChannel x -> UpdateEmailChannel
forall x. UpdateEmailChannel -> Rep UpdateEmailChannel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateEmailChannel x -> UpdateEmailChannel
$cfrom :: forall x. UpdateEmailChannel -> Rep UpdateEmailChannel x
Prelude.Generic)
newUpdateEmailChannel ::
Prelude.Text ->
EmailChannelRequest ->
UpdateEmailChannel
newUpdateEmailChannel :: Text -> EmailChannelRequest -> UpdateEmailChannel
newUpdateEmailChannel
Text
pApplicationId_
EmailChannelRequest
pEmailChannelRequest_ =
UpdateEmailChannel'
{ $sel:applicationId:UpdateEmailChannel' :: Text
applicationId =
Text
pApplicationId_,
$sel:emailChannelRequest:UpdateEmailChannel' :: EmailChannelRequest
emailChannelRequest = EmailChannelRequest
pEmailChannelRequest_
}
updateEmailChannel_applicationId :: Lens.Lens' UpdateEmailChannel Prelude.Text
updateEmailChannel_applicationId :: Lens' UpdateEmailChannel Text
updateEmailChannel_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateEmailChannel' {Text
applicationId :: Text
$sel:applicationId:UpdateEmailChannel' :: UpdateEmailChannel -> Text
applicationId} -> Text
applicationId) (\s :: UpdateEmailChannel
s@UpdateEmailChannel' {} Text
a -> UpdateEmailChannel
s {$sel:applicationId:UpdateEmailChannel' :: Text
applicationId = Text
a} :: UpdateEmailChannel)
updateEmailChannel_emailChannelRequest :: Lens.Lens' UpdateEmailChannel EmailChannelRequest
updateEmailChannel_emailChannelRequest :: Lens' UpdateEmailChannel EmailChannelRequest
updateEmailChannel_emailChannelRequest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateEmailChannel' {EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
$sel:emailChannelRequest:UpdateEmailChannel' :: UpdateEmailChannel -> EmailChannelRequest
emailChannelRequest} -> EmailChannelRequest
emailChannelRequest) (\s :: UpdateEmailChannel
s@UpdateEmailChannel' {} EmailChannelRequest
a -> UpdateEmailChannel
s {$sel:emailChannelRequest:UpdateEmailChannel' :: EmailChannelRequest
emailChannelRequest = EmailChannelRequest
a} :: UpdateEmailChannel)
instance Core.AWSRequest UpdateEmailChannel where
type
AWSResponse UpdateEmailChannel =
UpdateEmailChannelResponse
request :: (Service -> Service)
-> UpdateEmailChannel -> Request UpdateEmailChannel
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateEmailChannel
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateEmailChannel)))
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 ->
Int -> EmailChannelResponse -> UpdateEmailChannelResponse
UpdateEmailChannelResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
)
instance Prelude.Hashable UpdateEmailChannel where
hashWithSalt :: Int -> UpdateEmailChannel -> Int
hashWithSalt Int
_salt UpdateEmailChannel' {Text
EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
applicationId :: Text
$sel:emailChannelRequest:UpdateEmailChannel' :: UpdateEmailChannel -> EmailChannelRequest
$sel:applicationId:UpdateEmailChannel' :: UpdateEmailChannel -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` EmailChannelRequest
emailChannelRequest
instance Prelude.NFData UpdateEmailChannel where
rnf :: UpdateEmailChannel -> ()
rnf UpdateEmailChannel' {Text
EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
applicationId :: Text
$sel:emailChannelRequest:UpdateEmailChannel' :: UpdateEmailChannel -> EmailChannelRequest
$sel:applicationId:UpdateEmailChannel' :: UpdateEmailChannel -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
applicationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EmailChannelRequest
emailChannelRequest
instance Data.ToHeaders UpdateEmailChannel where
toHeaders :: UpdateEmailChannel -> 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 UpdateEmailChannel where
toJSON :: UpdateEmailChannel -> Value
toJSON UpdateEmailChannel' {Text
EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
applicationId :: Text
$sel:emailChannelRequest:UpdateEmailChannel' :: UpdateEmailChannel -> EmailChannelRequest
$sel:applicationId:UpdateEmailChannel' :: UpdateEmailChannel -> Text
..} =
forall a. ToJSON a => a -> Value
Data.toJSON EmailChannelRequest
emailChannelRequest
instance Data.ToPath UpdateEmailChannel where
toPath :: UpdateEmailChannel -> ByteString
toPath UpdateEmailChannel' {Text
EmailChannelRequest
emailChannelRequest :: EmailChannelRequest
applicationId :: Text
$sel:emailChannelRequest:UpdateEmailChannel' :: UpdateEmailChannel -> EmailChannelRequest
$sel:applicationId:UpdateEmailChannel' :: UpdateEmailChannel -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/v1/apps/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
applicationId,
ByteString
"/channels/email"
]
instance Data.ToQuery UpdateEmailChannel where
toQuery :: UpdateEmailChannel -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateEmailChannelResponse = UpdateEmailChannelResponse'
{
UpdateEmailChannelResponse -> Int
httpStatus :: Prelude.Int,
UpdateEmailChannelResponse -> EmailChannelResponse
emailChannelResponse :: EmailChannelResponse
}
deriving (UpdateEmailChannelResponse -> UpdateEmailChannelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateEmailChannelResponse -> UpdateEmailChannelResponse -> Bool
$c/= :: UpdateEmailChannelResponse -> UpdateEmailChannelResponse -> Bool
== :: UpdateEmailChannelResponse -> UpdateEmailChannelResponse -> Bool
$c== :: UpdateEmailChannelResponse -> UpdateEmailChannelResponse -> Bool
Prelude.Eq, ReadPrec [UpdateEmailChannelResponse]
ReadPrec UpdateEmailChannelResponse
Int -> ReadS UpdateEmailChannelResponse
ReadS [UpdateEmailChannelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateEmailChannelResponse]
$creadListPrec :: ReadPrec [UpdateEmailChannelResponse]
readPrec :: ReadPrec UpdateEmailChannelResponse
$creadPrec :: ReadPrec UpdateEmailChannelResponse
readList :: ReadS [UpdateEmailChannelResponse]
$creadList :: ReadS [UpdateEmailChannelResponse]
readsPrec :: Int -> ReadS UpdateEmailChannelResponse
$creadsPrec :: Int -> ReadS UpdateEmailChannelResponse
Prelude.Read, Int -> UpdateEmailChannelResponse -> ShowS
[UpdateEmailChannelResponse] -> ShowS
UpdateEmailChannelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateEmailChannelResponse] -> ShowS
$cshowList :: [UpdateEmailChannelResponse] -> ShowS
show :: UpdateEmailChannelResponse -> String
$cshow :: UpdateEmailChannelResponse -> String
showsPrec :: Int -> UpdateEmailChannelResponse -> ShowS
$cshowsPrec :: Int -> UpdateEmailChannelResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateEmailChannelResponse x -> UpdateEmailChannelResponse
forall x.
UpdateEmailChannelResponse -> Rep UpdateEmailChannelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateEmailChannelResponse x -> UpdateEmailChannelResponse
$cfrom :: forall x.
UpdateEmailChannelResponse -> Rep UpdateEmailChannelResponse x
Prelude.Generic)
newUpdateEmailChannelResponse ::
Prelude.Int ->
EmailChannelResponse ->
UpdateEmailChannelResponse
newUpdateEmailChannelResponse :: Int -> EmailChannelResponse -> UpdateEmailChannelResponse
newUpdateEmailChannelResponse
Int
pHttpStatus_
EmailChannelResponse
pEmailChannelResponse_ =
UpdateEmailChannelResponse'
{ $sel:httpStatus:UpdateEmailChannelResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:emailChannelResponse:UpdateEmailChannelResponse' :: EmailChannelResponse
emailChannelResponse = EmailChannelResponse
pEmailChannelResponse_
}
updateEmailChannelResponse_httpStatus :: Lens.Lens' UpdateEmailChannelResponse Prelude.Int
updateEmailChannelResponse_httpStatus :: Lens' UpdateEmailChannelResponse Int
updateEmailChannelResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateEmailChannelResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateEmailChannelResponse' :: UpdateEmailChannelResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateEmailChannelResponse
s@UpdateEmailChannelResponse' {} Int
a -> UpdateEmailChannelResponse
s {$sel:httpStatus:UpdateEmailChannelResponse' :: Int
httpStatus = Int
a} :: UpdateEmailChannelResponse)
updateEmailChannelResponse_emailChannelResponse :: Lens.Lens' UpdateEmailChannelResponse EmailChannelResponse
updateEmailChannelResponse_emailChannelResponse :: Lens' UpdateEmailChannelResponse EmailChannelResponse
updateEmailChannelResponse_emailChannelResponse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateEmailChannelResponse' {EmailChannelResponse
emailChannelResponse :: EmailChannelResponse
$sel:emailChannelResponse:UpdateEmailChannelResponse' :: UpdateEmailChannelResponse -> EmailChannelResponse
emailChannelResponse} -> EmailChannelResponse
emailChannelResponse) (\s :: UpdateEmailChannelResponse
s@UpdateEmailChannelResponse' {} EmailChannelResponse
a -> UpdateEmailChannelResponse
s {$sel:emailChannelResponse:UpdateEmailChannelResponse' :: EmailChannelResponse
emailChannelResponse = EmailChannelResponse
a} :: UpdateEmailChannelResponse)
instance Prelude.NFData UpdateEmailChannelResponse where
rnf :: UpdateEmailChannelResponse -> ()
rnf UpdateEmailChannelResponse' {Int
EmailChannelResponse
emailChannelResponse :: EmailChannelResponse
httpStatus :: Int
$sel:emailChannelResponse:UpdateEmailChannelResponse' :: UpdateEmailChannelResponse -> EmailChannelResponse
$sel:httpStatus:UpdateEmailChannelResponse' :: UpdateEmailChannelResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EmailChannelResponse
emailChannelResponse