{-# 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.SageMaker.Types.HumanTaskConfig
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.HumanTaskConfig where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.AnnotationConsolidationConfig
import Amazonka.SageMaker.Types.PublicWorkforceTaskPrice
import Amazonka.SageMaker.Types.UiConfig

-- | Information required for human workers to complete a labeling task.
--
-- /See:/ 'newHumanTaskConfig' smart constructor.
data HumanTaskConfig = HumanTaskConfig'
  { -- | Keywords used to describe the task so that workers on Amazon Mechanical
    -- Turk can discover the task.
    HumanTaskConfig -> Maybe (NonEmpty Text)
taskKeywords :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | The price that you pay for each task performed by an Amazon Mechanical
    -- Turk worker.
    HumanTaskConfig -> Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice :: Prelude.Maybe PublicWorkforceTaskPrice,
    -- | The length of time that a task remains available for labeling by human
    -- workers. The default and maximum values for this parameter depend on the
    -- type of workforce you use.
    --
    -- -   If you choose the Amazon Mechanical Turk workforce, the maximum is
    --     12 hours (43,200 seconds). The default is 6 hours (21,600 seconds).
    --
    -- -   If you choose a private or vendor workforce, the default value is 10
    --     days (864,000 seconds). For most users, the maximum is also 10 days.
    --     If you want to change this limit, contact Amazon Web Services
    --     Support.
    HumanTaskConfig -> Maybe Natural
taskAvailabilityLifetimeInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | Defines the maximum number of data objects that can be labeled by human
    -- workers at the same time. Also referred to as batch size. Each object
    -- may have more than one worker at one time. The default value is 1000
    -- objects.
    HumanTaskConfig -> Maybe Natural
maxConcurrentTaskCount :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Resource Name (ARN) of the work team assigned to complete the
    -- tasks.
    HumanTaskConfig -> Text
workteamArn :: Prelude.Text,
    -- | Information about the user interface that workers use to complete the
    -- labeling task.
    HumanTaskConfig -> UiConfig
uiConfig :: UiConfig,
    -- | The Amazon Resource Name (ARN) of a Lambda function that is run before a
    -- data object is sent to a human worker. Use this function to provide
    -- input to a custom labeling job.
    --
    -- For
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task types>,
    -- use one of the following Amazon SageMaker Ground Truth Lambda function
    -- ARNs for @PreHumanTaskLambdaArn@. For custom labeling workflows, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda Pre-annotation Lambda>.
    --
    -- __Bounding box__ - Finds the most similar boxes from different workers
    -- based on the Jaccard index of the boxes.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox@
    --
    -- __Image classification__ - Uses a variant of the Expectation
    -- Maximization approach to estimate the true class of an image based on
    -- annotations from individual workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass@
    --
    -- __Multi-label image classification__ - Uses a variant of the Expectation
    -- Maximization approach to estimate the true classes of an image based on
    -- annotations from individual workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel@
    --
    -- __Semantic segmentation__ - Treats each pixel in an image as a
    -- multi-class classification and treats pixel annotations from workers as
    -- \"votes\" for the correct label.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation@
    --
    -- __Text classification__ - Uses a variant of the Expectation Maximization
    -- approach to estimate the true class of text based on annotations from
    -- individual workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass@
    --
    -- __Multi-label text classification__ - Uses a variant of the Expectation
    -- Maximization approach to estimate the true classes of text based on
    -- annotations from individual workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel@
    --
    -- __Named entity recognition__ - Groups similar selections and calculates
    -- aggregate boundaries, resolving to most-assigned label.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition@
    --
    -- __Video Classification__ - Use this task type when you need workers to
    -- classify videos using predefined labels that you specify. Workers are
    -- shown videos and are asked to choose one label for each video.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass@
    --
    -- __Video Frame Object Detection__ - Use this task type to have workers
    -- identify and locate objects in a sequence of video frames (images
    -- extracted from a video) using bounding boxes. For example, you can use
    -- this task to ask workers to identify and localize various objects in a
    -- series of video frames, such as cars, bikes, and pedestrians.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection@
    --
    -- __Video Frame Object Tracking__ - Use this task type to have workers
    -- track the movement of objects in a sequence of video frames (images
    -- extracted from a video) using bounding boxes. For example, you can use
    -- this task to ask workers to track the movement of objects, such as cars,
    -- bikes, and pedestrians.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking@
    --
    -- __3D Point Cloud Modalities__
    --
    -- Use the following pre-annotation lambdas for 3D point cloud labeling
    -- modality tasks. See
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html 3D Point Cloud Task types>
    -- to learn more.
    --
    -- __3D Point Cloud Object Detection__ - Use this task type when you want
    -- workers to classify objects in a 3D point cloud by drawing 3D cuboids
    -- around objects. For example, you can use this task type to ask workers
    -- to identify different types of objects in a point cloud, such as cars,
    -- bikes, and pedestrians.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection@
    --
    -- __3D Point Cloud Object Tracking__ - Use this task type when you want
    -- workers to draw 3D cuboids around objects that appear in a sequence of
    -- 3D point cloud frames. For example, you can use this task type to ask
    -- workers to track the movement of vehicles across multiple point cloud
    -- frames.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking@
    --
    -- __3D Point Cloud Semantic Segmentation__ - Use this task type when you
    -- want workers to create a point-level semantic segmentation masks by
    -- painting objects in a 3D point cloud using different colors where each
    -- color is assigned to one of the classes you specify.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation@
    --
    -- __Use the following ARNs for Label Verification and Adjustment Jobs__
    --
    -- Use label verification and adjustment jobs to review and adjust labels.
    -- To learn more, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html Verify and Adjust Labels>
    -- .
    --
    -- __Bounding box verification__ - Uses a variant of the Expectation
    -- Maximization approach to estimate the true class of verification
    -- judgement for bounding box labels based on annotations from individual
    -- workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox@
    --
    -- __Bounding box adjustment__ - Finds the most similar boxes from
    -- different workers based on the Jaccard index of the adjusted
    -- annotations.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox@
    --
    -- __Semantic segmentation verification__ - Uses a variant of the
    -- Expectation Maximization approach to estimate the true class of
    -- verification judgment for semantic segmentation labels based on
    -- annotations from individual workers.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation@
    --
    -- __Semantic segmentation adjustment__ - Treats each pixel in an image as
    -- a multi-class classification and treats pixel adjusted annotations from
    -- workers as \"votes\" for the correct label.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation@
    --
    -- __Video Frame Object Detection Adjustment__ - Use this task type when
    -- you want workers to adjust bounding boxes that workers have added to
    -- video frames to classify and localize objects in a sequence of video
    -- frames.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection@
    --
    -- __Video Frame Object Tracking Adjustment__ - Use this task type when you
    -- want workers to adjust bounding boxes that workers have added to video
    -- frames to track object movement across a sequence of video frames.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking@
    --
    -- __3D point cloud object detection adjustment__ - Adjust 3D cuboids in a
    -- point cloud frame.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection@
    --
    -- __3D point cloud object tracking adjustment__ - Adjust 3D cuboids across
    -- a sequence of point cloud frames.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking@
    --
    -- __3D point cloud semantic segmentation adjustment__ - Adjust semantic
    -- segmentation masks in a 3D point cloud.
    --
    -- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    --
    -- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
    HumanTaskConfig -> Text
preHumanTaskLambdaArn :: Prelude.Text,
    -- | A title for the task for your human workers.
    HumanTaskConfig -> Text
taskTitle :: Prelude.Text,
    -- | A description of the task for your human workers.
    HumanTaskConfig -> Text
taskDescription :: Prelude.Text,
    -- | The number of human workers that will label an object.
    HumanTaskConfig -> Natural
numberOfHumanWorkersPerDataObject :: Prelude.Natural,
    -- | The amount of time that a worker has to complete a task.
    --
    -- If you create a custom labeling job, the maximum value for this
    -- parameter is 8 hours (28,800 seconds).
    --
    -- If you create a labeling job using a
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task type>
    -- the maximum for this parameter depends on the task type you use:
    --
    -- -   For
    --     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html image>
    --     and
    --     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html text>
    --     labeling jobs, the maximum is 8 hours (28,800 seconds).
    --
    -- -   For
    --     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html 3D point cloud>
    --     and
    --     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html video frame>
    --     labeling jobs, the maximum is 7 days (604,800 seconds). If you want
    --     to change these limits, contact Amazon Web Services Support.
    HumanTaskConfig -> Natural
taskTimeLimitInSeconds :: Prelude.Natural,
    -- | Configures how labels are consolidated across human workers.
    HumanTaskConfig -> AnnotationConsolidationConfig
annotationConsolidationConfig :: AnnotationConsolidationConfig
  }
  deriving (HumanTaskConfig -> HumanTaskConfig -> Bool
(HumanTaskConfig -> HumanTaskConfig -> Bool)
-> (HumanTaskConfig -> HumanTaskConfig -> Bool)
-> Eq HumanTaskConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HumanTaskConfig -> HumanTaskConfig -> Bool
$c/= :: HumanTaskConfig -> HumanTaskConfig -> Bool
== :: HumanTaskConfig -> HumanTaskConfig -> Bool
$c== :: HumanTaskConfig -> HumanTaskConfig -> Bool
Prelude.Eq, ReadPrec [HumanTaskConfig]
ReadPrec HumanTaskConfig
Int -> ReadS HumanTaskConfig
ReadS [HumanTaskConfig]
(Int -> ReadS HumanTaskConfig)
-> ReadS [HumanTaskConfig]
-> ReadPrec HumanTaskConfig
-> ReadPrec [HumanTaskConfig]
-> Read HumanTaskConfig
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [HumanTaskConfig]
$creadListPrec :: ReadPrec [HumanTaskConfig]
readPrec :: ReadPrec HumanTaskConfig
$creadPrec :: ReadPrec HumanTaskConfig
readList :: ReadS [HumanTaskConfig]
$creadList :: ReadS [HumanTaskConfig]
readsPrec :: Int -> ReadS HumanTaskConfig
$creadsPrec :: Int -> ReadS HumanTaskConfig
Prelude.Read, Int -> HumanTaskConfig -> ShowS
[HumanTaskConfig] -> ShowS
HumanTaskConfig -> String
(Int -> HumanTaskConfig -> ShowS)
-> (HumanTaskConfig -> String)
-> ([HumanTaskConfig] -> ShowS)
-> Show HumanTaskConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HumanTaskConfig] -> ShowS
$cshowList :: [HumanTaskConfig] -> ShowS
show :: HumanTaskConfig -> String
$cshow :: HumanTaskConfig -> String
showsPrec :: Int -> HumanTaskConfig -> ShowS
$cshowsPrec :: Int -> HumanTaskConfig -> ShowS
Prelude.Show, (forall x. HumanTaskConfig -> Rep HumanTaskConfig x)
-> (forall x. Rep HumanTaskConfig x -> HumanTaskConfig)
-> Generic HumanTaskConfig
forall x. Rep HumanTaskConfig x -> HumanTaskConfig
forall x. HumanTaskConfig -> Rep HumanTaskConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HumanTaskConfig x -> HumanTaskConfig
$cfrom :: forall x. HumanTaskConfig -> Rep HumanTaskConfig x
Prelude.Generic)

-- |
-- Create a value of 'HumanTaskConfig' 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:
--
-- 'taskKeywords', 'humanTaskConfig_taskKeywords' - Keywords used to describe the task so that workers on Amazon Mechanical
-- Turk can discover the task.
--
-- 'publicWorkforceTaskPrice', 'humanTaskConfig_publicWorkforceTaskPrice' - The price that you pay for each task performed by an Amazon Mechanical
-- Turk worker.
--
-- 'taskAvailabilityLifetimeInSeconds', 'humanTaskConfig_taskAvailabilityLifetimeInSeconds' - The length of time that a task remains available for labeling by human
-- workers. The default and maximum values for this parameter depend on the
-- type of workforce you use.
--
-- -   If you choose the Amazon Mechanical Turk workforce, the maximum is
--     12 hours (43,200 seconds). The default is 6 hours (21,600 seconds).
--
-- -   If you choose a private or vendor workforce, the default value is 10
--     days (864,000 seconds). For most users, the maximum is also 10 days.
--     If you want to change this limit, contact Amazon Web Services
--     Support.
--
-- 'maxConcurrentTaskCount', 'humanTaskConfig_maxConcurrentTaskCount' - Defines the maximum number of data objects that can be labeled by human
-- workers at the same time. Also referred to as batch size. Each object
-- may have more than one worker at one time. The default value is 1000
-- objects.
--
-- 'workteamArn', 'humanTaskConfig_workteamArn' - The Amazon Resource Name (ARN) of the work team assigned to complete the
-- tasks.
--
-- 'uiConfig', 'humanTaskConfig_uiConfig' - Information about the user interface that workers use to complete the
-- labeling task.
--
-- 'preHumanTaskLambdaArn', 'humanTaskConfig_preHumanTaskLambdaArn' - The Amazon Resource Name (ARN) of a Lambda function that is run before a
-- data object is sent to a human worker. Use this function to provide
-- input to a custom labeling job.
--
-- For
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task types>,
-- use one of the following Amazon SageMaker Ground Truth Lambda function
-- ARNs for @PreHumanTaskLambdaArn@. For custom labeling workflows, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda Pre-annotation Lambda>.
--
-- __Bounding box__ - Finds the most similar boxes from different workers
-- based on the Jaccard index of the boxes.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox@
--
-- __Image classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true class of an image based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass@
--
-- __Multi-label image classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true classes of an image based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel@
--
-- __Semantic segmentation__ - Treats each pixel in an image as a
-- multi-class classification and treats pixel annotations from workers as
-- \"votes\" for the correct label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation@
--
-- __Text classification__ - Uses a variant of the Expectation Maximization
-- approach to estimate the true class of text based on annotations from
-- individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass@
--
-- __Multi-label text classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true classes of text based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel@
--
-- __Named entity recognition__ - Groups similar selections and calculates
-- aggregate boundaries, resolving to most-assigned label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition@
--
-- __Video Classification__ - Use this task type when you need workers to
-- classify videos using predefined labels that you specify. Workers are
-- shown videos and are asked to choose one label for each video.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass@
--
-- __Video Frame Object Detection__ - Use this task type to have workers
-- identify and locate objects in a sequence of video frames (images
-- extracted from a video) using bounding boxes. For example, you can use
-- this task to ask workers to identify and localize various objects in a
-- series of video frames, such as cars, bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection@
--
-- __Video Frame Object Tracking__ - Use this task type to have workers
-- track the movement of objects in a sequence of video frames (images
-- extracted from a video) using bounding boxes. For example, you can use
-- this task to ask workers to track the movement of objects, such as cars,
-- bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking@
--
-- __3D Point Cloud Modalities__
--
-- Use the following pre-annotation lambdas for 3D point cloud labeling
-- modality tasks. See
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html 3D Point Cloud Task types>
-- to learn more.
--
-- __3D Point Cloud Object Detection__ - Use this task type when you want
-- workers to classify objects in a 3D point cloud by drawing 3D cuboids
-- around objects. For example, you can use this task type to ask workers
-- to identify different types of objects in a point cloud, such as cars,
-- bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection@
--
-- __3D Point Cloud Object Tracking__ - Use this task type when you want
-- workers to draw 3D cuboids around objects that appear in a sequence of
-- 3D point cloud frames. For example, you can use this task type to ask
-- workers to track the movement of vehicles across multiple point cloud
-- frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking@
--
-- __3D Point Cloud Semantic Segmentation__ - Use this task type when you
-- want workers to create a point-level semantic segmentation masks by
-- painting objects in a 3D point cloud using different colors where each
-- color is assigned to one of the classes you specify.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation@
--
-- __Use the following ARNs for Label Verification and Adjustment Jobs__
--
-- Use label verification and adjustment jobs to review and adjust labels.
-- To learn more, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html Verify and Adjust Labels>
-- .
--
-- __Bounding box verification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true class of verification
-- judgement for bounding box labels based on annotations from individual
-- workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox@
--
-- __Bounding box adjustment__ - Finds the most similar boxes from
-- different workers based on the Jaccard index of the adjusted
-- annotations.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox@
--
-- __Semantic segmentation verification__ - Uses a variant of the
-- Expectation Maximization approach to estimate the true class of
-- verification judgment for semantic segmentation labels based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation@
--
-- __Semantic segmentation adjustment__ - Treats each pixel in an image as
-- a multi-class classification and treats pixel adjusted annotations from
-- workers as \"votes\" for the correct label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation@
--
-- __Video Frame Object Detection Adjustment__ - Use this task type when
-- you want workers to adjust bounding boxes that workers have added to
-- video frames to classify and localize objects in a sequence of video
-- frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection@
--
-- __Video Frame Object Tracking Adjustment__ - Use this task type when you
-- want workers to adjust bounding boxes that workers have added to video
-- frames to track object movement across a sequence of video frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking@
--
-- __3D point cloud object detection adjustment__ - Adjust 3D cuboids in a
-- point cloud frame.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- __3D point cloud object tracking adjustment__ - Adjust 3D cuboids across
-- a sequence of point cloud frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- __3D point cloud semantic segmentation adjustment__ - Adjust semantic
-- segmentation masks in a 3D point cloud.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- 'taskTitle', 'humanTaskConfig_taskTitle' - A title for the task for your human workers.
--
-- 'taskDescription', 'humanTaskConfig_taskDescription' - A description of the task for your human workers.
--
-- 'numberOfHumanWorkersPerDataObject', 'humanTaskConfig_numberOfHumanWorkersPerDataObject' - The number of human workers that will label an object.
--
-- 'taskTimeLimitInSeconds', 'humanTaskConfig_taskTimeLimitInSeconds' - The amount of time that a worker has to complete a task.
--
-- If you create a custom labeling job, the maximum value for this
-- parameter is 8 hours (28,800 seconds).
--
-- If you create a labeling job using a
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task type>
-- the maximum for this parameter depends on the task type you use:
--
-- -   For
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html image>
--     and
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html text>
--     labeling jobs, the maximum is 8 hours (28,800 seconds).
--
-- -   For
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html 3D point cloud>
--     and
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html video frame>
--     labeling jobs, the maximum is 7 days (604,800 seconds). If you want
--     to change these limits, contact Amazon Web Services Support.
--
-- 'annotationConsolidationConfig', 'humanTaskConfig_annotationConsolidationConfig' - Configures how labels are consolidated across human workers.
newHumanTaskConfig ::
  -- | 'workteamArn'
  Prelude.Text ->
  -- | 'uiConfig'
  UiConfig ->
  -- | 'preHumanTaskLambdaArn'
  Prelude.Text ->
  -- | 'taskTitle'
  Prelude.Text ->
  -- | 'taskDescription'
  Prelude.Text ->
  -- | 'numberOfHumanWorkersPerDataObject'
  Prelude.Natural ->
  -- | 'taskTimeLimitInSeconds'
  Prelude.Natural ->
  -- | 'annotationConsolidationConfig'
  AnnotationConsolidationConfig ->
  HumanTaskConfig
newHumanTaskConfig :: Text
-> UiConfig
-> Text
-> Text
-> Text
-> Natural
-> Natural
-> AnnotationConsolidationConfig
-> HumanTaskConfig
newHumanTaskConfig
  Text
pWorkteamArn_
  UiConfig
pUiConfig_
  Text
pPreHumanTaskLambdaArn_
  Text
pTaskTitle_
  Text
pTaskDescription_
  Natural
pNumberOfHumanWorkersPerDataObject_
  Natural
pTaskTimeLimitInSeconds_
  AnnotationConsolidationConfig
pAnnotationConsolidationConfig_ =
    HumanTaskConfig' :: Maybe (NonEmpty Text)
-> Maybe PublicWorkforceTaskPrice
-> Maybe Natural
-> Maybe Natural
-> Text
-> UiConfig
-> Text
-> Text
-> Text
-> Natural
-> Natural
-> AnnotationConsolidationConfig
-> HumanTaskConfig
HumanTaskConfig'
      { $sel:taskKeywords:HumanTaskConfig' :: Maybe (NonEmpty Text)
taskKeywords = Maybe (NonEmpty Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:publicWorkforceTaskPrice:HumanTaskConfig' :: Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice = Maybe PublicWorkforceTaskPrice
forall a. Maybe a
Prelude.Nothing,
        $sel:taskAvailabilityLifetimeInSeconds:HumanTaskConfig' :: Maybe Natural
taskAvailabilityLifetimeInSeconds = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
        $sel:maxConcurrentTaskCount:HumanTaskConfig' :: Maybe Natural
maxConcurrentTaskCount = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
        $sel:workteamArn:HumanTaskConfig' :: Text
workteamArn = Text
pWorkteamArn_,
        $sel:uiConfig:HumanTaskConfig' :: UiConfig
uiConfig = UiConfig
pUiConfig_,
        $sel:preHumanTaskLambdaArn:HumanTaskConfig' :: Text
preHumanTaskLambdaArn = Text
pPreHumanTaskLambdaArn_,
        $sel:taskTitle:HumanTaskConfig' :: Text
taskTitle = Text
pTaskTitle_,
        $sel:taskDescription:HumanTaskConfig' :: Text
taskDescription = Text
pTaskDescription_,
        $sel:numberOfHumanWorkersPerDataObject:HumanTaskConfig' :: Natural
numberOfHumanWorkersPerDataObject =
          Natural
pNumberOfHumanWorkersPerDataObject_,
        $sel:taskTimeLimitInSeconds:HumanTaskConfig' :: Natural
taskTimeLimitInSeconds = Natural
pTaskTimeLimitInSeconds_,
        $sel:annotationConsolidationConfig:HumanTaskConfig' :: AnnotationConsolidationConfig
annotationConsolidationConfig =
          AnnotationConsolidationConfig
pAnnotationConsolidationConfig_
      }

-- | Keywords used to describe the task so that workers on Amazon Mechanical
-- Turk can discover the task.
humanTaskConfig_taskKeywords :: Lens.Lens' HumanTaskConfig (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
humanTaskConfig_taskKeywords :: (Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_taskKeywords = (HumanTaskConfig -> Maybe (NonEmpty Text))
-> (HumanTaskConfig -> Maybe (NonEmpty Text) -> HumanTaskConfig)
-> Lens
     HumanTaskConfig
     HumanTaskConfig
     (Maybe (NonEmpty Text))
     (Maybe (NonEmpty Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Maybe (NonEmpty Text)
taskKeywords :: Maybe (NonEmpty Text)
$sel:taskKeywords:HumanTaskConfig' :: HumanTaskConfig -> Maybe (NonEmpty Text)
taskKeywords} -> Maybe (NonEmpty Text)
taskKeywords) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Maybe (NonEmpty Text)
a -> HumanTaskConfig
s {$sel:taskKeywords:HumanTaskConfig' :: Maybe (NonEmpty Text)
taskKeywords = Maybe (NonEmpty Text)
a} :: HumanTaskConfig) ((Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
 -> HumanTaskConfig -> f HumanTaskConfig)
-> ((Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
    -> Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> (Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> HumanTaskConfig
-> f HumanTaskConfig
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty Text) (NonEmpty Text) (NonEmpty Text) (NonEmpty Text)
-> Iso
     (Maybe (NonEmpty Text))
     (Maybe (NonEmpty Text))
     (Maybe (NonEmpty Text))
     (Maybe (NonEmpty Text))
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 AnIso
  (NonEmpty Text) (NonEmpty Text) (NonEmpty Text) (NonEmpty Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The price that you pay for each task performed by an Amazon Mechanical
-- Turk worker.
humanTaskConfig_publicWorkforceTaskPrice :: Lens.Lens' HumanTaskConfig (Prelude.Maybe PublicWorkforceTaskPrice)
humanTaskConfig_publicWorkforceTaskPrice :: (Maybe PublicWorkforceTaskPrice
 -> f (Maybe PublicWorkforceTaskPrice))
-> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_publicWorkforceTaskPrice = (HumanTaskConfig -> Maybe PublicWorkforceTaskPrice)
-> (HumanTaskConfig
    -> Maybe PublicWorkforceTaskPrice -> HumanTaskConfig)
-> Lens
     HumanTaskConfig
     HumanTaskConfig
     (Maybe PublicWorkforceTaskPrice)
     (Maybe PublicWorkforceTaskPrice)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice :: Maybe PublicWorkforceTaskPrice
$sel:publicWorkforceTaskPrice:HumanTaskConfig' :: HumanTaskConfig -> Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice} -> Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Maybe PublicWorkforceTaskPrice
a -> HumanTaskConfig
s {$sel:publicWorkforceTaskPrice:HumanTaskConfig' :: Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice = Maybe PublicWorkforceTaskPrice
a} :: HumanTaskConfig)

-- | The length of time that a task remains available for labeling by human
-- workers. The default and maximum values for this parameter depend on the
-- type of workforce you use.
--
-- -   If you choose the Amazon Mechanical Turk workforce, the maximum is
--     12 hours (43,200 seconds). The default is 6 hours (21,600 seconds).
--
-- -   If you choose a private or vendor workforce, the default value is 10
--     days (864,000 seconds). For most users, the maximum is also 10 days.
--     If you want to change this limit, contact Amazon Web Services
--     Support.
humanTaskConfig_taskAvailabilityLifetimeInSeconds :: Lens.Lens' HumanTaskConfig (Prelude.Maybe Prelude.Natural)
humanTaskConfig_taskAvailabilityLifetimeInSeconds :: (Maybe Natural -> f (Maybe Natural))
-> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_taskAvailabilityLifetimeInSeconds = (HumanTaskConfig -> Maybe Natural)
-> (HumanTaskConfig -> Maybe Natural -> HumanTaskConfig)
-> Lens
     HumanTaskConfig HumanTaskConfig (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Maybe Natural
taskAvailabilityLifetimeInSeconds :: Maybe Natural
$sel:taskAvailabilityLifetimeInSeconds:HumanTaskConfig' :: HumanTaskConfig -> Maybe Natural
taskAvailabilityLifetimeInSeconds} -> Maybe Natural
taskAvailabilityLifetimeInSeconds) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Maybe Natural
a -> HumanTaskConfig
s {$sel:taskAvailabilityLifetimeInSeconds:HumanTaskConfig' :: Maybe Natural
taskAvailabilityLifetimeInSeconds = Maybe Natural
a} :: HumanTaskConfig)

-- | Defines the maximum number of data objects that can be labeled by human
-- workers at the same time. Also referred to as batch size. Each object
-- may have more than one worker at one time. The default value is 1000
-- objects.
humanTaskConfig_maxConcurrentTaskCount :: Lens.Lens' HumanTaskConfig (Prelude.Maybe Prelude.Natural)
humanTaskConfig_maxConcurrentTaskCount :: (Maybe Natural -> f (Maybe Natural))
-> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_maxConcurrentTaskCount = (HumanTaskConfig -> Maybe Natural)
-> (HumanTaskConfig -> Maybe Natural -> HumanTaskConfig)
-> Lens
     HumanTaskConfig HumanTaskConfig (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Maybe Natural
maxConcurrentTaskCount :: Maybe Natural
$sel:maxConcurrentTaskCount:HumanTaskConfig' :: HumanTaskConfig -> Maybe Natural
maxConcurrentTaskCount} -> Maybe Natural
maxConcurrentTaskCount) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Maybe Natural
a -> HumanTaskConfig
s {$sel:maxConcurrentTaskCount:HumanTaskConfig' :: Maybe Natural
maxConcurrentTaskCount = Maybe Natural
a} :: HumanTaskConfig)

-- | The Amazon Resource Name (ARN) of the work team assigned to complete the
-- tasks.
humanTaskConfig_workteamArn :: Lens.Lens' HumanTaskConfig Prelude.Text
humanTaskConfig_workteamArn :: (Text -> f Text) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_workteamArn = (HumanTaskConfig -> Text)
-> (HumanTaskConfig -> Text -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Text
workteamArn :: Text
$sel:workteamArn:HumanTaskConfig' :: HumanTaskConfig -> Text
workteamArn} -> Text
workteamArn) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Text
a -> HumanTaskConfig
s {$sel:workteamArn:HumanTaskConfig' :: Text
workteamArn = Text
a} :: HumanTaskConfig)

-- | Information about the user interface that workers use to complete the
-- labeling task.
humanTaskConfig_uiConfig :: Lens.Lens' HumanTaskConfig UiConfig
humanTaskConfig_uiConfig :: (UiConfig -> f UiConfig) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_uiConfig = (HumanTaskConfig -> UiConfig)
-> (HumanTaskConfig -> UiConfig -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig UiConfig UiConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {UiConfig
uiConfig :: UiConfig
$sel:uiConfig:HumanTaskConfig' :: HumanTaskConfig -> UiConfig
uiConfig} -> UiConfig
uiConfig) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} UiConfig
a -> HumanTaskConfig
s {$sel:uiConfig:HumanTaskConfig' :: UiConfig
uiConfig = UiConfig
a} :: HumanTaskConfig)

-- | The Amazon Resource Name (ARN) of a Lambda function that is run before a
-- data object is sent to a human worker. Use this function to provide
-- input to a custom labeling job.
--
-- For
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task types>,
-- use one of the following Amazon SageMaker Ground Truth Lambda function
-- ARNs for @PreHumanTaskLambdaArn@. For custom labeling workflows, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates-step3.html#sms-custom-templates-step3-prelambda Pre-annotation Lambda>.
--
-- __Bounding box__ - Finds the most similar boxes from different workers
-- based on the Jaccard index of the boxes.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-BoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-BoundingBox@
--
-- __Image classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true class of an image based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClass@
--
-- __Multi-label image classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true classes of an image based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-ImageMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-ImageMultiClassMultiLabel@
--
-- __Semantic segmentation__ - Treats each pixel in an image as a
-- multi-class classification and treats pixel annotations from workers as
-- \"votes\" for the correct label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-SemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-SemanticSegmentation@
--
-- __Text classification__ - Uses a variant of the Expectation Maximization
-- approach to estimate the true class of text based on annotations from
-- individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClass@
--
-- __Multi-label text classification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true classes of text based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-TextMultiClassMultiLabel@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-TextMultiClassMultiLabel@
--
-- __Named entity recognition__ - Groups similar selections and calculates
-- aggregate boundaries, resolving to most-assigned label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-NamedEntityRecognition@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-NamedEntityRecognition@
--
-- __Video Classification__ - Use this task type when you need workers to
-- classify videos using predefined labels that you specify. Workers are
-- shown videos and are asked to choose one label for each video.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoMultiClass@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoMultiClass@
--
-- __Video Frame Object Detection__ - Use this task type to have workers
-- identify and locate objects in a sequence of video frames (images
-- extracted from a video) using bounding boxes. For example, you can use
-- this task to ask workers to identify and localize various objects in a
-- series of video frames, such as cars, bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectDetection@
--
-- __Video Frame Object Tracking__ - Use this task type to have workers
-- track the movement of objects in a sequence of video frames (images
-- extracted from a video) using bounding boxes. For example, you can use
-- this task to ask workers to track the movement of objects, such as cars,
-- bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VideoObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VideoObjectTracking@
--
-- __3D Point Cloud Modalities__
--
-- Use the following pre-annotation lambdas for 3D point cloud labeling
-- modality tasks. See
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud-task-types.html 3D Point Cloud Task types>
-- to learn more.
--
-- __3D Point Cloud Object Detection__ - Use this task type when you want
-- workers to classify objects in a 3D point cloud by drawing 3D cuboids
-- around objects. For example, you can use this task type to ask workers
-- to identify different types of objects in a point cloud, such as cars,
-- bikes, and pedestrians.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectDetection@
--
-- __3D Point Cloud Object Tracking__ - Use this task type when you want
-- workers to draw 3D cuboids around objects that appear in a sequence of
-- 3D point cloud frames. For example, you can use this task type to ask
-- workers to track the movement of vehicles across multiple point cloud
-- frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudObjectTracking@
--
-- __3D Point Cloud Semantic Segmentation__ - Use this task type when you
-- want workers to create a point-level semantic segmentation masks by
-- painting objects in a 3D point cloud using different colors where each
-- color is assigned to one of the classes you specify.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-3DPointCloudSemanticSegmentation@
--
-- __Use the following ARNs for Label Verification and Adjustment Jobs__
--
-- Use label verification and adjustment jobs to review and adjust labels.
-- To learn more, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-verification-data.html Verify and Adjust Labels>
-- .
--
-- __Bounding box verification__ - Uses a variant of the Expectation
-- Maximization approach to estimate the true class of verification
-- judgement for bounding box labels based on annotations from individual
-- workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationBoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationBoundingBox@
--
-- __Bounding box adjustment__ - Finds the most similar boxes from
-- different workers based on the Jaccard index of the adjusted
-- annotations.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentBoundingBox@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentBoundingBox@
--
-- __Semantic segmentation verification__ - Uses a variant of the
-- Expectation Maximization approach to estimate the true class of
-- verification judgment for semantic segmentation labels based on
-- annotations from individual workers.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-VerificationSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-VerificationSemanticSegmentation@
--
-- __Semantic segmentation adjustment__ - Treats each pixel in an image as
-- a multi-class classification and treats pixel adjusted annotations from
-- workers as \"votes\" for the correct label.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentSemanticSegmentation@
--
-- __Video Frame Object Detection Adjustment__ - Use this task type when
-- you want workers to adjust bounding boxes that workers have added to
-- video frames to classify and localize objects in a sequence of video
-- frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectDetection@
--
-- __Video Frame Object Tracking Adjustment__ - Use this task type when you
-- want workers to adjust bounding boxes that workers have added to video
-- frames to track object movement across a sequence of video frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-AdjustmentVideoObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-AdjustmentVideoObjectTracking@
--
-- __3D point cloud object detection adjustment__ - Adjust 3D cuboids in a
-- point cloud frame.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectDetection@
--
-- __3D point cloud object tracking adjustment__ - Adjust 3D cuboids across
-- a sequence of point cloud frames.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudObjectTracking@
--
-- __3D point cloud semantic segmentation adjustment__ - Adjust semantic
-- segmentation masks in a 3D point cloud.
--
-- -   @arn:aws:lambda:us-east-1:432418664414:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-east-2:266458841044:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:us-west-2:081040173940:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-1:568282634449:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-1:477331159723:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-2:454466003867:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-south-1:565803892007:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-central-1:203001061592:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-northeast-2:845288260483:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:eu-west-2:487402164563:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ap-southeast-1:377565633583:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
--
-- -   @arn:aws:lambda:ca-central-1:918755190332:function:PRE-Adjustment3DPointCloudSemanticSegmentation@
humanTaskConfig_preHumanTaskLambdaArn :: Lens.Lens' HumanTaskConfig Prelude.Text
humanTaskConfig_preHumanTaskLambdaArn :: (Text -> f Text) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_preHumanTaskLambdaArn = (HumanTaskConfig -> Text)
-> (HumanTaskConfig -> Text -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Text
preHumanTaskLambdaArn :: Text
$sel:preHumanTaskLambdaArn:HumanTaskConfig' :: HumanTaskConfig -> Text
preHumanTaskLambdaArn} -> Text
preHumanTaskLambdaArn) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Text
a -> HumanTaskConfig
s {$sel:preHumanTaskLambdaArn:HumanTaskConfig' :: Text
preHumanTaskLambdaArn = Text
a} :: HumanTaskConfig)

-- | A title for the task for your human workers.
humanTaskConfig_taskTitle :: Lens.Lens' HumanTaskConfig Prelude.Text
humanTaskConfig_taskTitle :: (Text -> f Text) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_taskTitle = (HumanTaskConfig -> Text)
-> (HumanTaskConfig -> Text -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Text
taskTitle :: Text
$sel:taskTitle:HumanTaskConfig' :: HumanTaskConfig -> Text
taskTitle} -> Text
taskTitle) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Text
a -> HumanTaskConfig
s {$sel:taskTitle:HumanTaskConfig' :: Text
taskTitle = Text
a} :: HumanTaskConfig)

-- | A description of the task for your human workers.
humanTaskConfig_taskDescription :: Lens.Lens' HumanTaskConfig Prelude.Text
humanTaskConfig_taskDescription :: (Text -> f Text) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_taskDescription = (HumanTaskConfig -> Text)
-> (HumanTaskConfig -> Text -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Text
taskDescription :: Text
$sel:taskDescription:HumanTaskConfig' :: HumanTaskConfig -> Text
taskDescription} -> Text
taskDescription) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Text
a -> HumanTaskConfig
s {$sel:taskDescription:HumanTaskConfig' :: Text
taskDescription = Text
a} :: HumanTaskConfig)

-- | The number of human workers that will label an object.
humanTaskConfig_numberOfHumanWorkersPerDataObject :: Lens.Lens' HumanTaskConfig Prelude.Natural
humanTaskConfig_numberOfHumanWorkersPerDataObject :: (Natural -> f Natural) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_numberOfHumanWorkersPerDataObject = (HumanTaskConfig -> Natural)
-> (HumanTaskConfig -> Natural -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Natural Natural
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Natural
numberOfHumanWorkersPerDataObject :: Natural
$sel:numberOfHumanWorkersPerDataObject:HumanTaskConfig' :: HumanTaskConfig -> Natural
numberOfHumanWorkersPerDataObject} -> Natural
numberOfHumanWorkersPerDataObject) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Natural
a -> HumanTaskConfig
s {$sel:numberOfHumanWorkersPerDataObject:HumanTaskConfig' :: Natural
numberOfHumanWorkersPerDataObject = Natural
a} :: HumanTaskConfig)

-- | The amount of time that a worker has to complete a task.
--
-- If you create a custom labeling job, the maximum value for this
-- parameter is 8 hours (28,800 seconds).
--
-- If you create a labeling job using a
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html built-in task type>
-- the maximum for this parameter depends on the task type you use:
--
-- -   For
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-images.html image>
--     and
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-label-text.html text>
--     labeling jobs, the maximum is 8 hours (28,800 seconds).
--
-- -   For
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-point-cloud.html 3D point cloud>
--     and
--     <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-video.html video frame>
--     labeling jobs, the maximum is 7 days (604,800 seconds). If you want
--     to change these limits, contact Amazon Web Services Support.
humanTaskConfig_taskTimeLimitInSeconds :: Lens.Lens' HumanTaskConfig Prelude.Natural
humanTaskConfig_taskTimeLimitInSeconds :: (Natural -> f Natural) -> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_taskTimeLimitInSeconds = (HumanTaskConfig -> Natural)
-> (HumanTaskConfig -> Natural -> HumanTaskConfig)
-> Lens HumanTaskConfig HumanTaskConfig Natural Natural
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {Natural
taskTimeLimitInSeconds :: Natural
$sel:taskTimeLimitInSeconds:HumanTaskConfig' :: HumanTaskConfig -> Natural
taskTimeLimitInSeconds} -> Natural
taskTimeLimitInSeconds) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} Natural
a -> HumanTaskConfig
s {$sel:taskTimeLimitInSeconds:HumanTaskConfig' :: Natural
taskTimeLimitInSeconds = Natural
a} :: HumanTaskConfig)

-- | Configures how labels are consolidated across human workers.
humanTaskConfig_annotationConsolidationConfig :: Lens.Lens' HumanTaskConfig AnnotationConsolidationConfig
humanTaskConfig_annotationConsolidationConfig :: (AnnotationConsolidationConfig -> f AnnotationConsolidationConfig)
-> HumanTaskConfig -> f HumanTaskConfig
humanTaskConfig_annotationConsolidationConfig = (HumanTaskConfig -> AnnotationConsolidationConfig)
-> (HumanTaskConfig
    -> AnnotationConsolidationConfig -> HumanTaskConfig)
-> Lens
     HumanTaskConfig
     HumanTaskConfig
     AnnotationConsolidationConfig
     AnnotationConsolidationConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HumanTaskConfig' {AnnotationConsolidationConfig
annotationConsolidationConfig :: AnnotationConsolidationConfig
$sel:annotationConsolidationConfig:HumanTaskConfig' :: HumanTaskConfig -> AnnotationConsolidationConfig
annotationConsolidationConfig} -> AnnotationConsolidationConfig
annotationConsolidationConfig) (\s :: HumanTaskConfig
s@HumanTaskConfig' {} AnnotationConsolidationConfig
a -> HumanTaskConfig
s {$sel:annotationConsolidationConfig:HumanTaskConfig' :: AnnotationConsolidationConfig
annotationConsolidationConfig = AnnotationConsolidationConfig
a} :: HumanTaskConfig)

instance Core.FromJSON HumanTaskConfig where
  parseJSON :: Value -> Parser HumanTaskConfig
parseJSON =
    String
-> (Object -> Parser HumanTaskConfig)
-> Value
-> Parser HumanTaskConfig
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"HumanTaskConfig"
      ( \Object
x ->
          Maybe (NonEmpty Text)
-> Maybe PublicWorkforceTaskPrice
-> Maybe Natural
-> Maybe Natural
-> Text
-> UiConfig
-> Text
-> Text
-> Text
-> Natural
-> Natural
-> AnnotationConsolidationConfig
-> HumanTaskConfig
HumanTaskConfig'
            (Maybe (NonEmpty Text)
 -> Maybe PublicWorkforceTaskPrice
 -> Maybe Natural
 -> Maybe Natural
 -> Text
 -> UiConfig
 -> Text
 -> Text
 -> Text
 -> Natural
 -> Natural
 -> AnnotationConsolidationConfig
 -> HumanTaskConfig)
-> Parser (Maybe (NonEmpty Text))
-> Parser
     (Maybe PublicWorkforceTaskPrice
      -> Maybe Natural
      -> Maybe Natural
      -> Text
      -> UiConfig
      -> Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe (NonEmpty Text))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TaskKeywords")
            Parser
  (Maybe PublicWorkforceTaskPrice
   -> Maybe Natural
   -> Maybe Natural
   -> Text
   -> UiConfig
   -> Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser (Maybe PublicWorkforceTaskPrice)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Text
      -> UiConfig
      -> Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PublicWorkforceTaskPrice)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"PublicWorkforceTaskPrice")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Text
   -> UiConfig
   -> Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Text
      -> UiConfig
      -> Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TaskAvailabilityLifetimeInSeconds")
            Parser
  (Maybe Natural
   -> Text
   -> UiConfig
   -> Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser (Maybe Natural)
-> Parser
     (Text
      -> UiConfig
      -> Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MaxConcurrentTaskCount")
            Parser
  (Text
   -> UiConfig
   -> Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser Text
-> Parser
     (UiConfig
      -> Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"WorkteamArn")
            Parser
  (UiConfig
   -> Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser UiConfig
-> Parser
     (Text
      -> Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser UiConfig
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"UiConfig")
            Parser
  (Text
   -> Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser Text
-> Parser
     (Text
      -> Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"PreHumanTaskLambdaArn")
            Parser
  (Text
   -> Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser Text
-> Parser
     (Text
      -> Natural
      -> Natural
      -> AnnotationConsolidationConfig
      -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"TaskTitle")
            Parser
  (Text
   -> Natural
   -> Natural
   -> AnnotationConsolidationConfig
   -> HumanTaskConfig)
-> Parser Text
-> Parser
     (Natural
      -> Natural -> AnnotationConsolidationConfig -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"TaskDescription")
            Parser
  (Natural
   -> Natural -> AnnotationConsolidationConfig -> HumanTaskConfig)
-> Parser Natural
-> Parser
     (Natural -> AnnotationConsolidationConfig -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Natural
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"NumberOfHumanWorkersPerDataObject")
            Parser
  (Natural -> AnnotationConsolidationConfig -> HumanTaskConfig)
-> Parser Natural
-> Parser (AnnotationConsolidationConfig -> HumanTaskConfig)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser Natural
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"TaskTimeLimitInSeconds")
            Parser (AnnotationConsolidationConfig -> HumanTaskConfig)
-> Parser AnnotationConsolidationConfig -> Parser HumanTaskConfig
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser AnnotationConsolidationConfig
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"AnnotationConsolidationConfig")
      )

instance Prelude.Hashable HumanTaskConfig

instance Prelude.NFData HumanTaskConfig

instance Core.ToJSON HumanTaskConfig where
  toJSON :: HumanTaskConfig -> Value
toJSON HumanTaskConfig' {Natural
Maybe Natural
Maybe (NonEmpty Text)
Maybe PublicWorkforceTaskPrice
Text
AnnotationConsolidationConfig
UiConfig
annotationConsolidationConfig :: AnnotationConsolidationConfig
taskTimeLimitInSeconds :: Natural
numberOfHumanWorkersPerDataObject :: Natural
taskDescription :: Text
taskTitle :: Text
preHumanTaskLambdaArn :: Text
uiConfig :: UiConfig
workteamArn :: Text
maxConcurrentTaskCount :: Maybe Natural
taskAvailabilityLifetimeInSeconds :: Maybe Natural
publicWorkforceTaskPrice :: Maybe PublicWorkforceTaskPrice
taskKeywords :: Maybe (NonEmpty Text)
$sel:annotationConsolidationConfig:HumanTaskConfig' :: HumanTaskConfig -> AnnotationConsolidationConfig
$sel:taskTimeLimitInSeconds:HumanTaskConfig' :: HumanTaskConfig -> Natural
$sel:numberOfHumanWorkersPerDataObject:HumanTaskConfig' :: HumanTaskConfig -> Natural
$sel:taskDescription:HumanTaskConfig' :: HumanTaskConfig -> Text
$sel:taskTitle:HumanTaskConfig' :: HumanTaskConfig -> Text
$sel:preHumanTaskLambdaArn:HumanTaskConfig' :: HumanTaskConfig -> Text
$sel:uiConfig:HumanTaskConfig' :: HumanTaskConfig -> UiConfig
$sel:workteamArn:HumanTaskConfig' :: HumanTaskConfig -> Text
$sel:maxConcurrentTaskCount:HumanTaskConfig' :: HumanTaskConfig -> Maybe Natural
$sel:taskAvailabilityLifetimeInSeconds:HumanTaskConfig' :: HumanTaskConfig -> Maybe Natural
$sel:publicWorkforceTaskPrice:HumanTaskConfig' :: HumanTaskConfig -> Maybe PublicWorkforceTaskPrice
$sel:taskKeywords:HumanTaskConfig' :: HumanTaskConfig -> Maybe (NonEmpty Text)
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"TaskKeywords" Text -> NonEmpty Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (NonEmpty Text -> Pair) -> Maybe (NonEmpty Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
taskKeywords,
            (Text
"PublicWorkforceTaskPrice" Text -> PublicWorkforceTaskPrice -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (PublicWorkforceTaskPrice -> Pair)
-> Maybe PublicWorkforceTaskPrice -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PublicWorkforceTaskPrice
publicWorkforceTaskPrice,
            (Text
"TaskAvailabilityLifetimeInSeconds" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
taskAvailabilityLifetimeInSeconds,
            (Text
"MaxConcurrentTaskCount" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxConcurrentTaskCount,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"WorkteamArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
workteamArn),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"UiConfig" Text -> UiConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= UiConfig
uiConfig),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"PreHumanTaskLambdaArn"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
preHumanTaskLambdaArn
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"TaskTitle" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
taskTitle),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"TaskDescription" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
taskDescription),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"NumberOfHumanWorkersPerDataObject"
                  Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Natural
numberOfHumanWorkersPerDataObject
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"TaskTimeLimitInSeconds"
                  Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Natural
taskTimeLimitInSeconds
              ),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"AnnotationConsolidationConfig"
                  Text -> AnnotationConsolidationConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= AnnotationConsolidationConfig
annotationConsolidationConfig
              )
          ]
      )