{-# 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.DescribePlacement
(
DescribePlacement (..),
newDescribePlacement,
describePlacement_placementName,
describePlacement_projectName,
DescribePlacementResponse (..),
newDescribePlacementResponse,
describePlacementResponse_httpStatus,
describePlacementResponse_placement,
)
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 DescribePlacement = DescribePlacement'
{
DescribePlacement -> Text
placementName :: Prelude.Text,
DescribePlacement -> Text
projectName :: Prelude.Text
}
deriving (DescribePlacement -> DescribePlacement -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePlacement -> DescribePlacement -> Bool
$c/= :: DescribePlacement -> DescribePlacement -> Bool
== :: DescribePlacement -> DescribePlacement -> Bool
$c== :: DescribePlacement -> DescribePlacement -> Bool
Prelude.Eq, ReadPrec [DescribePlacement]
ReadPrec DescribePlacement
Int -> ReadS DescribePlacement
ReadS [DescribePlacement]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePlacement]
$creadListPrec :: ReadPrec [DescribePlacement]
readPrec :: ReadPrec DescribePlacement
$creadPrec :: ReadPrec DescribePlacement
readList :: ReadS [DescribePlacement]
$creadList :: ReadS [DescribePlacement]
readsPrec :: Int -> ReadS DescribePlacement
$creadsPrec :: Int -> ReadS DescribePlacement
Prelude.Read, Int -> DescribePlacement -> ShowS
[DescribePlacement] -> ShowS
DescribePlacement -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePlacement] -> ShowS
$cshowList :: [DescribePlacement] -> ShowS
show :: DescribePlacement -> String
$cshow :: DescribePlacement -> String
showsPrec :: Int -> DescribePlacement -> ShowS
$cshowsPrec :: Int -> DescribePlacement -> ShowS
Prelude.Show, forall x. Rep DescribePlacement x -> DescribePlacement
forall x. DescribePlacement -> Rep DescribePlacement x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribePlacement x -> DescribePlacement
$cfrom :: forall x. DescribePlacement -> Rep DescribePlacement x
Prelude.Generic)
newDescribePlacement ::
Prelude.Text ->
Prelude.Text ->
DescribePlacement
newDescribePlacement :: Text -> Text -> DescribePlacement
newDescribePlacement Text
pPlacementName_ Text
pProjectName_ =
DescribePlacement'
{ $sel:placementName:DescribePlacement' :: Text
placementName = Text
pPlacementName_,
$sel:projectName:DescribePlacement' :: Text
projectName = Text
pProjectName_
}
describePlacement_placementName :: Lens.Lens' DescribePlacement Prelude.Text
describePlacement_placementName :: Lens' DescribePlacement Text
describePlacement_placementName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlacement' {Text
placementName :: Text
$sel:placementName:DescribePlacement' :: DescribePlacement -> Text
placementName} -> Text
placementName) (\s :: DescribePlacement
s@DescribePlacement' {} Text
a -> DescribePlacement
s {$sel:placementName:DescribePlacement' :: Text
placementName = Text
a} :: DescribePlacement)
describePlacement_projectName :: Lens.Lens' DescribePlacement Prelude.Text
describePlacement_projectName :: Lens' DescribePlacement Text
describePlacement_projectName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlacement' {Text
projectName :: Text
$sel:projectName:DescribePlacement' :: DescribePlacement -> Text
projectName} -> Text
projectName) (\s :: DescribePlacement
s@DescribePlacement' {} Text
a -> DescribePlacement
s {$sel:projectName:DescribePlacement' :: Text
projectName = Text
a} :: DescribePlacement)
instance Core.AWSRequest DescribePlacement where
type
AWSResponse DescribePlacement =
DescribePlacementResponse
request :: (Service -> Service)
-> DescribePlacement -> Request DescribePlacement
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribePlacement
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse DescribePlacement)))
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 -> PlacementDescription -> DescribePlacementResponse
DescribePlacementResponse'
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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"placement")
)
instance Prelude.Hashable DescribePlacement where
hashWithSalt :: Int -> DescribePlacement -> Int
hashWithSalt Int
_salt DescribePlacement' {Text
projectName :: Text
placementName :: Text
$sel:projectName:DescribePlacement' :: DescribePlacement -> Text
$sel:placementName:DescribePlacement' :: DescribePlacement -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
placementName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
projectName
instance Prelude.NFData DescribePlacement where
rnf :: DescribePlacement -> ()
rnf DescribePlacement' {Text
projectName :: Text
placementName :: Text
$sel:projectName:DescribePlacement' :: DescribePlacement -> Text
$sel:placementName:DescribePlacement' :: DescribePlacement -> Text
..} =
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
projectName
instance Data.ToHeaders DescribePlacement where
toHeaders :: DescribePlacement -> 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.ToPath DescribePlacement where
toPath :: DescribePlacement -> ByteString
toPath DescribePlacement' {Text
projectName :: Text
placementName :: Text
$sel:projectName:DescribePlacement' :: DescribePlacement -> Text
$sel:placementName:DescribePlacement' :: DescribePlacement -> 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
]
instance Data.ToQuery DescribePlacement where
toQuery :: DescribePlacement -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data DescribePlacementResponse = DescribePlacementResponse'
{
DescribePlacementResponse -> Int
httpStatus :: Prelude.Int,
DescribePlacementResponse -> PlacementDescription
placement :: PlacementDescription
}
deriving (DescribePlacementResponse -> DescribePlacementResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribePlacementResponse -> DescribePlacementResponse -> Bool
$c/= :: DescribePlacementResponse -> DescribePlacementResponse -> Bool
== :: DescribePlacementResponse -> DescribePlacementResponse -> Bool
$c== :: DescribePlacementResponse -> DescribePlacementResponse -> Bool
Prelude.Eq, ReadPrec [DescribePlacementResponse]
ReadPrec DescribePlacementResponse
Int -> ReadS DescribePlacementResponse
ReadS [DescribePlacementResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribePlacementResponse]
$creadListPrec :: ReadPrec [DescribePlacementResponse]
readPrec :: ReadPrec DescribePlacementResponse
$creadPrec :: ReadPrec DescribePlacementResponse
readList :: ReadS [DescribePlacementResponse]
$creadList :: ReadS [DescribePlacementResponse]
readsPrec :: Int -> ReadS DescribePlacementResponse
$creadsPrec :: Int -> ReadS DescribePlacementResponse
Prelude.Read, Int -> DescribePlacementResponse -> ShowS
[DescribePlacementResponse] -> ShowS
DescribePlacementResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribePlacementResponse] -> ShowS
$cshowList :: [DescribePlacementResponse] -> ShowS
show :: DescribePlacementResponse -> String
$cshow :: DescribePlacementResponse -> String
showsPrec :: Int -> DescribePlacementResponse -> ShowS
$cshowsPrec :: Int -> DescribePlacementResponse -> ShowS
Prelude.Show, forall x.
Rep DescribePlacementResponse x -> DescribePlacementResponse
forall x.
DescribePlacementResponse -> Rep DescribePlacementResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribePlacementResponse x -> DescribePlacementResponse
$cfrom :: forall x.
DescribePlacementResponse -> Rep DescribePlacementResponse x
Prelude.Generic)
newDescribePlacementResponse ::
Prelude.Int ->
PlacementDescription ->
DescribePlacementResponse
newDescribePlacementResponse :: Int -> PlacementDescription -> DescribePlacementResponse
newDescribePlacementResponse Int
pHttpStatus_ PlacementDescription
pPlacement_ =
DescribePlacementResponse'
{ $sel:httpStatus:DescribePlacementResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:placement:DescribePlacementResponse' :: PlacementDescription
placement = PlacementDescription
pPlacement_
}
describePlacementResponse_httpStatus :: Lens.Lens' DescribePlacementResponse Prelude.Int
describePlacementResponse_httpStatus :: Lens' DescribePlacementResponse Int
describePlacementResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlacementResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribePlacementResponse' :: DescribePlacementResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribePlacementResponse
s@DescribePlacementResponse' {} Int
a -> DescribePlacementResponse
s {$sel:httpStatus:DescribePlacementResponse' :: Int
httpStatus = Int
a} :: DescribePlacementResponse)
describePlacementResponse_placement :: Lens.Lens' DescribePlacementResponse PlacementDescription
describePlacementResponse_placement :: Lens' DescribePlacementResponse PlacementDescription
describePlacementResponse_placement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribePlacementResponse' {PlacementDescription
placement :: PlacementDescription
$sel:placement:DescribePlacementResponse' :: DescribePlacementResponse -> PlacementDescription
placement} -> PlacementDescription
placement) (\s :: DescribePlacementResponse
s@DescribePlacementResponse' {} PlacementDescription
a -> DescribePlacementResponse
s {$sel:placement:DescribePlacementResponse' :: PlacementDescription
placement = PlacementDescription
a} :: DescribePlacementResponse)
instance Prelude.NFData DescribePlacementResponse where
rnf :: DescribePlacementResponse -> ()
rnf DescribePlacementResponse' {Int
PlacementDescription
placement :: PlacementDescription
httpStatus :: Int
$sel:placement:DescribePlacementResponse' :: DescribePlacementResponse -> PlacementDescription
$sel:httpStatus:DescribePlacementResponse' :: DescribePlacementResponse -> 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 PlacementDescription
placement