{-# 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.Braket.GetQuantumTask
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves the specified quantum task.
module Amazonka.Braket.GetQuantumTask
  ( -- * Creating a Request
    GetQuantumTask (..),
    newGetQuantumTask,

    -- * Request Lenses
    getQuantumTask_quantumTaskArn,

    -- * Destructuring the Response
    GetQuantumTaskResponse (..),
    newGetQuantumTaskResponse,

    -- * Response Lenses
    getQuantumTaskResponse_endedAt,
    getQuantumTaskResponse_failureReason,
    getQuantumTaskResponse_jobArn,
    getQuantumTaskResponse_tags,
    getQuantumTaskResponse_httpStatus,
    getQuantumTaskResponse_createdAt,
    getQuantumTaskResponse_deviceArn,
    getQuantumTaskResponse_deviceParameters,
    getQuantumTaskResponse_outputS3Bucket,
    getQuantumTaskResponse_outputS3Directory,
    getQuantumTaskResponse_quantumTaskArn,
    getQuantumTaskResponse_shots,
    getQuantumTaskResponse_status,
  )
where

import Amazonka.Braket.Types
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

-- | /See:/ 'newGetQuantumTask' smart constructor.
data GetQuantumTask = GetQuantumTask'
  { -- | the ARN of the task to retrieve.
    GetQuantumTask -> Text
quantumTaskArn :: Prelude.Text
  }
  deriving (GetQuantumTask -> GetQuantumTask -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetQuantumTask -> GetQuantumTask -> Bool
$c/= :: GetQuantumTask -> GetQuantumTask -> Bool
== :: GetQuantumTask -> GetQuantumTask -> Bool
$c== :: GetQuantumTask -> GetQuantumTask -> Bool
Prelude.Eq, ReadPrec [GetQuantumTask]
ReadPrec GetQuantumTask
Int -> ReadS GetQuantumTask
ReadS [GetQuantumTask]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetQuantumTask]
$creadListPrec :: ReadPrec [GetQuantumTask]
readPrec :: ReadPrec GetQuantumTask
$creadPrec :: ReadPrec GetQuantumTask
readList :: ReadS [GetQuantumTask]
$creadList :: ReadS [GetQuantumTask]
readsPrec :: Int -> ReadS GetQuantumTask
$creadsPrec :: Int -> ReadS GetQuantumTask
Prelude.Read, Int -> GetQuantumTask -> ShowS
[GetQuantumTask] -> ShowS
GetQuantumTask -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetQuantumTask] -> ShowS
$cshowList :: [GetQuantumTask] -> ShowS
show :: GetQuantumTask -> String
$cshow :: GetQuantumTask -> String
showsPrec :: Int -> GetQuantumTask -> ShowS
$cshowsPrec :: Int -> GetQuantumTask -> ShowS
Prelude.Show, forall x. Rep GetQuantumTask x -> GetQuantumTask
forall x. GetQuantumTask -> Rep GetQuantumTask x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetQuantumTask x -> GetQuantumTask
$cfrom :: forall x. GetQuantumTask -> Rep GetQuantumTask x
Prelude.Generic)

-- |
-- Create a value of 'GetQuantumTask' 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:
--
-- 'quantumTaskArn', 'getQuantumTask_quantumTaskArn' - the ARN of the task to retrieve.
newGetQuantumTask ::
  -- | 'quantumTaskArn'
  Prelude.Text ->
  GetQuantumTask
newGetQuantumTask :: Text -> GetQuantumTask
newGetQuantumTask Text
pQuantumTaskArn_ =
  GetQuantumTask' {$sel:quantumTaskArn:GetQuantumTask' :: Text
quantumTaskArn = Text
pQuantumTaskArn_}

-- | the ARN of the task to retrieve.
getQuantumTask_quantumTaskArn :: Lens.Lens' GetQuantumTask Prelude.Text
getQuantumTask_quantumTaskArn :: Lens' GetQuantumTask Text
getQuantumTask_quantumTaskArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTask' {Text
quantumTaskArn :: Text
$sel:quantumTaskArn:GetQuantumTask' :: GetQuantumTask -> Text
quantumTaskArn} -> Text
quantumTaskArn) (\s :: GetQuantumTask
s@GetQuantumTask' {} Text
a -> GetQuantumTask
s {$sel:quantumTaskArn:GetQuantumTask' :: Text
quantumTaskArn = Text
a} :: GetQuantumTask)

instance Core.AWSRequest GetQuantumTask where
  type
    AWSResponse GetQuantumTask =
      GetQuantumTaskResponse
  request :: (Service -> Service) -> GetQuantumTask -> Request GetQuantumTask
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 GetQuantumTask
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetQuantumTask)))
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 ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> ISO8601
-> Text
-> Text
-> Text
-> Text
-> Text
-> Integer
-> QuantumTaskStatus
-> GetQuantumTaskResponse
GetQuantumTaskResponse'
            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
"endedAt")
            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
"failureReason")
            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
"jobArn")
            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
"tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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))
            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
"createdAt")
            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
"deviceArn")
            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
"deviceParameters")
            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
"outputS3Bucket")
            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
"outputS3Directory")
            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
"quantumTaskArn")
            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
"shots")
            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
"status")
      )

instance Prelude.Hashable GetQuantumTask where
  hashWithSalt :: Int -> GetQuantumTask -> Int
hashWithSalt Int
_salt GetQuantumTask' {Text
quantumTaskArn :: Text
$sel:quantumTaskArn:GetQuantumTask' :: GetQuantumTask -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
quantumTaskArn

instance Prelude.NFData GetQuantumTask where
  rnf :: GetQuantumTask -> ()
rnf GetQuantumTask' {Text
quantumTaskArn :: Text
$sel:quantumTaskArn:GetQuantumTask' :: GetQuantumTask -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
quantumTaskArn

instance Data.ToHeaders GetQuantumTask where
  toHeaders :: GetQuantumTask -> 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 GetQuantumTask where
  toPath :: GetQuantumTask -> ByteString
toPath GetQuantumTask' {Text
quantumTaskArn :: Text
$sel:quantumTaskArn:GetQuantumTask' :: GetQuantumTask -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/quantum-task/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
quantumTaskArn]

instance Data.ToQuery GetQuantumTask where
  toQuery :: GetQuantumTask -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newGetQuantumTaskResponse' smart constructor.
data GetQuantumTaskResponse = GetQuantumTaskResponse'
  { -- | The time at which the task ended.
    GetQuantumTaskResponse -> Maybe ISO8601
endedAt :: Prelude.Maybe Data.ISO8601,
    -- | The reason that a task failed.
    GetQuantumTaskResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the Amazon Braket job associated with the quantum task.
    GetQuantumTaskResponse -> Maybe Text
jobArn :: Prelude.Maybe Prelude.Text,
    -- | The tags that belong to this task.
    GetQuantumTaskResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    GetQuantumTaskResponse -> Int
httpStatus :: Prelude.Int,
    -- | The time at which the task was created.
    GetQuantumTaskResponse -> ISO8601
createdAt :: Data.ISO8601,
    -- | The ARN of the device the task was run on.
    GetQuantumTaskResponse -> Text
deviceArn :: Prelude.Text,
    -- | The parameters for the device on which the task ran.
    GetQuantumTaskResponse -> Text
deviceParameters :: Prelude.Text,
    -- | The S3 bucket where task results are stored.
    GetQuantumTaskResponse -> Text
outputS3Bucket :: Prelude.Text,
    -- | The folder in the S3 bucket where task results are stored.
    GetQuantumTaskResponse -> Text
outputS3Directory :: Prelude.Text,
    -- | The ARN of the task.
    GetQuantumTaskResponse -> Text
quantumTaskArn :: Prelude.Text,
    -- | The number of shots used in the task.
    GetQuantumTaskResponse -> Integer
shots :: Prelude.Integer,
    -- | The status of the task.
    GetQuantumTaskResponse -> QuantumTaskStatus
status :: QuantumTaskStatus
  }
  deriving (GetQuantumTaskResponse -> GetQuantumTaskResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetQuantumTaskResponse -> GetQuantumTaskResponse -> Bool
$c/= :: GetQuantumTaskResponse -> GetQuantumTaskResponse -> Bool
== :: GetQuantumTaskResponse -> GetQuantumTaskResponse -> Bool
$c== :: GetQuantumTaskResponse -> GetQuantumTaskResponse -> Bool
Prelude.Eq, ReadPrec [GetQuantumTaskResponse]
ReadPrec GetQuantumTaskResponse
Int -> ReadS GetQuantumTaskResponse
ReadS [GetQuantumTaskResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetQuantumTaskResponse]
$creadListPrec :: ReadPrec [GetQuantumTaskResponse]
readPrec :: ReadPrec GetQuantumTaskResponse
$creadPrec :: ReadPrec GetQuantumTaskResponse
readList :: ReadS [GetQuantumTaskResponse]
$creadList :: ReadS [GetQuantumTaskResponse]
readsPrec :: Int -> ReadS GetQuantumTaskResponse
$creadsPrec :: Int -> ReadS GetQuantumTaskResponse
Prelude.Read, Int -> GetQuantumTaskResponse -> ShowS
[GetQuantumTaskResponse] -> ShowS
GetQuantumTaskResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetQuantumTaskResponse] -> ShowS
$cshowList :: [GetQuantumTaskResponse] -> ShowS
show :: GetQuantumTaskResponse -> String
$cshow :: GetQuantumTaskResponse -> String
showsPrec :: Int -> GetQuantumTaskResponse -> ShowS
$cshowsPrec :: Int -> GetQuantumTaskResponse -> ShowS
Prelude.Show, forall x. Rep GetQuantumTaskResponse x -> GetQuantumTaskResponse
forall x. GetQuantumTaskResponse -> Rep GetQuantumTaskResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetQuantumTaskResponse x -> GetQuantumTaskResponse
$cfrom :: forall x. GetQuantumTaskResponse -> Rep GetQuantumTaskResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetQuantumTaskResponse' 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:
--
-- 'endedAt', 'getQuantumTaskResponse_endedAt' - The time at which the task ended.
--
-- 'failureReason', 'getQuantumTaskResponse_failureReason' - The reason that a task failed.
--
-- 'jobArn', 'getQuantumTaskResponse_jobArn' - The ARN of the Amazon Braket job associated with the quantum task.
--
-- 'tags', 'getQuantumTaskResponse_tags' - The tags that belong to this task.
--
-- 'httpStatus', 'getQuantumTaskResponse_httpStatus' - The response's http status code.
--
-- 'createdAt', 'getQuantumTaskResponse_createdAt' - The time at which the task was created.
--
-- 'deviceArn', 'getQuantumTaskResponse_deviceArn' - The ARN of the device the task was run on.
--
-- 'deviceParameters', 'getQuantumTaskResponse_deviceParameters' - The parameters for the device on which the task ran.
--
-- 'outputS3Bucket', 'getQuantumTaskResponse_outputS3Bucket' - The S3 bucket where task results are stored.
--
-- 'outputS3Directory', 'getQuantumTaskResponse_outputS3Directory' - The folder in the S3 bucket where task results are stored.
--
-- 'quantumTaskArn', 'getQuantumTaskResponse_quantumTaskArn' - The ARN of the task.
--
-- 'shots', 'getQuantumTaskResponse_shots' - The number of shots used in the task.
--
-- 'status', 'getQuantumTaskResponse_status' - The status of the task.
newGetQuantumTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'createdAt'
  Prelude.UTCTime ->
  -- | 'deviceArn'
  Prelude.Text ->
  -- | 'deviceParameters'
  Prelude.Text ->
  -- | 'outputS3Bucket'
  Prelude.Text ->
  -- | 'outputS3Directory'
  Prelude.Text ->
  -- | 'quantumTaskArn'
  Prelude.Text ->
  -- | 'shots'
  Prelude.Integer ->
  -- | 'status'
  QuantumTaskStatus ->
  GetQuantumTaskResponse
newGetQuantumTaskResponse :: Int
-> UTCTime
-> Text
-> Text
-> Text
-> Text
-> Text
-> Integer
-> QuantumTaskStatus
-> GetQuantumTaskResponse
newGetQuantumTaskResponse
  Int
pHttpStatus_
  UTCTime
pCreatedAt_
  Text
pDeviceArn_
  Text
pDeviceParameters_
  Text
pOutputS3Bucket_
  Text
pOutputS3Directory_
  Text
pQuantumTaskArn_
  Integer
pShots_
  QuantumTaskStatus
pStatus_ =
    GetQuantumTaskResponse'
      { $sel:endedAt:GetQuantumTaskResponse' :: Maybe ISO8601
endedAt = forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:GetQuantumTaskResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
        $sel:jobArn:GetQuantumTaskResponse' :: Maybe Text
jobArn = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:GetQuantumTaskResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetQuantumTaskResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:createdAt:GetQuantumTaskResponse' :: ISO8601
createdAt = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreatedAt_,
        $sel:deviceArn:GetQuantumTaskResponse' :: Text
deviceArn = Text
pDeviceArn_,
        $sel:deviceParameters:GetQuantumTaskResponse' :: Text
deviceParameters = Text
pDeviceParameters_,
        $sel:outputS3Bucket:GetQuantumTaskResponse' :: Text
outputS3Bucket = Text
pOutputS3Bucket_,
        $sel:outputS3Directory:GetQuantumTaskResponse' :: Text
outputS3Directory = Text
pOutputS3Directory_,
        $sel:quantumTaskArn:GetQuantumTaskResponse' :: Text
quantumTaskArn = Text
pQuantumTaskArn_,
        $sel:shots:GetQuantumTaskResponse' :: Integer
shots = Integer
pShots_,
        $sel:status:GetQuantumTaskResponse' :: QuantumTaskStatus
status = QuantumTaskStatus
pStatus_
      }

-- | The time at which the task ended.
getQuantumTaskResponse_endedAt :: Lens.Lens' GetQuantumTaskResponse (Prelude.Maybe Prelude.UTCTime)
getQuantumTaskResponse_endedAt :: Lens' GetQuantumTaskResponse (Maybe UTCTime)
getQuantumTaskResponse_endedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Maybe ISO8601
endedAt :: Maybe ISO8601
$sel:endedAt:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe ISO8601
endedAt} -> Maybe ISO8601
endedAt) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Maybe ISO8601
a -> GetQuantumTaskResponse
s {$sel:endedAt:GetQuantumTaskResponse' :: Maybe ISO8601
endedAt = Maybe ISO8601
a} :: GetQuantumTaskResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The reason that a task failed.
getQuantumTaskResponse_failureReason :: Lens.Lens' GetQuantumTaskResponse (Prelude.Maybe Prelude.Text)
getQuantumTaskResponse_failureReason :: Lens' GetQuantumTaskResponse (Maybe Text)
getQuantumTaskResponse_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Maybe Text
a -> GetQuantumTaskResponse
s {$sel:failureReason:GetQuantumTaskResponse' :: Maybe Text
failureReason = Maybe Text
a} :: GetQuantumTaskResponse)

-- | The ARN of the Amazon Braket job associated with the quantum task.
getQuantumTaskResponse_jobArn :: Lens.Lens' GetQuantumTaskResponse (Prelude.Maybe Prelude.Text)
getQuantumTaskResponse_jobArn :: Lens' GetQuantumTaskResponse (Maybe Text)
getQuantumTaskResponse_jobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Maybe Text
jobArn :: Maybe Text
$sel:jobArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe Text
jobArn} -> Maybe Text
jobArn) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Maybe Text
a -> GetQuantumTaskResponse
s {$sel:jobArn:GetQuantumTaskResponse' :: Maybe Text
jobArn = Maybe Text
a} :: GetQuantumTaskResponse)

-- | The tags that belong to this task.
getQuantumTaskResponse_tags :: Lens.Lens' GetQuantumTaskResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getQuantumTaskResponse_tags :: Lens' GetQuantumTaskResponse (Maybe (HashMap Text Text))
getQuantumTaskResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Maybe (HashMap Text Text)
a -> GetQuantumTaskResponse
s {$sel:tags:GetQuantumTaskResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetQuantumTaskResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
getQuantumTaskResponse_httpStatus :: Lens.Lens' GetQuantumTaskResponse Prelude.Int
getQuantumTaskResponse_httpStatus :: Lens' GetQuantumTaskResponse Int
getQuantumTaskResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Int
a -> GetQuantumTaskResponse
s {$sel:httpStatus:GetQuantumTaskResponse' :: Int
httpStatus = Int
a} :: GetQuantumTaskResponse)

-- | The time at which the task was created.
getQuantumTaskResponse_createdAt :: Lens.Lens' GetQuantumTaskResponse Prelude.UTCTime
getQuantumTaskResponse_createdAt :: Lens' GetQuantumTaskResponse UTCTime
getQuantumTaskResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {ISO8601
createdAt :: ISO8601
$sel:createdAt:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> ISO8601
createdAt} -> ISO8601
createdAt) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} ISO8601
a -> GetQuantumTaskResponse
s {$sel:createdAt:GetQuantumTaskResponse' :: ISO8601
createdAt = ISO8601
a} :: GetQuantumTaskResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ARN of the device the task was run on.
getQuantumTaskResponse_deviceArn :: Lens.Lens' GetQuantumTaskResponse Prelude.Text
getQuantumTaskResponse_deviceArn :: Lens' GetQuantumTaskResponse Text
getQuantumTaskResponse_deviceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Text
deviceArn :: Text
$sel:deviceArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
deviceArn} -> Text
deviceArn) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Text
a -> GetQuantumTaskResponse
s {$sel:deviceArn:GetQuantumTaskResponse' :: Text
deviceArn = Text
a} :: GetQuantumTaskResponse)

-- | The parameters for the device on which the task ran.
getQuantumTaskResponse_deviceParameters :: Lens.Lens' GetQuantumTaskResponse Prelude.Text
getQuantumTaskResponse_deviceParameters :: Lens' GetQuantumTaskResponse Text
getQuantumTaskResponse_deviceParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Text
deviceParameters :: Text
$sel:deviceParameters:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
deviceParameters} -> Text
deviceParameters) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Text
a -> GetQuantumTaskResponse
s {$sel:deviceParameters:GetQuantumTaskResponse' :: Text
deviceParameters = Text
a} :: GetQuantumTaskResponse)

-- | The S3 bucket where task results are stored.
getQuantumTaskResponse_outputS3Bucket :: Lens.Lens' GetQuantumTaskResponse Prelude.Text
getQuantumTaskResponse_outputS3Bucket :: Lens' GetQuantumTaskResponse Text
getQuantumTaskResponse_outputS3Bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Text
outputS3Bucket :: Text
$sel:outputS3Bucket:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
outputS3Bucket} -> Text
outputS3Bucket) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Text
a -> GetQuantumTaskResponse
s {$sel:outputS3Bucket:GetQuantumTaskResponse' :: Text
outputS3Bucket = Text
a} :: GetQuantumTaskResponse)

-- | The folder in the S3 bucket where task results are stored.
getQuantumTaskResponse_outputS3Directory :: Lens.Lens' GetQuantumTaskResponse Prelude.Text
getQuantumTaskResponse_outputS3Directory :: Lens' GetQuantumTaskResponse Text
getQuantumTaskResponse_outputS3Directory = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Text
outputS3Directory :: Text
$sel:outputS3Directory:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
outputS3Directory} -> Text
outputS3Directory) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Text
a -> GetQuantumTaskResponse
s {$sel:outputS3Directory:GetQuantumTaskResponse' :: Text
outputS3Directory = Text
a} :: GetQuantumTaskResponse)

-- | The ARN of the task.
getQuantumTaskResponse_quantumTaskArn :: Lens.Lens' GetQuantumTaskResponse Prelude.Text
getQuantumTaskResponse_quantumTaskArn :: Lens' GetQuantumTaskResponse Text
getQuantumTaskResponse_quantumTaskArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Text
quantumTaskArn :: Text
$sel:quantumTaskArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
quantumTaskArn} -> Text
quantumTaskArn) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Text
a -> GetQuantumTaskResponse
s {$sel:quantumTaskArn:GetQuantumTaskResponse' :: Text
quantumTaskArn = Text
a} :: GetQuantumTaskResponse)

-- | The number of shots used in the task.
getQuantumTaskResponse_shots :: Lens.Lens' GetQuantumTaskResponse Prelude.Integer
getQuantumTaskResponse_shots :: Lens' GetQuantumTaskResponse Integer
getQuantumTaskResponse_shots = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {Integer
shots :: Integer
$sel:shots:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Integer
shots} -> Integer
shots) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} Integer
a -> GetQuantumTaskResponse
s {$sel:shots:GetQuantumTaskResponse' :: Integer
shots = Integer
a} :: GetQuantumTaskResponse)

-- | The status of the task.
getQuantumTaskResponse_status :: Lens.Lens' GetQuantumTaskResponse QuantumTaskStatus
getQuantumTaskResponse_status :: Lens' GetQuantumTaskResponse QuantumTaskStatus
getQuantumTaskResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetQuantumTaskResponse' {QuantumTaskStatus
status :: QuantumTaskStatus
$sel:status:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> QuantumTaskStatus
status} -> QuantumTaskStatus
status) (\s :: GetQuantumTaskResponse
s@GetQuantumTaskResponse' {} QuantumTaskStatus
a -> GetQuantumTaskResponse
s {$sel:status:GetQuantumTaskResponse' :: QuantumTaskStatus
status = QuantumTaskStatus
a} :: GetQuantumTaskResponse)

instance Prelude.NFData GetQuantumTaskResponse where
  rnf :: GetQuantumTaskResponse -> ()
rnf GetQuantumTaskResponse' {Int
Integer
Maybe Text
Maybe (HashMap Text Text)
Maybe ISO8601
Text
ISO8601
QuantumTaskStatus
status :: QuantumTaskStatus
shots :: Integer
quantumTaskArn :: Text
outputS3Directory :: Text
outputS3Bucket :: Text
deviceParameters :: Text
deviceArn :: Text
createdAt :: ISO8601
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
jobArn :: Maybe Text
failureReason :: Maybe Text
endedAt :: Maybe ISO8601
$sel:status:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> QuantumTaskStatus
$sel:shots:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Integer
$sel:quantumTaskArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
$sel:outputS3Directory:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
$sel:outputS3Bucket:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
$sel:deviceParameters:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
$sel:deviceArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Text
$sel:createdAt:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> ISO8601
$sel:httpStatus:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Int
$sel:tags:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe (HashMap Text Text)
$sel:jobArn:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe Text
$sel:failureReason:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe Text
$sel:endedAt:GetQuantumTaskResponse' :: GetQuantumTaskResponse -> Maybe ISO8601
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
endedAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 ISO8601
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
outputS3Bucket
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
outputS3Directory
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
quantumTaskArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Integer
shots
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf QuantumTaskStatus
status