packages feed

amazonka-stepfunctions-2.0: gen/Amazonka/StepFunctions/SendTaskFailure.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.StepFunctions.SendTaskFailure
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Used by activity workers and task states using the
-- <https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token callback>
-- pattern to report that the task identified by the @taskToken@ failed.
module Amazonka.StepFunctions.SendTaskFailure
  ( -- * Creating a Request
    SendTaskFailure (..),
    newSendTaskFailure,

    -- * Request Lenses
    sendTaskFailure_cause,
    sendTaskFailure_error,
    sendTaskFailure_taskToken,

    -- * Destructuring the Response
    SendTaskFailureResponse (..),
    newSendTaskFailureResponse,

    -- * Response Lenses
    sendTaskFailureResponse_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.StepFunctions.Types

-- | /See:/ 'newSendTaskFailure' smart constructor.
data SendTaskFailure = SendTaskFailure'
  { -- | A more detailed explanation of the cause of the failure.
    cause :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The error code of the failure.
    error :: Prelude.Maybe (Data.Sensitive Prelude.Text),
    -- | The token that represents this task. Task tokens are generated by Step
    -- Functions when tasks are assigned to a worker, or in the
    -- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html context object>
    -- when a workflow enters a task state. See
    -- GetActivityTaskOutput$taskToken.
    taskToken :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'SendTaskFailure' 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:
--
-- 'cause', 'sendTaskFailure_cause' - A more detailed explanation of the cause of the failure.
--
-- 'error', 'sendTaskFailure_error' - The error code of the failure.
--
-- 'taskToken', 'sendTaskFailure_taskToken' - The token that represents this task. Task tokens are generated by Step
-- Functions when tasks are assigned to a worker, or in the
-- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html context object>
-- when a workflow enters a task state. See
-- GetActivityTaskOutput$taskToken.
newSendTaskFailure ::
  -- | 'taskToken'
  Prelude.Text ->
  SendTaskFailure
newSendTaskFailure pTaskToken_ =
  SendTaskFailure'
    { cause = Prelude.Nothing,
      error = Prelude.Nothing,
      taskToken = pTaskToken_
    }

-- | A more detailed explanation of the cause of the failure.
sendTaskFailure_cause :: Lens.Lens' SendTaskFailure (Prelude.Maybe Prelude.Text)
sendTaskFailure_cause = Lens.lens (\SendTaskFailure' {cause} -> cause) (\s@SendTaskFailure' {} a -> s {cause = a} :: SendTaskFailure) Prelude.. Lens.mapping Data._Sensitive

-- | The error code of the failure.
sendTaskFailure_error :: Lens.Lens' SendTaskFailure (Prelude.Maybe Prelude.Text)
sendTaskFailure_error = Lens.lens (\SendTaskFailure' {error} -> error) (\s@SendTaskFailure' {} a -> s {error = a} :: SendTaskFailure) Prelude.. Lens.mapping Data._Sensitive

-- | The token that represents this task. Task tokens are generated by Step
-- Functions when tasks are assigned to a worker, or in the
-- <https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html context object>
-- when a workflow enters a task state. See
-- GetActivityTaskOutput$taskToken.
sendTaskFailure_taskToken :: Lens.Lens' SendTaskFailure Prelude.Text
sendTaskFailure_taskToken = Lens.lens (\SendTaskFailure' {taskToken} -> taskToken) (\s@SendTaskFailure' {} a -> s {taskToken = a} :: SendTaskFailure)

instance Core.AWSRequest SendTaskFailure where
  type
    AWSResponse SendTaskFailure =
      SendTaskFailureResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveEmpty
      ( \s h x ->
          SendTaskFailureResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
      )

instance Prelude.Hashable SendTaskFailure where
  hashWithSalt _salt SendTaskFailure' {..} =
    _salt
      `Prelude.hashWithSalt` cause
      `Prelude.hashWithSalt` error
      `Prelude.hashWithSalt` taskToken

instance Prelude.NFData SendTaskFailure where
  rnf SendTaskFailure' {..} =
    Prelude.rnf cause
      `Prelude.seq` Prelude.rnf error
      `Prelude.seq` Prelude.rnf taskToken

instance Data.ToHeaders SendTaskFailure where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "X-Amz-Target"
              Data.=# ( "AWSStepFunctions.SendTaskFailure" ::
                          Prelude.ByteString
                      ),
            "Content-Type"
              Data.=# ( "application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON SendTaskFailure where
  toJSON SendTaskFailure' {..} =
    Data.object
      ( Prelude.catMaybes
          [ ("cause" Data..=) Prelude.<$> cause,
            ("error" Data..=) Prelude.<$> error,
            Prelude.Just ("taskToken" Data..= taskToken)
          ]
      )

instance Data.ToPath SendTaskFailure where
  toPath = Prelude.const "/"

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

-- | /See:/ 'newSendTaskFailureResponse' smart constructor.
data SendTaskFailureResponse = SendTaskFailureResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'SendTaskFailureResponse' 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', 'sendTaskFailureResponse_httpStatus' - The response's http status code.
newSendTaskFailureResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  SendTaskFailureResponse
newSendTaskFailureResponse pHttpStatus_ =
  SendTaskFailureResponse' {httpStatus = pHttpStatus_}

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

instance Prelude.NFData SendTaskFailureResponse where
  rnf SendTaskFailureResponse' {..} =
    Prelude.rnf httpStatus