{-# 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.KinesisAnalyticsV2.Types.Input -- 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.KinesisAnalyticsV2.Types.Input where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.KinesisAnalyticsV2.Types.InputParallelism import Amazonka.KinesisAnalyticsV2.Types.InputProcessingConfiguration import Amazonka.KinesisAnalyticsV2.Types.KinesisFirehoseInput import Amazonka.KinesisAnalyticsV2.Types.KinesisStreamsInput import Amazonka.KinesisAnalyticsV2.Types.SourceSchema import qualified Amazonka.Prelude as Prelude -- | When you configure the application input for a SQL-based Kinesis Data -- Analytics application, you specify the streaming source, the -- in-application stream name that is created, and the mapping between the -- two. -- -- /See:/ 'newInput' smart constructor. data Input = Input' { -- | Describes the number of in-application streams to create. inputParallelism :: Prelude.Maybe InputParallelism, -- | The InputProcessingConfiguration for the input. An input processor -- transforms records as they are received from the stream, before the -- application\'s SQL code executes. Currently, the only input processing -- configuration available is InputLambdaProcessor. inputProcessingConfiguration :: Prelude.Maybe InputProcessingConfiguration, -- | If the streaming source is an Amazon Kinesis Data Firehose delivery -- stream, identifies the delivery stream\'s ARN. kinesisFirehoseInput :: Prelude.Maybe KinesisFirehoseInput, -- | If the streaming source is an Amazon Kinesis data stream, identifies the -- stream\'s Amazon Resource Name (ARN). kinesisStreamsInput :: Prelude.Maybe KinesisStreamsInput, -- | The name prefix to use when creating an in-application stream. Suppose -- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data -- Analytics then creates one or more (as per the @InputParallelism@ count -- you specified) in-application streams with the names -- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so -- on. namePrefix :: Prelude.Text, -- | Describes the format of the data in the streaming source, and how each -- data element maps to corresponding columns in the in-application stream -- that is being created. -- -- Also used to describe the format of the reference data source. inputSchema :: SourceSchema } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'Input' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'inputParallelism', 'input_inputParallelism' - Describes the number of in-application streams to create. -- -- 'inputProcessingConfiguration', 'input_inputProcessingConfiguration' - The InputProcessingConfiguration for the input. An input processor -- transforms records as they are received from the stream, before the -- application\'s SQL code executes. Currently, the only input processing -- configuration available is InputLambdaProcessor. -- -- 'kinesisFirehoseInput', 'input_kinesisFirehoseInput' - If the streaming source is an Amazon Kinesis Data Firehose delivery -- stream, identifies the delivery stream\'s ARN. -- -- 'kinesisStreamsInput', 'input_kinesisStreamsInput' - If the streaming source is an Amazon Kinesis data stream, identifies the -- stream\'s Amazon Resource Name (ARN). -- -- 'namePrefix', 'input_namePrefix' - The name prefix to use when creating an in-application stream. Suppose -- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data -- Analytics then creates one or more (as per the @InputParallelism@ count -- you specified) in-application streams with the names -- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so -- on. -- -- 'inputSchema', 'input_inputSchema' - Describes the format of the data in the streaming source, and how each -- data element maps to corresponding columns in the in-application stream -- that is being created. -- -- Also used to describe the format of the reference data source. newInput :: -- | 'namePrefix' Prelude.Text -> -- | 'inputSchema' SourceSchema -> Input newInput pNamePrefix_ pInputSchema_ = Input' { inputParallelism = Prelude.Nothing, inputProcessingConfiguration = Prelude.Nothing, kinesisFirehoseInput = Prelude.Nothing, kinesisStreamsInput = Prelude.Nothing, namePrefix = pNamePrefix_, inputSchema = pInputSchema_ } -- | Describes the number of in-application streams to create. input_inputParallelism :: Lens.Lens' Input (Prelude.Maybe InputParallelism) input_inputParallelism = Lens.lens (\Input' {inputParallelism} -> inputParallelism) (\s@Input' {} a -> s {inputParallelism = a} :: Input) -- | The InputProcessingConfiguration for the input. An input processor -- transforms records as they are received from the stream, before the -- application\'s SQL code executes. Currently, the only input processing -- configuration available is InputLambdaProcessor. input_inputProcessingConfiguration :: Lens.Lens' Input (Prelude.Maybe InputProcessingConfiguration) input_inputProcessingConfiguration = Lens.lens (\Input' {inputProcessingConfiguration} -> inputProcessingConfiguration) (\s@Input' {} a -> s {inputProcessingConfiguration = a} :: Input) -- | If the streaming source is an Amazon Kinesis Data Firehose delivery -- stream, identifies the delivery stream\'s ARN. input_kinesisFirehoseInput :: Lens.Lens' Input (Prelude.Maybe KinesisFirehoseInput) input_kinesisFirehoseInput = Lens.lens (\Input' {kinesisFirehoseInput} -> kinesisFirehoseInput) (\s@Input' {} a -> s {kinesisFirehoseInput = a} :: Input) -- | If the streaming source is an Amazon Kinesis data stream, identifies the -- stream\'s Amazon Resource Name (ARN). input_kinesisStreamsInput :: Lens.Lens' Input (Prelude.Maybe KinesisStreamsInput) input_kinesisStreamsInput = Lens.lens (\Input' {kinesisStreamsInput} -> kinesisStreamsInput) (\s@Input' {} a -> s {kinesisStreamsInput = a} :: Input) -- | The name prefix to use when creating an in-application stream. Suppose -- that you specify a prefix \"@MyInApplicationStream@.\" Kinesis Data -- Analytics then creates one or more (as per the @InputParallelism@ count -- you specified) in-application streams with the names -- \"@MyInApplicationStream_001@,\" \"@MyInApplicationStream_002@,\" and so -- on. input_namePrefix :: Lens.Lens' Input Prelude.Text input_namePrefix = Lens.lens (\Input' {namePrefix} -> namePrefix) (\s@Input' {} a -> s {namePrefix = a} :: Input) -- | Describes the format of the data in the streaming source, and how each -- data element maps to corresponding columns in the in-application stream -- that is being created. -- -- Also used to describe the format of the reference data source. input_inputSchema :: Lens.Lens' Input SourceSchema input_inputSchema = Lens.lens (\Input' {inputSchema} -> inputSchema) (\s@Input' {} a -> s {inputSchema = a} :: Input) instance Prelude.Hashable Input where hashWithSalt _salt Input' {..} = _salt `Prelude.hashWithSalt` inputParallelism `Prelude.hashWithSalt` inputProcessingConfiguration `Prelude.hashWithSalt` kinesisFirehoseInput `Prelude.hashWithSalt` kinesisStreamsInput `Prelude.hashWithSalt` namePrefix `Prelude.hashWithSalt` inputSchema instance Prelude.NFData Input where rnf Input' {..} = Prelude.rnf inputParallelism `Prelude.seq` Prelude.rnf inputProcessingConfiguration `Prelude.seq` Prelude.rnf kinesisFirehoseInput `Prelude.seq` Prelude.rnf kinesisStreamsInput `Prelude.seq` Prelude.rnf namePrefix `Prelude.seq` Prelude.rnf inputSchema instance Data.ToJSON Input where toJSON Input' {..} = Data.object ( Prelude.catMaybes [ ("InputParallelism" Data..=) Prelude.<$> inputParallelism, ("InputProcessingConfiguration" Data..=) Prelude.<$> inputProcessingConfiguration, ("KinesisFirehoseInput" Data..=) Prelude.<$> kinesisFirehoseInput, ("KinesisStreamsInput" Data..=) Prelude.<$> kinesisStreamsInput, Prelude.Just ("NamePrefix" Data..= namePrefix), Prelude.Just ("InputSchema" Data..= inputSchema) ] )