{-# 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'
  { 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)

-- |
-- 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 :: 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_
    }

-- | Undocumented member.
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)

-- | Undocumented member.
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)

-- | Undocumented member.
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)

-- | Undocumented member.
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]

-- | Output of a get answer call.
--
-- /See:/ 'newGetAnswerResponse' smart constructor.
data GetAnswerResponse = GetAnswerResponse'
  { GetAnswerResponse -> Maybe Answer
answer :: Prelude.Maybe Answer,
    GetAnswerResponse -> Maybe Text
lensAlias :: Prelude.Maybe Prelude.Text,
    -- | The ARN for the lens.
    GetAnswerResponse -> Maybe Text
lensArn :: Prelude.Maybe Prelude.Text,
    GetAnswerResponse -> Maybe Natural
milestoneNumber :: Prelude.Maybe Prelude.Natural,
    GetAnswerResponse -> Maybe Text
workloadId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    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)

-- |
-- 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 :: 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_
    }

-- | Undocumented member.
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)

-- | Undocumented member.
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)

-- | The ARN for the lens.
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)

-- | Undocumented member.
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)

-- | Undocumented member.
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)

-- | The response's http status code.
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