amazonka-pipes-2.0: gen/Amazonka/Pipes/Types/PipeTargetParameters.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.Pipes.Types.PipeTargetParameters
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Pipes.Types.PipeTargetParameters where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Pipes.Types.PipeTargetBatchJobParameters
import Amazonka.Pipes.Types.PipeTargetCloudWatchLogsParameters
import Amazonka.Pipes.Types.PipeTargetEcsTaskParameters
import Amazonka.Pipes.Types.PipeTargetEventBridgeEventBusParameters
import Amazonka.Pipes.Types.PipeTargetHttpParameters
import Amazonka.Pipes.Types.PipeTargetKinesisStreamParameters
import Amazonka.Pipes.Types.PipeTargetLambdaFunctionParameters
import Amazonka.Pipes.Types.PipeTargetRedshiftDataParameters
import Amazonka.Pipes.Types.PipeTargetSageMakerPipelineParameters
import Amazonka.Pipes.Types.PipeTargetSqsQueueParameters
import Amazonka.Pipes.Types.PipeTargetStateMachineParameters
import qualified Amazonka.Prelude as Prelude
-- | The parameters required to set up a target for your pipe.
--
-- /See:/ 'newPipeTargetParameters' smart constructor.
data PipeTargetParameters = PipeTargetParameters'
{ -- | The parameters for using an Batch job as a target.
batchJobParameters :: Prelude.Maybe PipeTargetBatchJobParameters,
-- | The parameters for using an CloudWatch Logs log stream as a target.
cloudWatchLogsParameters :: Prelude.Maybe PipeTargetCloudWatchLogsParameters,
-- | The parameters for using an Amazon ECS task as a target.
ecsTaskParameters :: Prelude.Maybe PipeTargetEcsTaskParameters,
-- | The parameters for using an EventBridge event bus as a target.
eventBridgeEventBusParameters :: Prelude.Maybe PipeTargetEventBridgeEventBusParameters,
-- | These are custom parameter to be used when the target is an API Gateway
-- REST APIs or EventBridge ApiDestinations.
httpParameters :: Prelude.Maybe PipeTargetHttpParameters,
-- | Valid JSON text passed to the target. In this case, nothing from the
-- event itself is passed to the target. For more information, see
-- <http://www.rfc-editor.org/rfc/rfc7159.txt The JavaScript Object Notation (JSON) Data Interchange Format>.
inputTemplate :: Prelude.Maybe (Data.Sensitive Prelude.Text),
-- | The parameters for using a Kinesis stream as a source.
kinesisStreamParameters :: Prelude.Maybe PipeTargetKinesisStreamParameters,
-- | The parameters for using a Lambda function as a target.
lambdaFunctionParameters :: Prelude.Maybe PipeTargetLambdaFunctionParameters,
-- | These are custom parameters to be used when the target is a Amazon
-- Redshift cluster to invoke the Amazon Redshift Data API
-- ExecuteStatement.
redshiftDataParameters :: Prelude.Maybe PipeTargetRedshiftDataParameters,
-- | The parameters for using a SageMaker pipeline as a target.
sageMakerPipelineParameters :: Prelude.Maybe PipeTargetSageMakerPipelineParameters,
-- | The parameters for using a Amazon SQS stream as a source.
sqsQueueParameters :: Prelude.Maybe PipeTargetSqsQueueParameters,
-- | The parameters for using a Step Functions state machine as a target.
stepFunctionStateMachineParameters :: Prelude.Maybe PipeTargetStateMachineParameters
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'PipeTargetParameters' 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:
--
-- 'batchJobParameters', 'pipeTargetParameters_batchJobParameters' - The parameters for using an Batch job as a target.
--
-- 'cloudWatchLogsParameters', 'pipeTargetParameters_cloudWatchLogsParameters' - The parameters for using an CloudWatch Logs log stream as a target.
--
-- 'ecsTaskParameters', 'pipeTargetParameters_ecsTaskParameters' - The parameters for using an Amazon ECS task as a target.
--
-- 'eventBridgeEventBusParameters', 'pipeTargetParameters_eventBridgeEventBusParameters' - The parameters for using an EventBridge event bus as a target.
--
-- 'httpParameters', 'pipeTargetParameters_httpParameters' - These are custom parameter to be used when the target is an API Gateway
-- REST APIs or EventBridge ApiDestinations.
--
-- 'inputTemplate', 'pipeTargetParameters_inputTemplate' - Valid JSON text passed to the target. In this case, nothing from the
-- event itself is passed to the target. For more information, see
-- <http://www.rfc-editor.org/rfc/rfc7159.txt The JavaScript Object Notation (JSON) Data Interchange Format>.
--
-- 'kinesisStreamParameters', 'pipeTargetParameters_kinesisStreamParameters' - The parameters for using a Kinesis stream as a source.
--
-- 'lambdaFunctionParameters', 'pipeTargetParameters_lambdaFunctionParameters' - The parameters for using a Lambda function as a target.
--
-- 'redshiftDataParameters', 'pipeTargetParameters_redshiftDataParameters' - These are custom parameters to be used when the target is a Amazon
-- Redshift cluster to invoke the Amazon Redshift Data API
-- ExecuteStatement.
--
-- 'sageMakerPipelineParameters', 'pipeTargetParameters_sageMakerPipelineParameters' - The parameters for using a SageMaker pipeline as a target.
--
-- 'sqsQueueParameters', 'pipeTargetParameters_sqsQueueParameters' - The parameters for using a Amazon SQS stream as a source.
--
-- 'stepFunctionStateMachineParameters', 'pipeTargetParameters_stepFunctionStateMachineParameters' - The parameters for using a Step Functions state machine as a target.
newPipeTargetParameters ::
PipeTargetParameters
newPipeTargetParameters =
PipeTargetParameters'
{ batchJobParameters =
Prelude.Nothing,
cloudWatchLogsParameters = Prelude.Nothing,
ecsTaskParameters = Prelude.Nothing,
eventBridgeEventBusParameters = Prelude.Nothing,
httpParameters = Prelude.Nothing,
inputTemplate = Prelude.Nothing,
kinesisStreamParameters = Prelude.Nothing,
lambdaFunctionParameters = Prelude.Nothing,
redshiftDataParameters = Prelude.Nothing,
sageMakerPipelineParameters = Prelude.Nothing,
sqsQueueParameters = Prelude.Nothing,
stepFunctionStateMachineParameters = Prelude.Nothing
}
-- | The parameters for using an Batch job as a target.
pipeTargetParameters_batchJobParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetBatchJobParameters)
pipeTargetParameters_batchJobParameters = Lens.lens (\PipeTargetParameters' {batchJobParameters} -> batchJobParameters) (\s@PipeTargetParameters' {} a -> s {batchJobParameters = a} :: PipeTargetParameters)
-- | The parameters for using an CloudWatch Logs log stream as a target.
pipeTargetParameters_cloudWatchLogsParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetCloudWatchLogsParameters)
pipeTargetParameters_cloudWatchLogsParameters = Lens.lens (\PipeTargetParameters' {cloudWatchLogsParameters} -> cloudWatchLogsParameters) (\s@PipeTargetParameters' {} a -> s {cloudWatchLogsParameters = a} :: PipeTargetParameters)
-- | The parameters for using an Amazon ECS task as a target.
pipeTargetParameters_ecsTaskParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetEcsTaskParameters)
pipeTargetParameters_ecsTaskParameters = Lens.lens (\PipeTargetParameters' {ecsTaskParameters} -> ecsTaskParameters) (\s@PipeTargetParameters' {} a -> s {ecsTaskParameters = a} :: PipeTargetParameters)
-- | The parameters for using an EventBridge event bus as a target.
pipeTargetParameters_eventBridgeEventBusParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetEventBridgeEventBusParameters)
pipeTargetParameters_eventBridgeEventBusParameters = Lens.lens (\PipeTargetParameters' {eventBridgeEventBusParameters} -> eventBridgeEventBusParameters) (\s@PipeTargetParameters' {} a -> s {eventBridgeEventBusParameters = a} :: PipeTargetParameters)
-- | These are custom parameter to be used when the target is an API Gateway
-- REST APIs or EventBridge ApiDestinations.
pipeTargetParameters_httpParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetHttpParameters)
pipeTargetParameters_httpParameters = Lens.lens (\PipeTargetParameters' {httpParameters} -> httpParameters) (\s@PipeTargetParameters' {} a -> s {httpParameters = a} :: PipeTargetParameters)
-- | Valid JSON text passed to the target. In this case, nothing from the
-- event itself is passed to the target. For more information, see
-- <http://www.rfc-editor.org/rfc/rfc7159.txt The JavaScript Object Notation (JSON) Data Interchange Format>.
pipeTargetParameters_inputTemplate :: Lens.Lens' PipeTargetParameters (Prelude.Maybe Prelude.Text)
pipeTargetParameters_inputTemplate = Lens.lens (\PipeTargetParameters' {inputTemplate} -> inputTemplate) (\s@PipeTargetParameters' {} a -> s {inputTemplate = a} :: PipeTargetParameters) Prelude.. Lens.mapping Data._Sensitive
-- | The parameters for using a Kinesis stream as a source.
pipeTargetParameters_kinesisStreamParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetKinesisStreamParameters)
pipeTargetParameters_kinesisStreamParameters = Lens.lens (\PipeTargetParameters' {kinesisStreamParameters} -> kinesisStreamParameters) (\s@PipeTargetParameters' {} a -> s {kinesisStreamParameters = a} :: PipeTargetParameters)
-- | The parameters for using a Lambda function as a target.
pipeTargetParameters_lambdaFunctionParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetLambdaFunctionParameters)
pipeTargetParameters_lambdaFunctionParameters = Lens.lens (\PipeTargetParameters' {lambdaFunctionParameters} -> lambdaFunctionParameters) (\s@PipeTargetParameters' {} a -> s {lambdaFunctionParameters = a} :: PipeTargetParameters)
-- | These are custom parameters to be used when the target is a Amazon
-- Redshift cluster to invoke the Amazon Redshift Data API
-- ExecuteStatement.
pipeTargetParameters_redshiftDataParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetRedshiftDataParameters)
pipeTargetParameters_redshiftDataParameters = Lens.lens (\PipeTargetParameters' {redshiftDataParameters} -> redshiftDataParameters) (\s@PipeTargetParameters' {} a -> s {redshiftDataParameters = a} :: PipeTargetParameters)
-- | The parameters for using a SageMaker pipeline as a target.
pipeTargetParameters_sageMakerPipelineParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetSageMakerPipelineParameters)
pipeTargetParameters_sageMakerPipelineParameters = Lens.lens (\PipeTargetParameters' {sageMakerPipelineParameters} -> sageMakerPipelineParameters) (\s@PipeTargetParameters' {} a -> s {sageMakerPipelineParameters = a} :: PipeTargetParameters)
-- | The parameters for using a Amazon SQS stream as a source.
pipeTargetParameters_sqsQueueParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetSqsQueueParameters)
pipeTargetParameters_sqsQueueParameters = Lens.lens (\PipeTargetParameters' {sqsQueueParameters} -> sqsQueueParameters) (\s@PipeTargetParameters' {} a -> s {sqsQueueParameters = a} :: PipeTargetParameters)
-- | The parameters for using a Step Functions state machine as a target.
pipeTargetParameters_stepFunctionStateMachineParameters :: Lens.Lens' PipeTargetParameters (Prelude.Maybe PipeTargetStateMachineParameters)
pipeTargetParameters_stepFunctionStateMachineParameters = Lens.lens (\PipeTargetParameters' {stepFunctionStateMachineParameters} -> stepFunctionStateMachineParameters) (\s@PipeTargetParameters' {} a -> s {stepFunctionStateMachineParameters = a} :: PipeTargetParameters)
instance Data.FromJSON PipeTargetParameters where
parseJSON =
Data.withObject
"PipeTargetParameters"
( \x ->
PipeTargetParameters'
Prelude.<$> (x Data..:? "BatchJobParameters")
Prelude.<*> (x Data..:? "CloudWatchLogsParameters")
Prelude.<*> (x Data..:? "EcsTaskParameters")
Prelude.<*> (x Data..:? "EventBridgeEventBusParameters")
Prelude.<*> (x Data..:? "HttpParameters")
Prelude.<*> (x Data..:? "InputTemplate")
Prelude.<*> (x Data..:? "KinesisStreamParameters")
Prelude.<*> (x Data..:? "LambdaFunctionParameters")
Prelude.<*> (x Data..:? "RedshiftDataParameters")
Prelude.<*> (x Data..:? "SageMakerPipelineParameters")
Prelude.<*> (x Data..:? "SqsQueueParameters")
Prelude.<*> (x Data..:? "StepFunctionStateMachineParameters")
)
instance Prelude.Hashable PipeTargetParameters where
hashWithSalt _salt PipeTargetParameters' {..} =
_salt
`Prelude.hashWithSalt` batchJobParameters
`Prelude.hashWithSalt` cloudWatchLogsParameters
`Prelude.hashWithSalt` ecsTaskParameters
`Prelude.hashWithSalt` eventBridgeEventBusParameters
`Prelude.hashWithSalt` httpParameters
`Prelude.hashWithSalt` inputTemplate
`Prelude.hashWithSalt` kinesisStreamParameters
`Prelude.hashWithSalt` lambdaFunctionParameters
`Prelude.hashWithSalt` redshiftDataParameters
`Prelude.hashWithSalt` sageMakerPipelineParameters
`Prelude.hashWithSalt` sqsQueueParameters
`Prelude.hashWithSalt` stepFunctionStateMachineParameters
instance Prelude.NFData PipeTargetParameters where
rnf PipeTargetParameters' {..} =
Prelude.rnf batchJobParameters
`Prelude.seq` Prelude.rnf cloudWatchLogsParameters
`Prelude.seq` Prelude.rnf ecsTaskParameters
`Prelude.seq` Prelude.rnf eventBridgeEventBusParameters
`Prelude.seq` Prelude.rnf httpParameters
`Prelude.seq` Prelude.rnf inputTemplate
`Prelude.seq` Prelude.rnf kinesisStreamParameters
`Prelude.seq` Prelude.rnf lambdaFunctionParameters
`Prelude.seq` Prelude.rnf redshiftDataParameters
`Prelude.seq` Prelude.rnf sageMakerPipelineParameters
`Prelude.seq` Prelude.rnf sqsQueueParameters
`Prelude.seq` Prelude.rnf stepFunctionStateMachineParameters
instance Data.ToJSON PipeTargetParameters where
toJSON PipeTargetParameters' {..} =
Data.object
( Prelude.catMaybes
[ ("BatchJobParameters" Data..=)
Prelude.<$> batchJobParameters,
("CloudWatchLogsParameters" Data..=)
Prelude.<$> cloudWatchLogsParameters,
("EcsTaskParameters" Data..=)
Prelude.<$> ecsTaskParameters,
("EventBridgeEventBusParameters" Data..=)
Prelude.<$> eventBridgeEventBusParameters,
("HttpParameters" Data..=)
Prelude.<$> httpParameters,
("InputTemplate" Data..=) Prelude.<$> inputTemplate,
("KinesisStreamParameters" Data..=)
Prelude.<$> kinesisStreamParameters,
("LambdaFunctionParameters" Data..=)
Prelude.<$> lambdaFunctionParameters,
("RedshiftDataParameters" Data..=)
Prelude.<$> redshiftDataParameters,
("SageMakerPipelineParameters" Data..=)
Prelude.<$> sageMakerPipelineParameters,
("SqsQueueParameters" Data..=)
Prelude.<$> sqsQueueParameters,
("StepFunctionStateMachineParameters" Data..=)
Prelude.<$> stepFunctionStateMachineParameters
]
)