{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.WellArchitected.GetAnswer
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get the answer to a specific question in a workload review.
module Amazonka.WellArchitected.GetAnswer
( -- * Creating a Request
GetAnswer (..),
newGetAnswer,
-- * Request Lenses
getAnswer_milestoneNumber,
getAnswer_workloadId,
getAnswer_lensAlias,
getAnswer_questionId,
-- * Destructuring the Response
GetAnswerResponse (..),
newGetAnswerResponse,
-- * Response Lenses
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
-- | Input to get answer.
--
-- /See:/ 'newGetAnswer' smart constructor.
data GetAnswer = GetAnswer'
{ milestoneNumber :: Prelude.Maybe Prelude.Natural,
workloadId :: Prelude.Text,
lensAlias :: Prelude.Text,
questionId :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetAnswer' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'milestoneNumber', 'getAnswer_milestoneNumber' - Undocumented member.
--
-- 'workloadId', 'getAnswer_workloadId' - Undocumented member.
--
-- 'lensAlias', 'getAnswer_lensAlias' - Undocumented member.
--
-- 'questionId', 'getAnswer_questionId' - Undocumented member.
newGetAnswer ::
-- | 'workloadId'
Prelude.Text ->
-- | 'lensAlias'
Prelude.Text ->
-- | 'questionId'
Prelude.Text ->
GetAnswer
newGetAnswer pWorkloadId_ pLensAlias_ pQuestionId_ =
GetAnswer'
{ milestoneNumber = Prelude.Nothing,
workloadId = pWorkloadId_,
lensAlias = pLensAlias_,
questionId = pQuestionId_
}
-- | Undocumented member.
getAnswer_milestoneNumber :: Lens.Lens' GetAnswer (Prelude.Maybe Prelude.Natural)
getAnswer_milestoneNumber = Lens.lens (\GetAnswer' {milestoneNumber} -> milestoneNumber) (\s@GetAnswer' {} a -> s {milestoneNumber = a} :: GetAnswer)
-- | Undocumented member.
getAnswer_workloadId :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_workloadId = Lens.lens (\GetAnswer' {workloadId} -> workloadId) (\s@GetAnswer' {} a -> s {workloadId = a} :: GetAnswer)
-- | Undocumented member.
getAnswer_lensAlias :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_lensAlias = Lens.lens (\GetAnswer' {lensAlias} -> lensAlias) (\s@GetAnswer' {} a -> s {lensAlias = a} :: GetAnswer)
-- | Undocumented member.
getAnswer_questionId :: Lens.Lens' GetAnswer Prelude.Text
getAnswer_questionId = Lens.lens (\GetAnswer' {questionId} -> questionId) (\s@GetAnswer' {} a -> s {questionId = a} :: GetAnswer)
instance Core.AWSRequest GetAnswer where
type AWSResponse GetAnswer = GetAnswerResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetAnswerResponse'
Prelude.<$> (x Data..?> "Answer")
Prelude.<*> (x Data..?> "LensAlias")
Prelude.<*> (x Data..?> "LensArn")
Prelude.<*> (x Data..?> "MilestoneNumber")
Prelude.<*> (x Data..?> "WorkloadId")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetAnswer where
hashWithSalt _salt GetAnswer' {..} =
_salt
`Prelude.hashWithSalt` milestoneNumber
`Prelude.hashWithSalt` workloadId
`Prelude.hashWithSalt` lensAlias
`Prelude.hashWithSalt` questionId
instance Prelude.NFData GetAnswer where
rnf GetAnswer' {..} =
Prelude.rnf milestoneNumber
`Prelude.seq` Prelude.rnf workloadId
`Prelude.seq` Prelude.rnf lensAlias
`Prelude.seq` Prelude.rnf questionId
instance Data.ToHeaders GetAnswer where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath GetAnswer where
toPath GetAnswer' {..} =
Prelude.mconcat
[ "/workloads/",
Data.toBS workloadId,
"/lensReviews/",
Data.toBS lensAlias,
"/answers/",
Data.toBS questionId
]
instance Data.ToQuery GetAnswer where
toQuery GetAnswer' {..} =
Prelude.mconcat
["MilestoneNumber" Data.=: milestoneNumber]
-- | Output of a get answer call.
--
-- /See:/ 'newGetAnswerResponse' smart constructor.
data GetAnswerResponse = GetAnswerResponse'
{ answer :: Prelude.Maybe Answer,
lensAlias :: Prelude.Maybe Prelude.Text,
-- | The ARN for the lens.
lensArn :: Prelude.Maybe Prelude.Text,
milestoneNumber :: Prelude.Maybe Prelude.Natural,
workloadId :: Prelude.Maybe Prelude.Text,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetAnswerResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'answer', 'getAnswerResponse_answer' - Undocumented member.
--
-- 'lensAlias', 'getAnswerResponse_lensAlias' - Undocumented member.
--
-- 'lensArn', 'getAnswerResponse_lensArn' - The ARN for the lens.
--
-- 'milestoneNumber', 'getAnswerResponse_milestoneNumber' - Undocumented member.
--
-- 'workloadId', 'getAnswerResponse_workloadId' - Undocumented member.
--
-- 'httpStatus', 'getAnswerResponse_httpStatus' - The response's http status code.
newGetAnswerResponse ::
-- | 'httpStatus'
Prelude.Int ->
GetAnswerResponse
newGetAnswerResponse pHttpStatus_ =
GetAnswerResponse'
{ answer = Prelude.Nothing,
lensAlias = Prelude.Nothing,
lensArn = Prelude.Nothing,
milestoneNumber = Prelude.Nothing,
workloadId = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Undocumented member.
getAnswerResponse_answer :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Answer)
getAnswerResponse_answer = Lens.lens (\GetAnswerResponse' {answer} -> answer) (\s@GetAnswerResponse' {} a -> s {answer = a} :: GetAnswerResponse)
-- | Undocumented member.
getAnswerResponse_lensAlias :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_lensAlias = Lens.lens (\GetAnswerResponse' {lensAlias} -> lensAlias) (\s@GetAnswerResponse' {} a -> s {lensAlias = a} :: GetAnswerResponse)
-- | The ARN for the lens.
getAnswerResponse_lensArn :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_lensArn = Lens.lens (\GetAnswerResponse' {lensArn} -> lensArn) (\s@GetAnswerResponse' {} a -> s {lensArn = a} :: GetAnswerResponse)
-- | Undocumented member.
getAnswerResponse_milestoneNumber :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Natural)
getAnswerResponse_milestoneNumber = Lens.lens (\GetAnswerResponse' {milestoneNumber} -> milestoneNumber) (\s@GetAnswerResponse' {} a -> s {milestoneNumber = a} :: GetAnswerResponse)
-- | Undocumented member.
getAnswerResponse_workloadId :: Lens.Lens' GetAnswerResponse (Prelude.Maybe Prelude.Text)
getAnswerResponse_workloadId = Lens.lens (\GetAnswerResponse' {workloadId} -> workloadId) (\s@GetAnswerResponse' {} a -> s {workloadId = a} :: GetAnswerResponse)
-- | The response's http status code.
getAnswerResponse_httpStatus :: Lens.Lens' GetAnswerResponse Prelude.Int
getAnswerResponse_httpStatus = Lens.lens (\GetAnswerResponse' {httpStatus} -> httpStatus) (\s@GetAnswerResponse' {} a -> s {httpStatus = a} :: GetAnswerResponse)
instance Prelude.NFData GetAnswerResponse where
rnf GetAnswerResponse' {..} =
Prelude.rnf answer
`Prelude.seq` Prelude.rnf lensAlias
`Prelude.seq` Prelude.rnf lensArn
`Prelude.seq` Prelude.rnf milestoneNumber
`Prelude.seq` Prelude.rnf workloadId
`Prelude.seq` Prelude.rnf httpStatus