{-# 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.SendMessages
(
SendMessages (..),
newSendMessages,
sendMessages_applicationId,
sendMessages_messageRequest,
SendMessagesResponse (..),
newSendMessagesResponse,
sendMessagesResponse_httpStatus,
sendMessagesResponse_messageResponse,
)
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 SendMessages = SendMessages'
{
SendMessages -> Text
applicationId :: Prelude.Text,
SendMessages -> MessageRequest
messageRequest :: MessageRequest
}
deriving (SendMessages -> SendMessages -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SendMessages -> SendMessages -> Bool
$c/= :: SendMessages -> SendMessages -> Bool
== :: SendMessages -> SendMessages -> Bool
$c== :: SendMessages -> SendMessages -> Bool
Prelude.Eq, ReadPrec [SendMessages]
ReadPrec SendMessages
Int -> ReadS SendMessages
ReadS [SendMessages]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SendMessages]
$creadListPrec :: ReadPrec [SendMessages]
readPrec :: ReadPrec SendMessages
$creadPrec :: ReadPrec SendMessages
readList :: ReadS [SendMessages]
$creadList :: ReadS [SendMessages]
readsPrec :: Int -> ReadS SendMessages
$creadsPrec :: Int -> ReadS SendMessages
Prelude.Read, Int -> SendMessages -> ShowS
[SendMessages] -> ShowS
SendMessages -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SendMessages] -> ShowS
$cshowList :: [SendMessages] -> ShowS
show :: SendMessages -> String
$cshow :: SendMessages -> String
showsPrec :: Int -> SendMessages -> ShowS
$cshowsPrec :: Int -> SendMessages -> ShowS
Prelude.Show, forall x. Rep SendMessages x -> SendMessages
forall x. SendMessages -> Rep SendMessages x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SendMessages x -> SendMessages
$cfrom :: forall x. SendMessages -> Rep SendMessages x
Prelude.Generic)
newSendMessages ::
Prelude.Text ->
MessageRequest ->
SendMessages
newSendMessages :: Text -> MessageRequest -> SendMessages
newSendMessages Text
pApplicationId_ MessageRequest
pMessageRequest_ =
SendMessages'
{ $sel:applicationId:SendMessages' :: Text
applicationId = Text
pApplicationId_,
$sel:messageRequest:SendMessages' :: MessageRequest
messageRequest = MessageRequest
pMessageRequest_
}
sendMessages_applicationId :: Lens.Lens' SendMessages Prelude.Text
sendMessages_applicationId :: Lens' SendMessages Text
sendMessages_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendMessages' {Text
applicationId :: Text
$sel:applicationId:SendMessages' :: SendMessages -> Text
applicationId} -> Text
applicationId) (\s :: SendMessages
s@SendMessages' {} Text
a -> SendMessages
s {$sel:applicationId:SendMessages' :: Text
applicationId = Text
a} :: SendMessages)
sendMessages_messageRequest :: Lens.Lens' SendMessages MessageRequest
sendMessages_messageRequest :: Lens' SendMessages MessageRequest
sendMessages_messageRequest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendMessages' {MessageRequest
messageRequest :: MessageRequest
$sel:messageRequest:SendMessages' :: SendMessages -> MessageRequest
messageRequest} -> MessageRequest
messageRequest) (\s :: SendMessages
s@SendMessages' {} MessageRequest
a -> SendMessages
s {$sel:messageRequest:SendMessages' :: MessageRequest
messageRequest = MessageRequest
a} :: SendMessages)
instance Core.AWSRequest SendMessages where
type AWSResponse SendMessages = SendMessagesResponse
request :: (Service -> Service) -> SendMessages -> Request SendMessages
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 SendMessages
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse SendMessages)))
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 -> MessageResponse -> SendMessagesResponse
SendMessagesResponse'
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 SendMessages where
hashWithSalt :: Int -> SendMessages -> Int
hashWithSalt Int
_salt SendMessages' {Text
MessageRequest
messageRequest :: MessageRequest
applicationId :: Text
$sel:messageRequest:SendMessages' :: SendMessages -> MessageRequest
$sel:applicationId:SendMessages' :: SendMessages -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MessageRequest
messageRequest
instance Prelude.NFData SendMessages where
rnf :: SendMessages -> ()
rnf SendMessages' {Text
MessageRequest
messageRequest :: MessageRequest
applicationId :: Text
$sel:messageRequest:SendMessages' :: SendMessages -> MessageRequest
$sel:applicationId:SendMessages' :: SendMessages -> 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 MessageRequest
messageRequest
instance Data.ToHeaders SendMessages where
toHeaders :: SendMessages -> 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 SendMessages where
toJSON :: SendMessages -> Value
toJSON SendMessages' {Text
MessageRequest
messageRequest :: MessageRequest
applicationId :: Text
$sel:messageRequest:SendMessages' :: SendMessages -> MessageRequest
$sel:applicationId:SendMessages' :: SendMessages -> Text
..} = forall a. ToJSON a => a -> Value
Data.toJSON MessageRequest
messageRequest
instance Data.ToPath SendMessages where
toPath :: SendMessages -> ByteString
toPath SendMessages' {Text
MessageRequest
messageRequest :: MessageRequest
applicationId :: Text
$sel:messageRequest:SendMessages' :: SendMessages -> MessageRequest
$sel:applicationId:SendMessages' :: SendMessages -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/v1/apps/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
applicationId, ByteString
"/messages"]
instance Data.ToQuery SendMessages where
toQuery :: SendMessages -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data SendMessagesResponse = SendMessagesResponse'
{
SendMessagesResponse -> Int
httpStatus :: Prelude.Int,
SendMessagesResponse -> MessageResponse
messageResponse :: MessageResponse
}
deriving (SendMessagesResponse -> SendMessagesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SendMessagesResponse -> SendMessagesResponse -> Bool
$c/= :: SendMessagesResponse -> SendMessagesResponse -> Bool
== :: SendMessagesResponse -> SendMessagesResponse -> Bool
$c== :: SendMessagesResponse -> SendMessagesResponse -> Bool
Prelude.Eq, ReadPrec [SendMessagesResponse]
ReadPrec SendMessagesResponse
Int -> ReadS SendMessagesResponse
ReadS [SendMessagesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SendMessagesResponse]
$creadListPrec :: ReadPrec [SendMessagesResponse]
readPrec :: ReadPrec SendMessagesResponse
$creadPrec :: ReadPrec SendMessagesResponse
readList :: ReadS [SendMessagesResponse]
$creadList :: ReadS [SendMessagesResponse]
readsPrec :: Int -> ReadS SendMessagesResponse
$creadsPrec :: Int -> ReadS SendMessagesResponse
Prelude.Read, Int -> SendMessagesResponse -> ShowS
[SendMessagesResponse] -> ShowS
SendMessagesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SendMessagesResponse] -> ShowS
$cshowList :: [SendMessagesResponse] -> ShowS
show :: SendMessagesResponse -> String
$cshow :: SendMessagesResponse -> String
showsPrec :: Int -> SendMessagesResponse -> ShowS
$cshowsPrec :: Int -> SendMessagesResponse -> ShowS
Prelude.Show, forall x. Rep SendMessagesResponse x -> SendMessagesResponse
forall x. SendMessagesResponse -> Rep SendMessagesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SendMessagesResponse x -> SendMessagesResponse
$cfrom :: forall x. SendMessagesResponse -> Rep SendMessagesResponse x
Prelude.Generic)
newSendMessagesResponse ::
Prelude.Int ->
MessageResponse ->
SendMessagesResponse
newSendMessagesResponse :: Int -> MessageResponse -> SendMessagesResponse
newSendMessagesResponse
Int
pHttpStatus_
MessageResponse
pMessageResponse_ =
SendMessagesResponse'
{ $sel:httpStatus:SendMessagesResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:messageResponse:SendMessagesResponse' :: MessageResponse
messageResponse = MessageResponse
pMessageResponse_
}
sendMessagesResponse_httpStatus :: Lens.Lens' SendMessagesResponse Prelude.Int
sendMessagesResponse_httpStatus :: Lens' SendMessagesResponse Int
sendMessagesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendMessagesResponse' {Int
httpStatus :: Int
$sel:httpStatus:SendMessagesResponse' :: SendMessagesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SendMessagesResponse
s@SendMessagesResponse' {} Int
a -> SendMessagesResponse
s {$sel:httpStatus:SendMessagesResponse' :: Int
httpStatus = Int
a} :: SendMessagesResponse)
sendMessagesResponse_messageResponse :: Lens.Lens' SendMessagesResponse MessageResponse
sendMessagesResponse_messageResponse :: Lens' SendMessagesResponse MessageResponse
sendMessagesResponse_messageResponse = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendMessagesResponse' {MessageResponse
messageResponse :: MessageResponse
$sel:messageResponse:SendMessagesResponse' :: SendMessagesResponse -> MessageResponse
messageResponse} -> MessageResponse
messageResponse) (\s :: SendMessagesResponse
s@SendMessagesResponse' {} MessageResponse
a -> SendMessagesResponse
s {$sel:messageResponse:SendMessagesResponse' :: MessageResponse
messageResponse = MessageResponse
a} :: SendMessagesResponse)
instance Prelude.NFData SendMessagesResponse where
rnf :: SendMessagesResponse -> ()
rnf SendMessagesResponse' {Int
MessageResponse
messageResponse :: MessageResponse
httpStatus :: Int
$sel:messageResponse:SendMessagesResponse' :: SendMessagesResponse -> MessageResponse
$sel:httpStatus:SendMessagesResponse' :: SendMessagesResponse -> 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 MessageResponse
messageResponse