{-# 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.WellArchitected.GetAnswer
(
GetAnswer (..),
newGetAnswer,
getAnswer_milestoneNumber,
getAnswer_workloadId,
getAnswer_lensAlias,
getAnswer_questionId,
GetAnswerResponse (..),
newGetAnswerResponse,
getAnswerResponse_answer,
getAnswerResponse_lensAlias,
getAnswerResponse_lensArn,
getAnswerResponse_milestoneNumber,
getAnswerResponse_workloadId,
getAnswerResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.WellArchitected.Types
data GetAnswer = GetAnswer'
{ GetAnswer -> Maybe Natural
milestoneNumber :: Prelude.Maybe Prelude.Natural,
GetAnswer -> Text
workloadId :: Prelude.Text,
GetAnswer -> Text
lensAlias :: Prelude.Text,
GetAnswer -> Text
questionId :: Prelude.Text
}
deriving (GetAnswer -> GetAnswer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAnswer -> GetAnswer -> Bool
$c/= :: GetAnswer -> GetAnswer -> Bool
== :: GetAnswer -> GetAnswer -> Bool
$c== :: GetAnswer -> GetAnswer -> Bool
Prelude.Eq, ReadPrec [GetAnswer]
ReadPrec GetAnswer
Int -> ReadS GetAnswer
ReadS [GetAnswer]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAnswer]
$creadListPrec :: ReadPrec [GetAnswer]
readPrec :: ReadPrec GetAnswer
$creadPrec :: ReadPrec GetAnswer
readList :: ReadS [GetAnswer]
$creadList :: ReadS [GetAnswer]
readsPrec :: Int -> ReadS GetAnswer
$creadsPrec :: Int -> ReadS GetAnswer
Prelude.Read, Int -> GetAnswer -> ShowS
[GetAnswer] -> ShowS
GetAnswer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAnswer] -> ShowS
$cshowList :: [GetAnswer] -> ShowS
show :: GetAnswer -> String
$cshow :: GetAnswer -> String
showsPrec :: Int -> GetAnswer -> ShowS
$cshowsPrec :: Int -> GetAnswer -> ShowS
Prelude.Show, forall x. Rep GetAnswer x -> GetAnswer
forall x. GetAnswer -> Rep GetAnswer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAnswer x -> GetAnswer
$cfrom :: forall x. GetAnswer -> Rep GetAnswer x
Prelude.Generic)
newGetAnswer ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
GetAnswer
newGetAnswer :: Text -> Text -> Text -> GetAnswer
newGetAnswer Text
pWorkloadId_ Text
pLensAlias_ Text
pQuestionId_ =
GetAnswer'
{ $sel:milestoneNumber:GetAnswer' :: Maybe Natural
milestoneNumber = forall a. Maybe a
Prelude.Nothing,
$sel:workloadId:GetAnswer' :: Text
workloadId = Text
pWorkloadId_,
$sel:lensAlias:GetAnswer' :: Text
lensAlias = Text
pLensAlias_,
$sel:questionId:GetAnswer' :: Text
questionId = Text
pQuestionId_
}
getAnswer_milestoneNumber :: Lens.Lens' GetAnswer (Prelude.Maybe Prelude.Natural)
getAnswer_milestoneNumber :: Lens' GetAnswer (Maybe Natural)
getAnswer_milestoneNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswer' {Maybe Natural
milestoneNumber :: Maybe Natural
$sel:milestoneNumber:GetAnswer' :: GetAnswer -> Maybe Natural
milestoneNumber} -> Maybe Natural
milestoneNumber) (\s :: GetAnswer
s@GetAnswer' {} Maybe Natural
a -> GetAnswer
s {$sel:milestoneNumber:GetAnswer' :: Maybe Natural
milestoneNumber = Maybe Natural
a} :: GetAnswer)
getAnswer_workloadId :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_workloadId :: Lens' GetAnswer Text
getAnswer_workloadId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswer' {Text
workloadId :: Text
$sel:workloadId:GetAnswer' :: GetAnswer -> Text
workloadId} -> Text
workloadId) (\s :: GetAnswer
s@GetAnswer' {} Text
a -> GetAnswer
s {$sel:workloadId:GetAnswer' :: Text
workloadId = Text
a} :: GetAnswer)
getAnswer_lensAlias :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_lensAlias :: Lens' GetAnswer Text
getAnswer_lensAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswer' {Text
lensAlias :: Text
$sel:lensAlias:GetAnswer' :: GetAnswer -> Text
lensAlias} -> Text
lensAlias) (\s :: GetAnswer
s@GetAnswer' {} Text
a -> GetAnswer
s {$sel:lensAlias:GetAnswer' :: Text
lensAlias = Text
a} :: GetAnswer)
getAnswer_questionId :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_questionId :: Lens' GetAnswer Text
getAnswer_questionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswer' {Text
questionId :: Text
$sel:questionId:GetAnswer' :: GetAnswer -> Text
questionId} -> Text
questionId) (\s :: GetAnswer
s@GetAnswer' {} Text
a -> GetAnswer
s {$sel:questionId:GetAnswer' :: Text
questionId = Text
a} :: GetAnswer)
instance Core.AWSRequest GetAnswer where
type AWSResponse GetAnswer = GetAnswerResponse
request :: (Service -> Service) -> GetAnswer -> Request GetAnswer
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 GetAnswer
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetAnswer)))
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 Answer
-> Maybe Text
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Int
-> GetAnswerResponse
GetAnswerResponse'
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
"Answer")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LensAlias")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LensArn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"MilestoneNumber")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"WorkloadId")
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 GetAnswer where
hashWithSalt :: Int -> GetAnswer -> Int
hashWithSalt Int
_salt GetAnswer' {Maybe Natural
Text
questionId :: Text
lensAlias :: Text
workloadId :: Text
milestoneNumber :: Maybe Natural
$sel:questionId:GetAnswer' :: GetAnswer -> Text
$sel:lensAlias:GetAnswer' :: GetAnswer -> Text
$sel:workloadId:GetAnswer' :: GetAnswer -> Text
$sel:milestoneNumber:GetAnswer' :: GetAnswer -> Maybe Natural
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
milestoneNumber
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workloadId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
lensAlias
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
questionId
instance Prelude.NFData GetAnswer where
rnf :: GetAnswer -> ()
rnf GetAnswer' {Maybe Natural
Text
questionId :: Text
lensAlias :: Text
workloadId :: Text
milestoneNumber :: Maybe Natural
$sel:questionId:GetAnswer' :: GetAnswer -> Text
$sel:lensAlias:GetAnswer' :: GetAnswer -> Text
$sel:workloadId:GetAnswer' :: GetAnswer -> Text
$sel:milestoneNumber:GetAnswer' :: GetAnswer -> Maybe Natural
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
milestoneNumber
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
workloadId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
lensAlias
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
questionId
instance Data.ToHeaders GetAnswer where
toHeaders :: GetAnswer -> 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 GetAnswer where
toPath :: GetAnswer -> ByteString
toPath GetAnswer' {Maybe Natural
Text
questionId :: Text
lensAlias :: Text
workloadId :: Text
milestoneNumber :: Maybe Natural
$sel:questionId:GetAnswer' :: GetAnswer -> Text
$sel:lensAlias:GetAnswer' :: GetAnswer -> Text
$sel:workloadId:GetAnswer' :: GetAnswer -> Text
$sel:milestoneNumber:GetAnswer' :: GetAnswer -> Maybe Natural
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/workloads/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
workloadId,
ByteString
"/lensReviews/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
lensAlias,
ByteString
"/answers/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
questionId
]
instance Data.ToQuery GetAnswer where
toQuery :: GetAnswer -> QueryString
toQuery GetAnswer' {Maybe Natural
Text
questionId :: Text
lensAlias :: Text
workloadId :: Text
milestoneNumber :: Maybe Natural
$sel:questionId:GetAnswer' :: GetAnswer -> Text
$sel:lensAlias:GetAnswer' :: GetAnswer -> Text
$sel:workloadId:GetAnswer' :: GetAnswer -> Text
$sel:milestoneNumber:GetAnswer' :: GetAnswer -> Maybe Natural
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"MilestoneNumber" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Natural
milestoneNumber]
data GetAnswerResponse = GetAnswerResponse'
{ GetAnswerResponse -> Maybe Answer
answer :: Prelude.Maybe Answer,
GetAnswerResponse -> Maybe Text
lensAlias :: Prelude.Maybe Prelude.Text,
GetAnswerResponse -> Maybe Text
lensArn :: Prelude.Maybe Prelude.Text,
GetAnswerResponse -> Maybe Natural
milestoneNumber :: Prelude.Maybe Prelude.Natural,
GetAnswerResponse -> Maybe Text
workloadId :: Prelude.Maybe Prelude.Text,
GetAnswerResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetAnswerResponse -> GetAnswerResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetAnswerResponse -> GetAnswerResponse -> Bool
$c/= :: GetAnswerResponse -> GetAnswerResponse -> Bool
== :: GetAnswerResponse -> GetAnswerResponse -> Bool
$c== :: GetAnswerResponse -> GetAnswerResponse -> Bool
Prelude.Eq, ReadPrec [GetAnswerResponse]
ReadPrec GetAnswerResponse
Int -> ReadS GetAnswerResponse
ReadS [GetAnswerResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetAnswerResponse]
$creadListPrec :: ReadPrec [GetAnswerResponse]
readPrec :: ReadPrec GetAnswerResponse
$creadPrec :: ReadPrec GetAnswerResponse
readList :: ReadS [GetAnswerResponse]
$creadList :: ReadS [GetAnswerResponse]
readsPrec :: Int -> ReadS GetAnswerResponse
$creadsPrec :: Int -> ReadS GetAnswerResponse
Prelude.Read, Int -> GetAnswerResponse -> ShowS
[GetAnswerResponse] -> ShowS
GetAnswerResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetAnswerResponse] -> ShowS
$cshowList :: [GetAnswerResponse] -> ShowS
show :: GetAnswerResponse -> String
$cshow :: GetAnswerResponse -> String
showsPrec :: Int -> GetAnswerResponse -> ShowS
$cshowsPrec :: Int -> GetAnswerResponse -> ShowS
Prelude.Show, forall x. Rep GetAnswerResponse x -> GetAnswerResponse
forall x. GetAnswerResponse -> Rep GetAnswerResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetAnswerResponse x -> GetAnswerResponse
$cfrom :: forall x. GetAnswerResponse -> Rep GetAnswerResponse x
Prelude.Generic)
newGetAnswerResponse ::
Prelude.Int ->
GetAnswerResponse
newGetAnswerResponse :: Int -> GetAnswerResponse
newGetAnswerResponse Int
pHttpStatus_ =
GetAnswerResponse'
{ $sel:answer:GetAnswerResponse' :: Maybe Answer
answer = forall a. Maybe a
Prelude.Nothing,
$sel:lensAlias:GetAnswerResponse' :: Maybe Text
lensAlias = forall a. Maybe a
Prelude.Nothing,
$sel:lensArn:GetAnswerResponse' :: Maybe Text
lensArn = forall a. Maybe a
Prelude.Nothing,
$sel:milestoneNumber:GetAnswerResponse' :: Maybe Natural
milestoneNumber = forall a. Maybe a
Prelude.Nothing,
$sel:workloadId:GetAnswerResponse' :: Maybe Text
workloadId = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetAnswerResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getAnswerResponse_answer :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Answer)
getAnswerResponse_answer :: Lens' GetAnswerResponse (Maybe Answer)
getAnswerResponse_answer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Maybe Answer
answer :: Maybe Answer
$sel:answer:GetAnswerResponse' :: GetAnswerResponse -> Maybe Answer
answer} -> Maybe Answer
answer) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Maybe Answer
a -> GetAnswerResponse
s {$sel:answer:GetAnswerResponse' :: Maybe Answer
answer = Maybe Answer
a} :: GetAnswerResponse)
getAnswerResponse_lensAlias :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_lensAlias :: Lens' GetAnswerResponse (Maybe Text)
getAnswerResponse_lensAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Maybe Text
lensAlias :: Maybe Text
$sel:lensAlias:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
lensAlias} -> Maybe Text
lensAlias) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Maybe Text
a -> GetAnswerResponse
s {$sel:lensAlias:GetAnswerResponse' :: Maybe Text
lensAlias = Maybe Text
a} :: GetAnswerResponse)
getAnswerResponse_lensArn :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_lensArn :: Lens' GetAnswerResponse (Maybe Text)
getAnswerResponse_lensArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Maybe Text
lensArn :: Maybe Text
$sel:lensArn:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
lensArn} -> Maybe Text
lensArn) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Maybe Text
a -> GetAnswerResponse
s {$sel:lensArn:GetAnswerResponse' :: Maybe Text
lensArn = Maybe Text
a} :: GetAnswerResponse)
getAnswerResponse_milestoneNumber :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Natural)
getAnswerResponse_milestoneNumber :: Lens' GetAnswerResponse (Maybe Natural)
getAnswerResponse_milestoneNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Maybe Natural
milestoneNumber :: Maybe Natural
$sel:milestoneNumber:GetAnswerResponse' :: GetAnswerResponse -> Maybe Natural
milestoneNumber} -> Maybe Natural
milestoneNumber) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Maybe Natural
a -> GetAnswerResponse
s {$sel:milestoneNumber:GetAnswerResponse' :: Maybe Natural
milestoneNumber = Maybe Natural
a} :: GetAnswerResponse)
getAnswerResponse_workloadId :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_workloadId :: Lens' GetAnswerResponse (Maybe Text)
getAnswerResponse_workloadId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Maybe Text
workloadId :: Maybe Text
$sel:workloadId:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
workloadId} -> Maybe Text
workloadId) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Maybe Text
a -> GetAnswerResponse
s {$sel:workloadId:GetAnswerResponse' :: Maybe Text
workloadId = Maybe Text
a} :: GetAnswerResponse)
getAnswerResponse_httpStatus :: Lens.Lens' GetAnswerResponse Prelude.Int
getAnswerResponse_httpStatus :: Lens' GetAnswerResponse Int
getAnswerResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetAnswerResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetAnswerResponse' :: GetAnswerResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetAnswerResponse
s@GetAnswerResponse' {} Int
a -> GetAnswerResponse
s {$sel:httpStatus:GetAnswerResponse' :: Int
httpStatus = Int
a} :: GetAnswerResponse)
instance Prelude.NFData GetAnswerResponse where
rnf :: GetAnswerResponse -> ()
rnf GetAnswerResponse' {Int
Maybe Natural
Maybe Text
Maybe Answer
httpStatus :: Int
workloadId :: Maybe Text
milestoneNumber :: Maybe Natural
lensArn :: Maybe Text
lensAlias :: Maybe Text
answer :: Maybe Answer
$sel:httpStatus:GetAnswerResponse' :: GetAnswerResponse -> Int
$sel:workloadId:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
$sel:milestoneNumber:GetAnswerResponse' :: GetAnswerResponse -> Maybe Natural
$sel:lensArn:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
$sel:lensAlias:GetAnswerResponse' :: GetAnswerResponse -> Maybe Text
$sel:answer:GetAnswerResponse' :: GetAnswerResponse -> Maybe Answer
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Answer
answer
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensAlias
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
milestoneNumber
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
workloadId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus