amazonka-braket-2.0: gen/Amazonka/Braket/Types/QuantumTaskSummary.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.QuantumTaskSummary
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Braket.Types.QuantumTaskSummary where
import Amazonka.Braket.Types.QuantumTaskStatus
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
-- | Includes information about a quantum task.
--
-- /See:/ 'newQuantumTaskSummary' smart constructor.
data QuantumTaskSummary = QuantumTaskSummary'
{ -- | The time at which the task finished.
endedAt :: Prelude.Maybe Data.ISO8601,
-- | Displays the key, value pairs of tags associated with this quantum task.
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
-- | The time at which the task was created.
createdAt :: Data.ISO8601,
-- | The ARN of the device the task ran on.
deviceArn :: Prelude.Text,
-- | The S3 bucket where the task result file is stored..
outputS3Bucket :: Prelude.Text,
-- | The folder in the S3 bucket where the task result file is stored.
outputS3Directory :: Prelude.Text,
-- | The ARN of the task.
quantumTaskArn :: Prelude.Text,
-- | The shots used for the task.
shots :: Prelude.Integer,
-- | The status of the task.
status :: QuantumTaskStatus
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'QuantumTaskSummary' 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', 'quantumTaskSummary_endedAt' - The time at which the task finished.
--
-- 'tags', 'quantumTaskSummary_tags' - Displays the key, value pairs of tags associated with this quantum task.
--
-- 'createdAt', 'quantumTaskSummary_createdAt' - The time at which the task was created.
--
-- 'deviceArn', 'quantumTaskSummary_deviceArn' - The ARN of the device the task ran on.
--
-- 'outputS3Bucket', 'quantumTaskSummary_outputS3Bucket' - The S3 bucket where the task result file is stored..
--
-- 'outputS3Directory', 'quantumTaskSummary_outputS3Directory' - The folder in the S3 bucket where the task result file is stored.
--
-- 'quantumTaskArn', 'quantumTaskSummary_quantumTaskArn' - The ARN of the task.
--
-- 'shots', 'quantumTaskSummary_shots' - The shots used for the task.
--
-- 'status', 'quantumTaskSummary_status' - The status of the task.
newQuantumTaskSummary ::
-- | 'createdAt'
Prelude.UTCTime ->
-- | 'deviceArn'
Prelude.Text ->
-- | 'outputS3Bucket'
Prelude.Text ->
-- | 'outputS3Directory'
Prelude.Text ->
-- | 'quantumTaskArn'
Prelude.Text ->
-- | 'shots'
Prelude.Integer ->
-- | 'status'
QuantumTaskStatus ->
QuantumTaskSummary
newQuantumTaskSummary
pCreatedAt_
pDeviceArn_
pOutputS3Bucket_
pOutputS3Directory_
pQuantumTaskArn_
pShots_
pStatus_ =
QuantumTaskSummary'
{ endedAt = Prelude.Nothing,
tags = Prelude.Nothing,
createdAt = Data._Time Lens.# pCreatedAt_,
deviceArn = pDeviceArn_,
outputS3Bucket = pOutputS3Bucket_,
outputS3Directory = pOutputS3Directory_,
quantumTaskArn = pQuantumTaskArn_,
shots = pShots_,
status = pStatus_
}
-- | The time at which the task finished.
quantumTaskSummary_endedAt :: Lens.Lens' QuantumTaskSummary (Prelude.Maybe Prelude.UTCTime)
quantumTaskSummary_endedAt = Lens.lens (\QuantumTaskSummary' {endedAt} -> endedAt) (\s@QuantumTaskSummary' {} a -> s {endedAt = a} :: QuantumTaskSummary) Prelude.. Lens.mapping Data._Time
-- | Displays the key, value pairs of tags associated with this quantum task.
quantumTaskSummary_tags :: Lens.Lens' QuantumTaskSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
quantumTaskSummary_tags = Lens.lens (\QuantumTaskSummary' {tags} -> tags) (\s@QuantumTaskSummary' {} a -> s {tags = a} :: QuantumTaskSummary) Prelude.. Lens.mapping Lens.coerced
-- | The time at which the task was created.
quantumTaskSummary_createdAt :: Lens.Lens' QuantumTaskSummary Prelude.UTCTime
quantumTaskSummary_createdAt = Lens.lens (\QuantumTaskSummary' {createdAt} -> createdAt) (\s@QuantumTaskSummary' {} a -> s {createdAt = a} :: QuantumTaskSummary) Prelude.. Data._Time
-- | The ARN of the device the task ran on.
quantumTaskSummary_deviceArn :: Lens.Lens' QuantumTaskSummary Prelude.Text
quantumTaskSummary_deviceArn = Lens.lens (\QuantumTaskSummary' {deviceArn} -> deviceArn) (\s@QuantumTaskSummary' {} a -> s {deviceArn = a} :: QuantumTaskSummary)
-- | The S3 bucket where the task result file is stored..
quantumTaskSummary_outputS3Bucket :: Lens.Lens' QuantumTaskSummary Prelude.Text
quantumTaskSummary_outputS3Bucket = Lens.lens (\QuantumTaskSummary' {outputS3Bucket} -> outputS3Bucket) (\s@QuantumTaskSummary' {} a -> s {outputS3Bucket = a} :: QuantumTaskSummary)
-- | The folder in the S3 bucket where the task result file is stored.
quantumTaskSummary_outputS3Directory :: Lens.Lens' QuantumTaskSummary Prelude.Text
quantumTaskSummary_outputS3Directory = Lens.lens (\QuantumTaskSummary' {outputS3Directory} -> outputS3Directory) (\s@QuantumTaskSummary' {} a -> s {outputS3Directory = a} :: QuantumTaskSummary)
-- | The ARN of the task.
quantumTaskSummary_quantumTaskArn :: Lens.Lens' QuantumTaskSummary Prelude.Text
quantumTaskSummary_quantumTaskArn = Lens.lens (\QuantumTaskSummary' {quantumTaskArn} -> quantumTaskArn) (\s@QuantumTaskSummary' {} a -> s {quantumTaskArn = a} :: QuantumTaskSummary)
-- | The shots used for the task.
quantumTaskSummary_shots :: Lens.Lens' QuantumTaskSummary Prelude.Integer
quantumTaskSummary_shots = Lens.lens (\QuantumTaskSummary' {shots} -> shots) (\s@QuantumTaskSummary' {} a -> s {shots = a} :: QuantumTaskSummary)
-- | The status of the task.
quantumTaskSummary_status :: Lens.Lens' QuantumTaskSummary QuantumTaskStatus
quantumTaskSummary_status = Lens.lens (\QuantumTaskSummary' {status} -> status) (\s@QuantumTaskSummary' {} a -> s {status = a} :: QuantumTaskSummary)
instance Data.FromJSON QuantumTaskSummary where
parseJSON =
Data.withObject
"QuantumTaskSummary"
( \x ->
QuantumTaskSummary'
Prelude.<$> (x Data..:? "endedAt")
Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)
Prelude.<*> (x Data..: "createdAt")
Prelude.<*> (x Data..: "deviceArn")
Prelude.<*> (x Data..: "outputS3Bucket")
Prelude.<*> (x Data..: "outputS3Directory")
Prelude.<*> (x Data..: "quantumTaskArn")
Prelude.<*> (x Data..: "shots")
Prelude.<*> (x Data..: "status")
)
instance Prelude.Hashable QuantumTaskSummary where
hashWithSalt _salt QuantumTaskSummary' {..} =
_salt
`Prelude.hashWithSalt` endedAt
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` createdAt
`Prelude.hashWithSalt` deviceArn
`Prelude.hashWithSalt` outputS3Bucket
`Prelude.hashWithSalt` outputS3Directory
`Prelude.hashWithSalt` quantumTaskArn
`Prelude.hashWithSalt` shots
`Prelude.hashWithSalt` status
instance Prelude.NFData QuantumTaskSummary where
rnf QuantumTaskSummary' {..} =
Prelude.rnf endedAt
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf createdAt
`Prelude.seq` Prelude.rnf deviceArn
`Prelude.seq` Prelude.rnf outputS3Bucket
`Prelude.seq` Prelude.rnf outputS3Directory
`Prelude.seq` Prelude.rnf quantumTaskArn
`Prelude.seq` Prelude.rnf shots
`Prelude.seq` Prelude.rnf status