{-# 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.IoTWireless.SendDataToMulticastGroup
(
SendDataToMulticastGroup (..),
newSendDataToMulticastGroup,
sendDataToMulticastGroup_id,
sendDataToMulticastGroup_payloadData,
sendDataToMulticastGroup_wirelessMetadata,
SendDataToMulticastGroupResponse (..),
newSendDataToMulticastGroupResponse,
sendDataToMulticastGroupResponse_messageId,
sendDataToMulticastGroupResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTWireless.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data SendDataToMulticastGroup = SendDataToMulticastGroup'
{ SendDataToMulticastGroup -> Text
id :: Prelude.Text,
SendDataToMulticastGroup -> Text
payloadData :: Prelude.Text,
SendDataToMulticastGroup -> MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
}
deriving (SendDataToMulticastGroup -> SendDataToMulticastGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SendDataToMulticastGroup -> SendDataToMulticastGroup -> Bool
$c/= :: SendDataToMulticastGroup -> SendDataToMulticastGroup -> Bool
== :: SendDataToMulticastGroup -> SendDataToMulticastGroup -> Bool
$c== :: SendDataToMulticastGroup -> SendDataToMulticastGroup -> Bool
Prelude.Eq, ReadPrec [SendDataToMulticastGroup]
ReadPrec SendDataToMulticastGroup
Int -> ReadS SendDataToMulticastGroup
ReadS [SendDataToMulticastGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SendDataToMulticastGroup]
$creadListPrec :: ReadPrec [SendDataToMulticastGroup]
readPrec :: ReadPrec SendDataToMulticastGroup
$creadPrec :: ReadPrec SendDataToMulticastGroup
readList :: ReadS [SendDataToMulticastGroup]
$creadList :: ReadS [SendDataToMulticastGroup]
readsPrec :: Int -> ReadS SendDataToMulticastGroup
$creadsPrec :: Int -> ReadS SendDataToMulticastGroup
Prelude.Read, Int -> SendDataToMulticastGroup -> ShowS
[SendDataToMulticastGroup] -> ShowS
SendDataToMulticastGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SendDataToMulticastGroup] -> ShowS
$cshowList :: [SendDataToMulticastGroup] -> ShowS
show :: SendDataToMulticastGroup -> String
$cshow :: SendDataToMulticastGroup -> String
showsPrec :: Int -> SendDataToMulticastGroup -> ShowS
$cshowsPrec :: Int -> SendDataToMulticastGroup -> ShowS
Prelude.Show, forall x.
Rep SendDataToMulticastGroup x -> SendDataToMulticastGroup
forall x.
SendDataToMulticastGroup -> Rep SendDataToMulticastGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SendDataToMulticastGroup x -> SendDataToMulticastGroup
$cfrom :: forall x.
SendDataToMulticastGroup -> Rep SendDataToMulticastGroup x
Prelude.Generic)
newSendDataToMulticastGroup ::
Prelude.Text ->
Prelude.Text ->
MulticastWirelessMetadata ->
SendDataToMulticastGroup
newSendDataToMulticastGroup :: Text
-> Text -> MulticastWirelessMetadata -> SendDataToMulticastGroup
newSendDataToMulticastGroup
Text
pId_
Text
pPayloadData_
MulticastWirelessMetadata
pWirelessMetadata_ =
SendDataToMulticastGroup'
{ $sel:id:SendDataToMulticastGroup' :: Text
id = Text
pId_,
$sel:payloadData:SendDataToMulticastGroup' :: Text
payloadData = Text
pPayloadData_,
$sel:wirelessMetadata:SendDataToMulticastGroup' :: MulticastWirelessMetadata
wirelessMetadata = MulticastWirelessMetadata
pWirelessMetadata_
}
sendDataToMulticastGroup_id :: Lens.Lens' SendDataToMulticastGroup Prelude.Text
sendDataToMulticastGroup_id :: Lens' SendDataToMulticastGroup Text
sendDataToMulticastGroup_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendDataToMulticastGroup' {Text
id :: Text
$sel:id:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
id} -> Text
id) (\s :: SendDataToMulticastGroup
s@SendDataToMulticastGroup' {} Text
a -> SendDataToMulticastGroup
s {$sel:id:SendDataToMulticastGroup' :: Text
id = Text
a} :: SendDataToMulticastGroup)
sendDataToMulticastGroup_payloadData :: Lens.Lens' SendDataToMulticastGroup Prelude.Text
sendDataToMulticastGroup_payloadData :: Lens' SendDataToMulticastGroup Text
sendDataToMulticastGroup_payloadData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendDataToMulticastGroup' {Text
payloadData :: Text
$sel:payloadData:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
payloadData} -> Text
payloadData) (\s :: SendDataToMulticastGroup
s@SendDataToMulticastGroup' {} Text
a -> SendDataToMulticastGroup
s {$sel:payloadData:SendDataToMulticastGroup' :: Text
payloadData = Text
a} :: SendDataToMulticastGroup)
sendDataToMulticastGroup_wirelessMetadata :: Lens.Lens' SendDataToMulticastGroup MulticastWirelessMetadata
sendDataToMulticastGroup_wirelessMetadata :: Lens' SendDataToMulticastGroup MulticastWirelessMetadata
sendDataToMulticastGroup_wirelessMetadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendDataToMulticastGroup' {MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
$sel:wirelessMetadata:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> MulticastWirelessMetadata
wirelessMetadata} -> MulticastWirelessMetadata
wirelessMetadata) (\s :: SendDataToMulticastGroup
s@SendDataToMulticastGroup' {} MulticastWirelessMetadata
a -> SendDataToMulticastGroup
s {$sel:wirelessMetadata:SendDataToMulticastGroup' :: MulticastWirelessMetadata
wirelessMetadata = MulticastWirelessMetadata
a} :: SendDataToMulticastGroup)
instance Core.AWSRequest SendDataToMulticastGroup where
type
AWSResponse SendDataToMulticastGroup =
SendDataToMulticastGroupResponse
request :: (Service -> Service)
-> SendDataToMulticastGroup -> Request SendDataToMulticastGroup
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 SendDataToMulticastGroup
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse SendDataToMulticastGroup)))
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 Text -> Int -> SendDataToMulticastGroupResponse
SendDataToMulticastGroupResponse'
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
"MessageId")
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 SendDataToMulticastGroup where
hashWithSalt :: Int -> SendDataToMulticastGroup -> Int
hashWithSalt Int
_salt SendDataToMulticastGroup' {Text
MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
payloadData :: Text
id :: Text
$sel:wirelessMetadata:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> MulticastWirelessMetadata
$sel:payloadData:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
$sel:id:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
id
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
payloadData
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MulticastWirelessMetadata
wirelessMetadata
instance Prelude.NFData SendDataToMulticastGroup where
rnf :: SendDataToMulticastGroup -> ()
rnf SendDataToMulticastGroup' {Text
MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
payloadData :: Text
id :: Text
$sel:wirelessMetadata:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> MulticastWirelessMetadata
$sel:payloadData:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
$sel:id:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
payloadData
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MulticastWirelessMetadata
wirelessMetadata
instance Data.ToHeaders SendDataToMulticastGroup where
toHeaders :: SendDataToMulticastGroup -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON SendDataToMulticastGroup where
toJSON :: SendDataToMulticastGroup -> Value
toJSON SendDataToMulticastGroup' {Text
MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
payloadData :: Text
id :: Text
$sel:wirelessMetadata:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> MulticastWirelessMetadata
$sel:payloadData:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
$sel:id:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"PayloadData" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
payloadData),
forall a. a -> Maybe a
Prelude.Just
(Key
"WirelessMetadata" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MulticastWirelessMetadata
wirelessMetadata)
]
)
instance Data.ToPath SendDataToMulticastGroup where
toPath :: SendDataToMulticastGroup -> ByteString
toPath SendDataToMulticastGroup' {Text
MulticastWirelessMetadata
wirelessMetadata :: MulticastWirelessMetadata
payloadData :: Text
id :: Text
$sel:wirelessMetadata:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> MulticastWirelessMetadata
$sel:payloadData:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
$sel:id:SendDataToMulticastGroup' :: SendDataToMulticastGroup -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/multicast-groups/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
id, ByteString
"/data"]
instance Data.ToQuery SendDataToMulticastGroup where
toQuery :: SendDataToMulticastGroup -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data SendDataToMulticastGroupResponse = SendDataToMulticastGroupResponse'
{ SendDataToMulticastGroupResponse -> Maybe Text
messageId :: Prelude.Maybe Prelude.Text,
SendDataToMulticastGroupResponse -> Int
httpStatus :: Prelude.Int
}
deriving (SendDataToMulticastGroupResponse
-> SendDataToMulticastGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SendDataToMulticastGroupResponse
-> SendDataToMulticastGroupResponse -> Bool
$c/= :: SendDataToMulticastGroupResponse
-> SendDataToMulticastGroupResponse -> Bool
== :: SendDataToMulticastGroupResponse
-> SendDataToMulticastGroupResponse -> Bool
$c== :: SendDataToMulticastGroupResponse
-> SendDataToMulticastGroupResponse -> Bool
Prelude.Eq, ReadPrec [SendDataToMulticastGroupResponse]
ReadPrec SendDataToMulticastGroupResponse
Int -> ReadS SendDataToMulticastGroupResponse
ReadS [SendDataToMulticastGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SendDataToMulticastGroupResponse]
$creadListPrec :: ReadPrec [SendDataToMulticastGroupResponse]
readPrec :: ReadPrec SendDataToMulticastGroupResponse
$creadPrec :: ReadPrec SendDataToMulticastGroupResponse
readList :: ReadS [SendDataToMulticastGroupResponse]
$creadList :: ReadS [SendDataToMulticastGroupResponse]
readsPrec :: Int -> ReadS SendDataToMulticastGroupResponse
$creadsPrec :: Int -> ReadS SendDataToMulticastGroupResponse
Prelude.Read, Int -> SendDataToMulticastGroupResponse -> ShowS
[SendDataToMulticastGroupResponse] -> ShowS
SendDataToMulticastGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SendDataToMulticastGroupResponse] -> ShowS
$cshowList :: [SendDataToMulticastGroupResponse] -> ShowS
show :: SendDataToMulticastGroupResponse -> String
$cshow :: SendDataToMulticastGroupResponse -> String
showsPrec :: Int -> SendDataToMulticastGroupResponse -> ShowS
$cshowsPrec :: Int -> SendDataToMulticastGroupResponse -> ShowS
Prelude.Show, forall x.
Rep SendDataToMulticastGroupResponse x
-> SendDataToMulticastGroupResponse
forall x.
SendDataToMulticastGroupResponse
-> Rep SendDataToMulticastGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SendDataToMulticastGroupResponse x
-> SendDataToMulticastGroupResponse
$cfrom :: forall x.
SendDataToMulticastGroupResponse
-> Rep SendDataToMulticastGroupResponse x
Prelude.Generic)
newSendDataToMulticastGroupResponse ::
Prelude.Int ->
SendDataToMulticastGroupResponse
newSendDataToMulticastGroupResponse :: Int -> SendDataToMulticastGroupResponse
newSendDataToMulticastGroupResponse Int
pHttpStatus_ =
SendDataToMulticastGroupResponse'
{ $sel:messageId:SendDataToMulticastGroupResponse' :: Maybe Text
messageId =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:SendDataToMulticastGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
}
sendDataToMulticastGroupResponse_messageId :: Lens.Lens' SendDataToMulticastGroupResponse (Prelude.Maybe Prelude.Text)
sendDataToMulticastGroupResponse_messageId :: Lens' SendDataToMulticastGroupResponse (Maybe Text)
sendDataToMulticastGroupResponse_messageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendDataToMulticastGroupResponse' {Maybe Text
messageId :: Maybe Text
$sel:messageId:SendDataToMulticastGroupResponse' :: SendDataToMulticastGroupResponse -> Maybe Text
messageId} -> Maybe Text
messageId) (\s :: SendDataToMulticastGroupResponse
s@SendDataToMulticastGroupResponse' {} Maybe Text
a -> SendDataToMulticastGroupResponse
s {$sel:messageId:SendDataToMulticastGroupResponse' :: Maybe Text
messageId = Maybe Text
a} :: SendDataToMulticastGroupResponse)
sendDataToMulticastGroupResponse_httpStatus :: Lens.Lens' SendDataToMulticastGroupResponse Prelude.Int
sendDataToMulticastGroupResponse_httpStatus :: Lens' SendDataToMulticastGroupResponse Int
sendDataToMulticastGroupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SendDataToMulticastGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:SendDataToMulticastGroupResponse' :: SendDataToMulticastGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SendDataToMulticastGroupResponse
s@SendDataToMulticastGroupResponse' {} Int
a -> SendDataToMulticastGroupResponse
s {$sel:httpStatus:SendDataToMulticastGroupResponse' :: Int
httpStatus = Int
a} :: SendDataToMulticastGroupResponse)
instance
Prelude.NFData
SendDataToMulticastGroupResponse
where
rnf :: SendDataToMulticastGroupResponse -> ()
rnf SendDataToMulticastGroupResponse' {Int
Maybe Text
httpStatus :: Int
messageId :: Maybe Text
$sel:httpStatus:SendDataToMulticastGroupResponse' :: SendDataToMulticastGroupResponse -> Int
$sel:messageId:SendDataToMulticastGroupResponse' :: SendDataToMulticastGroupResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
messageId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus