{-# 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.IoT1ClickProjects.AssociateDeviceWithPlacement
(
AssociateDeviceWithPlacement (..),
newAssociateDeviceWithPlacement,
associateDeviceWithPlacement_projectName,
associateDeviceWithPlacement_placementName,
associateDeviceWithPlacement_deviceId,
associateDeviceWithPlacement_deviceTemplateName,
AssociateDeviceWithPlacementResponse (..),
newAssociateDeviceWithPlacementResponse,
associateDeviceWithPlacementResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT1ClickProjects.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data AssociateDeviceWithPlacement = AssociateDeviceWithPlacement'
{
AssociateDeviceWithPlacement -> Text
projectName :: Prelude.Text,
AssociateDeviceWithPlacement -> Text
placementName :: Prelude.Text,
AssociateDeviceWithPlacement -> Text
deviceId :: Prelude.Text,
AssociateDeviceWithPlacement -> Text
deviceTemplateName :: Prelude.Text
}
deriving (AssociateDeviceWithPlacement
-> AssociateDeviceWithPlacement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateDeviceWithPlacement
-> AssociateDeviceWithPlacement -> Bool
$c/= :: AssociateDeviceWithPlacement
-> AssociateDeviceWithPlacement -> Bool
== :: AssociateDeviceWithPlacement
-> AssociateDeviceWithPlacement -> Bool
$c== :: AssociateDeviceWithPlacement
-> AssociateDeviceWithPlacement -> Bool
Prelude.Eq, ReadPrec [AssociateDeviceWithPlacement]
ReadPrec AssociateDeviceWithPlacement
Int -> ReadS AssociateDeviceWithPlacement
ReadS [AssociateDeviceWithPlacement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateDeviceWithPlacement]
$creadListPrec :: ReadPrec [AssociateDeviceWithPlacement]
readPrec :: ReadPrec AssociateDeviceWithPlacement
$creadPrec :: ReadPrec AssociateDeviceWithPlacement
readList :: ReadS [AssociateDeviceWithPlacement]
$creadList :: ReadS [AssociateDeviceWithPlacement]
readsPrec :: Int -> ReadS AssociateDeviceWithPlacement
$creadsPrec :: Int -> ReadS AssociateDeviceWithPlacement
Prelude.Read, Int -> AssociateDeviceWithPlacement -> ShowS
[AssociateDeviceWithPlacement] -> ShowS
AssociateDeviceWithPlacement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateDeviceWithPlacement] -> ShowS
$cshowList :: [AssociateDeviceWithPlacement] -> ShowS
show :: AssociateDeviceWithPlacement -> String
$cshow :: AssociateDeviceWithPlacement -> String
showsPrec :: Int -> AssociateDeviceWithPlacement -> ShowS
$cshowsPrec :: Int -> AssociateDeviceWithPlacement -> ShowS
Prelude.Show, forall x.
Rep AssociateDeviceWithPlacement x -> AssociateDeviceWithPlacement
forall x.
AssociateDeviceWithPlacement -> Rep AssociateDeviceWithPlacement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateDeviceWithPlacement x -> AssociateDeviceWithPlacement
$cfrom :: forall x.
AssociateDeviceWithPlacement -> Rep AssociateDeviceWithPlacement x
Prelude.Generic)
newAssociateDeviceWithPlacement ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
AssociateDeviceWithPlacement
newAssociateDeviceWithPlacement :: Text -> Text -> Text -> Text -> AssociateDeviceWithPlacement
newAssociateDeviceWithPlacement
Text
pProjectName_
Text
pPlacementName_
Text
pDeviceId_
Text
pDeviceTemplateName_ =
AssociateDeviceWithPlacement'
{ $sel:projectName:AssociateDeviceWithPlacement' :: Text
projectName =
Text
pProjectName_,
$sel:placementName:AssociateDeviceWithPlacement' :: Text
placementName = Text
pPlacementName_,
$sel:deviceId:AssociateDeviceWithPlacement' :: Text
deviceId = Text
pDeviceId_,
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: Text
deviceTemplateName = Text
pDeviceTemplateName_
}
associateDeviceWithPlacement_projectName :: Lens.Lens' AssociateDeviceWithPlacement Prelude.Text
associateDeviceWithPlacement_projectName :: Lens' AssociateDeviceWithPlacement Text
associateDeviceWithPlacement_projectName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDeviceWithPlacement' {Text
projectName :: Text
$sel:projectName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
projectName} -> Text
projectName) (\s :: AssociateDeviceWithPlacement
s@AssociateDeviceWithPlacement' {} Text
a -> AssociateDeviceWithPlacement
s {$sel:projectName:AssociateDeviceWithPlacement' :: Text
projectName = Text
a} :: AssociateDeviceWithPlacement)
associateDeviceWithPlacement_placementName :: Lens.Lens' AssociateDeviceWithPlacement Prelude.Text
associateDeviceWithPlacement_placementName :: Lens' AssociateDeviceWithPlacement Text
associateDeviceWithPlacement_placementName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDeviceWithPlacement' {Text
placementName :: Text
$sel:placementName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
placementName} -> Text
placementName) (\s :: AssociateDeviceWithPlacement
s@AssociateDeviceWithPlacement' {} Text
a -> AssociateDeviceWithPlacement
s {$sel:placementName:AssociateDeviceWithPlacement' :: Text
placementName = Text
a} :: AssociateDeviceWithPlacement)
associateDeviceWithPlacement_deviceId :: Lens.Lens' AssociateDeviceWithPlacement Prelude.Text
associateDeviceWithPlacement_deviceId :: Lens' AssociateDeviceWithPlacement Text
associateDeviceWithPlacement_deviceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDeviceWithPlacement' {Text
deviceId :: Text
$sel:deviceId:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
deviceId} -> Text
deviceId) (\s :: AssociateDeviceWithPlacement
s@AssociateDeviceWithPlacement' {} Text
a -> AssociateDeviceWithPlacement
s {$sel:deviceId:AssociateDeviceWithPlacement' :: Text
deviceId = Text
a} :: AssociateDeviceWithPlacement)
associateDeviceWithPlacement_deviceTemplateName :: Lens.Lens' AssociateDeviceWithPlacement Prelude.Text
associateDeviceWithPlacement_deviceTemplateName :: Lens' AssociateDeviceWithPlacement Text
associateDeviceWithPlacement_deviceTemplateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDeviceWithPlacement' {Text
deviceTemplateName :: Text
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
deviceTemplateName} -> Text
deviceTemplateName) (\s :: AssociateDeviceWithPlacement
s@AssociateDeviceWithPlacement' {} Text
a -> AssociateDeviceWithPlacement
s {$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: Text
deviceTemplateName = Text
a} :: AssociateDeviceWithPlacement)
instance Core.AWSRequest AssociateDeviceWithPlacement where
type
AWSResponse AssociateDeviceWithPlacement =
AssociateDeviceWithPlacementResponse
request :: (Service -> Service)
-> AssociateDeviceWithPlacement
-> Request AssociateDeviceWithPlacement
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 AssociateDeviceWithPlacement
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse AssociateDeviceWithPlacement)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Int -> AssociateDeviceWithPlacementResponse
AssociateDeviceWithPlacementResponse'
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))
)
instance
Prelude.Hashable
AssociateDeviceWithPlacement
where
hashWithSalt :: Int -> AssociateDeviceWithPlacement -> Int
hashWithSalt Int
_salt AssociateDeviceWithPlacement' {Text
deviceTemplateName :: Text
deviceId :: Text
placementName :: Text
projectName :: Text
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:deviceId:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:placementName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:projectName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
projectName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
placementName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
deviceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
deviceTemplateName
instance Prelude.NFData AssociateDeviceWithPlacement where
rnf :: AssociateDeviceWithPlacement -> ()
rnf AssociateDeviceWithPlacement' {Text
deviceTemplateName :: Text
deviceId :: Text
placementName :: Text
projectName :: Text
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:deviceId:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:placementName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:projectName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
projectName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
placementName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceTemplateName
instance Data.ToHeaders AssociateDeviceWithPlacement where
toHeaders :: AssociateDeviceWithPlacement -> 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 AssociateDeviceWithPlacement where
toJSON :: AssociateDeviceWithPlacement -> Value
toJSON AssociateDeviceWithPlacement' {Text
deviceTemplateName :: Text
deviceId :: Text
placementName :: Text
projectName :: Text
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:deviceId:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:placementName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:projectName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"deviceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
deviceId)]
)
instance Data.ToPath AssociateDeviceWithPlacement where
toPath :: AssociateDeviceWithPlacement -> ByteString
toPath AssociateDeviceWithPlacement' {Text
deviceTemplateName :: Text
deviceId :: Text
placementName :: Text
projectName :: Text
$sel:deviceTemplateName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:deviceId:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:placementName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
$sel:projectName:AssociateDeviceWithPlacement' :: AssociateDeviceWithPlacement -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/projects/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
projectName,
ByteString
"/placements/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
placementName,
ByteString
"/devices/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
deviceTemplateName
]
instance Data.ToQuery AssociateDeviceWithPlacement where
toQuery :: AssociateDeviceWithPlacement -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data AssociateDeviceWithPlacementResponse = AssociateDeviceWithPlacementResponse'
{
AssociateDeviceWithPlacementResponse -> Int
httpStatus :: Prelude.Int
}
deriving (AssociateDeviceWithPlacementResponse
-> AssociateDeviceWithPlacementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateDeviceWithPlacementResponse
-> AssociateDeviceWithPlacementResponse -> Bool
$c/= :: AssociateDeviceWithPlacementResponse
-> AssociateDeviceWithPlacementResponse -> Bool
== :: AssociateDeviceWithPlacementResponse
-> AssociateDeviceWithPlacementResponse -> Bool
$c== :: AssociateDeviceWithPlacementResponse
-> AssociateDeviceWithPlacementResponse -> Bool
Prelude.Eq, ReadPrec [AssociateDeviceWithPlacementResponse]
ReadPrec AssociateDeviceWithPlacementResponse
Int -> ReadS AssociateDeviceWithPlacementResponse
ReadS [AssociateDeviceWithPlacementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateDeviceWithPlacementResponse]
$creadListPrec :: ReadPrec [AssociateDeviceWithPlacementResponse]
readPrec :: ReadPrec AssociateDeviceWithPlacementResponse
$creadPrec :: ReadPrec AssociateDeviceWithPlacementResponse
readList :: ReadS [AssociateDeviceWithPlacementResponse]
$creadList :: ReadS [AssociateDeviceWithPlacementResponse]
readsPrec :: Int -> ReadS AssociateDeviceWithPlacementResponse
$creadsPrec :: Int -> ReadS AssociateDeviceWithPlacementResponse
Prelude.Read, Int -> AssociateDeviceWithPlacementResponse -> ShowS
[AssociateDeviceWithPlacementResponse] -> ShowS
AssociateDeviceWithPlacementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateDeviceWithPlacementResponse] -> ShowS
$cshowList :: [AssociateDeviceWithPlacementResponse] -> ShowS
show :: AssociateDeviceWithPlacementResponse -> String
$cshow :: AssociateDeviceWithPlacementResponse -> String
showsPrec :: Int -> AssociateDeviceWithPlacementResponse -> ShowS
$cshowsPrec :: Int -> AssociateDeviceWithPlacementResponse -> ShowS
Prelude.Show, forall x.
Rep AssociateDeviceWithPlacementResponse x
-> AssociateDeviceWithPlacementResponse
forall x.
AssociateDeviceWithPlacementResponse
-> Rep AssociateDeviceWithPlacementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateDeviceWithPlacementResponse x
-> AssociateDeviceWithPlacementResponse
$cfrom :: forall x.
AssociateDeviceWithPlacementResponse
-> Rep AssociateDeviceWithPlacementResponse x
Prelude.Generic)
newAssociateDeviceWithPlacementResponse ::
Prelude.Int ->
AssociateDeviceWithPlacementResponse
newAssociateDeviceWithPlacementResponse :: Int -> AssociateDeviceWithPlacementResponse
newAssociateDeviceWithPlacementResponse Int
pHttpStatus_ =
AssociateDeviceWithPlacementResponse'
{ $sel:httpStatus:AssociateDeviceWithPlacementResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
associateDeviceWithPlacementResponse_httpStatus :: Lens.Lens' AssociateDeviceWithPlacementResponse Prelude.Int
associateDeviceWithPlacementResponse_httpStatus :: Lens' AssociateDeviceWithPlacementResponse Int
associateDeviceWithPlacementResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateDeviceWithPlacementResponse' {Int
httpStatus :: Int
$sel:httpStatus:AssociateDeviceWithPlacementResponse' :: AssociateDeviceWithPlacementResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: AssociateDeviceWithPlacementResponse
s@AssociateDeviceWithPlacementResponse' {} Int
a -> AssociateDeviceWithPlacementResponse
s {$sel:httpStatus:AssociateDeviceWithPlacementResponse' :: Int
httpStatus = Int
a} :: AssociateDeviceWithPlacementResponse)
instance
Prelude.NFData
AssociateDeviceWithPlacementResponse
where
rnf :: AssociateDeviceWithPlacementResponse -> ()
rnf AssociateDeviceWithPlacementResponse' {Int
httpStatus :: Int
$sel:httpStatus:AssociateDeviceWithPlacementResponse' :: AssociateDeviceWithPlacementResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus