packages feed

amazonka-braket-2.0: gen/Amazonka/Braket/CancelQuantumTask.hs

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

    -- * Request Lenses
    cancelQuantumTask_clientToken,
    cancelQuantumTask_quantumTaskArn,

    -- * Destructuring the Response
    CancelQuantumTaskResponse (..),
    newCancelQuantumTaskResponse,

    -- * Response Lenses
    cancelQuantumTaskResponse_httpStatus,
    cancelQuantumTaskResponse_cancellationStatus,
    cancelQuantumTaskResponse_quantumTaskArn,
  )
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:/ 'newCancelQuantumTask' smart constructor.
data CancelQuantumTask = CancelQuantumTask'
  { -- | The client token associated with the request.
    clientToken :: Prelude.Text,
    -- | The ARN of the task to cancel.
    quantumTaskArn :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'CancelQuantumTask' 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:
--
-- 'clientToken', 'cancelQuantumTask_clientToken' - The client token associated with the request.
--
-- 'quantumTaskArn', 'cancelQuantumTask_quantumTaskArn' - The ARN of the task to cancel.
newCancelQuantumTask ::
  -- | 'clientToken'
  Prelude.Text ->
  -- | 'quantumTaskArn'
  Prelude.Text ->
  CancelQuantumTask
newCancelQuantumTask pClientToken_ pQuantumTaskArn_ =
  CancelQuantumTask'
    { clientToken = pClientToken_,
      quantumTaskArn = pQuantumTaskArn_
    }

-- | The client token associated with the request.
cancelQuantumTask_clientToken :: Lens.Lens' CancelQuantumTask Prelude.Text
cancelQuantumTask_clientToken = Lens.lens (\CancelQuantumTask' {clientToken} -> clientToken) (\s@CancelQuantumTask' {} a -> s {clientToken = a} :: CancelQuantumTask)

-- | The ARN of the task to cancel.
cancelQuantumTask_quantumTaskArn :: Lens.Lens' CancelQuantumTask Prelude.Text
cancelQuantumTask_quantumTaskArn = Lens.lens (\CancelQuantumTask' {quantumTaskArn} -> quantumTaskArn) (\s@CancelQuantumTask' {} a -> s {quantumTaskArn = a} :: CancelQuantumTask)

instance Core.AWSRequest CancelQuantumTask where
  type
    AWSResponse CancelQuantumTask =
      CancelQuantumTaskResponse
  request overrides =
    Request.putJSON (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          CancelQuantumTaskResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
            Prelude.<*> (x Data..:> "cancellationStatus")
            Prelude.<*> (x Data..:> "quantumTaskArn")
      )

instance Prelude.Hashable CancelQuantumTask where
  hashWithSalt _salt CancelQuantumTask' {..} =
    _salt
      `Prelude.hashWithSalt` clientToken
      `Prelude.hashWithSalt` quantumTaskArn

instance Prelude.NFData CancelQuantumTask where
  rnf CancelQuantumTask' {..} =
    Prelude.rnf clientToken
      `Prelude.seq` Prelude.rnf quantumTaskArn

instance Data.ToHeaders CancelQuantumTask where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CancelQuantumTask where
  toJSON CancelQuantumTask' {..} =
    Data.object
      ( Prelude.catMaybes
          [Prelude.Just ("clientToken" Data..= clientToken)]
      )

instance Data.ToPath CancelQuantumTask where
  toPath CancelQuantumTask' {..} =
    Prelude.mconcat
      [ "/quantum-task/",
        Data.toBS quantumTaskArn,
        "/cancel"
      ]

instance Data.ToQuery CancelQuantumTask where
  toQuery = Prelude.const Prelude.mempty

-- | /See:/ 'newCancelQuantumTaskResponse' smart constructor.
data CancelQuantumTaskResponse = CancelQuantumTaskResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int,
    -- | The status of the cancellation request.
    cancellationStatus :: CancellationStatus,
    -- | The ARN of the task.
    quantumTaskArn :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'CancelQuantumTaskResponse' 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:
--
-- 'httpStatus', 'cancelQuantumTaskResponse_httpStatus' - The response's http status code.
--
-- 'cancellationStatus', 'cancelQuantumTaskResponse_cancellationStatus' - The status of the cancellation request.
--
-- 'quantumTaskArn', 'cancelQuantumTaskResponse_quantumTaskArn' - The ARN of the task.
newCancelQuantumTaskResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'cancellationStatus'
  CancellationStatus ->
  -- | 'quantumTaskArn'
  Prelude.Text ->
  CancelQuantumTaskResponse
newCancelQuantumTaskResponse
  pHttpStatus_
  pCancellationStatus_
  pQuantumTaskArn_ =
    CancelQuantumTaskResponse'
      { httpStatus =
          pHttpStatus_,
        cancellationStatus = pCancellationStatus_,
        quantumTaskArn = pQuantumTaskArn_
      }

-- | The response's http status code.
cancelQuantumTaskResponse_httpStatus :: Lens.Lens' CancelQuantumTaskResponse Prelude.Int
cancelQuantumTaskResponse_httpStatus = Lens.lens (\CancelQuantumTaskResponse' {httpStatus} -> httpStatus) (\s@CancelQuantumTaskResponse' {} a -> s {httpStatus = a} :: CancelQuantumTaskResponse)

-- | The status of the cancellation request.
cancelQuantumTaskResponse_cancellationStatus :: Lens.Lens' CancelQuantumTaskResponse CancellationStatus
cancelQuantumTaskResponse_cancellationStatus = Lens.lens (\CancelQuantumTaskResponse' {cancellationStatus} -> cancellationStatus) (\s@CancelQuantumTaskResponse' {} a -> s {cancellationStatus = a} :: CancelQuantumTaskResponse)

-- | The ARN of the task.
cancelQuantumTaskResponse_quantumTaskArn :: Lens.Lens' CancelQuantumTaskResponse Prelude.Text
cancelQuantumTaskResponse_quantumTaskArn = Lens.lens (\CancelQuantumTaskResponse' {quantumTaskArn} -> quantumTaskArn) (\s@CancelQuantumTaskResponse' {} a -> s {quantumTaskArn = a} :: CancelQuantumTaskResponse)

instance Prelude.NFData CancelQuantumTaskResponse where
  rnf CancelQuantumTaskResponse' {..} =
    Prelude.rnf httpStatus
      `Prelude.seq` Prelude.rnf cancellationStatus
      `Prelude.seq` Prelude.rnf quantumTaskArn