{-# 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.UpdatePipeSourceParameters
-- 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.UpdatePipeSourceParameters 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.FilterCriteria
import Amazonka.Pipes.Types.UpdatePipeSourceActiveMQBrokerParameters
import Amazonka.Pipes.Types.UpdatePipeSourceDynamoDBStreamParameters
import Amazonka.Pipes.Types.UpdatePipeSourceKinesisStreamParameters
import Amazonka.Pipes.Types.UpdatePipeSourceManagedStreamingKafkaParameters
import Amazonka.Pipes.Types.UpdatePipeSourceRabbitMQBrokerParameters
import Amazonka.Pipes.Types.UpdatePipeSourceSelfManagedKafkaParameters
import Amazonka.Pipes.Types.UpdatePipeSourceSqsQueueParameters
import qualified Amazonka.Prelude as Prelude

-- | The parameters required to set up a source for your pipe.
--
-- /See:/ 'newUpdatePipeSourceParameters' smart constructor.
data UpdatePipeSourceParameters = UpdatePipeSourceParameters'
  { -- | The parameters for using an Active MQ broker as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters :: Prelude.Maybe UpdatePipeSourceActiveMQBrokerParameters,
    -- | The parameters for using a DynamoDB stream as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters :: Prelude.Maybe UpdatePipeSourceDynamoDBStreamParameters,
    -- | The collection of event patterns used to filter events. For more
    -- information, see
    -- <https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html Events and Event Patterns>
    -- in the /Amazon EventBridge User Guide/.
    UpdatePipeSourceParameters -> Maybe FilterCriteria
filterCriteria :: Prelude.Maybe FilterCriteria,
    -- | The parameters for using a Kinesis stream as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters :: Prelude.Maybe UpdatePipeSourceKinesisStreamParameters,
    -- | The parameters for using an MSK stream as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters :: Prelude.Maybe UpdatePipeSourceManagedStreamingKafkaParameters,
    -- | The parameters for using a Rabbit MQ broker as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters :: Prelude.Maybe UpdatePipeSourceRabbitMQBrokerParameters,
    -- | The parameters for using a self-managed Apache Kafka stream as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters :: Prelude.Maybe UpdatePipeSourceSelfManagedKafkaParameters,
    -- | The parameters for using a Amazon SQS stream as a source.
    UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters :: Prelude.Maybe UpdatePipeSourceSqsQueueParameters
  }
  deriving (UpdatePipeSourceParameters -> UpdatePipeSourceParameters -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdatePipeSourceParameters -> UpdatePipeSourceParameters -> Bool
$c/= :: UpdatePipeSourceParameters -> UpdatePipeSourceParameters -> Bool
== :: UpdatePipeSourceParameters -> UpdatePipeSourceParameters -> Bool
$c== :: UpdatePipeSourceParameters -> UpdatePipeSourceParameters -> Bool
Prelude.Eq, Int -> UpdatePipeSourceParameters -> ShowS
[UpdatePipeSourceParameters] -> ShowS
UpdatePipeSourceParameters -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdatePipeSourceParameters] -> ShowS
$cshowList :: [UpdatePipeSourceParameters] -> ShowS
show :: UpdatePipeSourceParameters -> String
$cshow :: UpdatePipeSourceParameters -> String
showsPrec :: Int -> UpdatePipeSourceParameters -> ShowS
$cshowsPrec :: Int -> UpdatePipeSourceParameters -> ShowS
Prelude.Show, forall x.
Rep UpdatePipeSourceParameters x -> UpdatePipeSourceParameters
forall x.
UpdatePipeSourceParameters -> Rep UpdatePipeSourceParameters x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdatePipeSourceParameters x -> UpdatePipeSourceParameters
$cfrom :: forall x.
UpdatePipeSourceParameters -> Rep UpdatePipeSourceParameters x
Prelude.Generic)

-- |
-- Create a value of 'UpdatePipeSourceParameters' 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:
--
-- 'activeMQBrokerParameters', 'updatePipeSourceParameters_activeMQBrokerParameters' - The parameters for using an Active MQ broker as a source.
--
-- 'dynamoDBStreamParameters', 'updatePipeSourceParameters_dynamoDBStreamParameters' - The parameters for using a DynamoDB stream as a source.
--
-- 'filterCriteria', 'updatePipeSourceParameters_filterCriteria' - The collection of event patterns used to filter events. For more
-- information, see
-- <https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html Events and Event Patterns>
-- in the /Amazon EventBridge User Guide/.
--
-- 'kinesisStreamParameters', 'updatePipeSourceParameters_kinesisStreamParameters' - The parameters for using a Kinesis stream as a source.
--
-- 'managedStreamingKafkaParameters', 'updatePipeSourceParameters_managedStreamingKafkaParameters' - The parameters for using an MSK stream as a source.
--
-- 'rabbitMQBrokerParameters', 'updatePipeSourceParameters_rabbitMQBrokerParameters' - The parameters for using a Rabbit MQ broker as a source.
--
-- 'selfManagedKafkaParameters', 'updatePipeSourceParameters_selfManagedKafkaParameters' - The parameters for using a self-managed Apache Kafka stream as a source.
--
-- 'sqsQueueParameters', 'updatePipeSourceParameters_sqsQueueParameters' - The parameters for using a Amazon SQS stream as a source.
newUpdatePipeSourceParameters ::
  UpdatePipeSourceParameters
newUpdatePipeSourceParameters :: UpdatePipeSourceParameters
newUpdatePipeSourceParameters =
  UpdatePipeSourceParameters'
    { $sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:filterCriteria:UpdatePipeSourceParameters' :: Maybe FilterCriteria
filterCriteria = forall a. Maybe a
Prelude.Nothing,
      $sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters =
        forall a. Maybe a
Prelude.Nothing,
      $sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:sqsQueueParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters = forall a. Maybe a
Prelude.Nothing
    }

-- | The parameters for using an Active MQ broker as a source.
updatePipeSourceParameters_activeMQBrokerParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceActiveMQBrokerParameters)
updatePipeSourceParameters_activeMQBrokerParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceActiveMQBrokerParameters)
updatePipeSourceParameters_activeMQBrokerParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters :: Maybe UpdatePipeSourceActiveMQBrokerParameters
$sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters} -> Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceActiveMQBrokerParameters
a -> UpdatePipeSourceParameters
s {$sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters = Maybe UpdatePipeSourceActiveMQBrokerParameters
a} :: UpdatePipeSourceParameters)

-- | The parameters for using a DynamoDB stream as a source.
updatePipeSourceParameters_dynamoDBStreamParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceDynamoDBStreamParameters)
updatePipeSourceParameters_dynamoDBStreamParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceDynamoDBStreamParameters)
updatePipeSourceParameters_dynamoDBStreamParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters :: Maybe UpdatePipeSourceDynamoDBStreamParameters
$sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters} -> Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceDynamoDBStreamParameters
a -> UpdatePipeSourceParameters
s {$sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters = Maybe UpdatePipeSourceDynamoDBStreamParameters
a} :: UpdatePipeSourceParameters)

-- | The collection of event patterns used to filter events. For more
-- information, see
-- <https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html Events and Event Patterns>
-- in the /Amazon EventBridge User Guide/.
updatePipeSourceParameters_filterCriteria :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe FilterCriteria)
updatePipeSourceParameters_filterCriteria :: Lens' UpdatePipeSourceParameters (Maybe FilterCriteria)
updatePipeSourceParameters_filterCriteria = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe FilterCriteria
filterCriteria :: Maybe FilterCriteria
$sel:filterCriteria:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters -> Maybe FilterCriteria
filterCriteria} -> Maybe FilterCriteria
filterCriteria) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe FilterCriteria
a -> UpdatePipeSourceParameters
s {$sel:filterCriteria:UpdatePipeSourceParameters' :: Maybe FilterCriteria
filterCriteria = Maybe FilterCriteria
a} :: UpdatePipeSourceParameters)

-- | The parameters for using a Kinesis stream as a source.
updatePipeSourceParameters_kinesisStreamParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceKinesisStreamParameters)
updatePipeSourceParameters_kinesisStreamParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceKinesisStreamParameters)
updatePipeSourceParameters_kinesisStreamParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters :: Maybe UpdatePipeSourceKinesisStreamParameters
$sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters} -> Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceKinesisStreamParameters
a -> UpdatePipeSourceParameters
s {$sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters = Maybe UpdatePipeSourceKinesisStreamParameters
a} :: UpdatePipeSourceParameters)

-- | The parameters for using an MSK stream as a source.
updatePipeSourceParameters_managedStreamingKafkaParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceManagedStreamingKafkaParameters)
updatePipeSourceParameters_managedStreamingKafkaParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceManagedStreamingKafkaParameters)
updatePipeSourceParameters_managedStreamingKafkaParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
$sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters} -> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceManagedStreamingKafkaParameters
a -> UpdatePipeSourceParameters
s {$sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters = Maybe UpdatePipeSourceManagedStreamingKafkaParameters
a} :: UpdatePipeSourceParameters)

-- | The parameters for using a Rabbit MQ broker as a source.
updatePipeSourceParameters_rabbitMQBrokerParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceRabbitMQBrokerParameters)
updatePipeSourceParameters_rabbitMQBrokerParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceRabbitMQBrokerParameters)
updatePipeSourceParameters_rabbitMQBrokerParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
$sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters} -> Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceRabbitMQBrokerParameters
a -> UpdatePipeSourceParameters
s {$sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters = Maybe UpdatePipeSourceRabbitMQBrokerParameters
a} :: UpdatePipeSourceParameters)

-- | The parameters for using a self-managed Apache Kafka stream as a source.
updatePipeSourceParameters_selfManagedKafkaParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceSelfManagedKafkaParameters)
updatePipeSourceParameters_selfManagedKafkaParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceSelfManagedKafkaParameters)
updatePipeSourceParameters_selfManagedKafkaParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
$sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters} -> Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceSelfManagedKafkaParameters
a -> UpdatePipeSourceParameters
s {$sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters = Maybe UpdatePipeSourceSelfManagedKafkaParameters
a} :: UpdatePipeSourceParameters)

-- | The parameters for using a Amazon SQS stream as a source.
updatePipeSourceParameters_sqsQueueParameters :: Lens.Lens' UpdatePipeSourceParameters (Prelude.Maybe UpdatePipeSourceSqsQueueParameters)
updatePipeSourceParameters_sqsQueueParameters :: Lens'
  UpdatePipeSourceParameters
  (Maybe UpdatePipeSourceSqsQueueParameters)
updatePipeSourceParameters_sqsQueueParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdatePipeSourceParameters' {Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters :: Maybe UpdatePipeSourceSqsQueueParameters
$sel:sqsQueueParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters} -> Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters) (\s :: UpdatePipeSourceParameters
s@UpdatePipeSourceParameters' {} Maybe UpdatePipeSourceSqsQueueParameters
a -> UpdatePipeSourceParameters
s {$sel:sqsQueueParameters:UpdatePipeSourceParameters' :: Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters = Maybe UpdatePipeSourceSqsQueueParameters
a} :: UpdatePipeSourceParameters)

instance Prelude.Hashable UpdatePipeSourceParameters where
  hashWithSalt :: Int -> UpdatePipeSourceParameters -> Int
hashWithSalt Int
_salt UpdatePipeSourceParameters' {Maybe FilterCriteria
Maybe UpdatePipeSourceActiveMQBrokerParameters
Maybe UpdatePipeSourceDynamoDBStreamParameters
Maybe UpdatePipeSourceKinesisStreamParameters
Maybe UpdatePipeSourceManagedStreamingKafkaParameters
Maybe UpdatePipeSourceRabbitMQBrokerParameters
Maybe UpdatePipeSourceSelfManagedKafkaParameters
Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters :: Maybe UpdatePipeSourceSqsQueueParameters
selfManagedKafkaParameters :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
rabbitMQBrokerParameters :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
managedStreamingKafkaParameters :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
kinesisStreamParameters :: Maybe UpdatePipeSourceKinesisStreamParameters
filterCriteria :: Maybe FilterCriteria
dynamoDBStreamParameters :: Maybe UpdatePipeSourceDynamoDBStreamParameters
activeMQBrokerParameters :: Maybe UpdatePipeSourceActiveMQBrokerParameters
$sel:sqsQueueParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSqsQueueParameters
$sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSelfManagedKafkaParameters
$sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceRabbitMQBrokerParameters
$sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
$sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceKinesisStreamParameters
$sel:filterCriteria:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters -> Maybe FilterCriteria
$sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceDynamoDBStreamParameters
$sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceActiveMQBrokerParameters
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FilterCriteria
filterCriteria
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters

instance Prelude.NFData UpdatePipeSourceParameters where
  rnf :: UpdatePipeSourceParameters -> ()
rnf UpdatePipeSourceParameters' {Maybe FilterCriteria
Maybe UpdatePipeSourceActiveMQBrokerParameters
Maybe UpdatePipeSourceDynamoDBStreamParameters
Maybe UpdatePipeSourceKinesisStreamParameters
Maybe UpdatePipeSourceManagedStreamingKafkaParameters
Maybe UpdatePipeSourceRabbitMQBrokerParameters
Maybe UpdatePipeSourceSelfManagedKafkaParameters
Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters :: Maybe UpdatePipeSourceSqsQueueParameters
selfManagedKafkaParameters :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
rabbitMQBrokerParameters :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
managedStreamingKafkaParameters :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
kinesisStreamParameters :: Maybe UpdatePipeSourceKinesisStreamParameters
filterCriteria :: Maybe FilterCriteria
dynamoDBStreamParameters :: Maybe UpdatePipeSourceDynamoDBStreamParameters
activeMQBrokerParameters :: Maybe UpdatePipeSourceActiveMQBrokerParameters
$sel:sqsQueueParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSqsQueueParameters
$sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSelfManagedKafkaParameters
$sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceRabbitMQBrokerParameters
$sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
$sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceKinesisStreamParameters
$sel:filterCriteria:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters -> Maybe FilterCriteria
$sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceDynamoDBStreamParameters
$sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceActiveMQBrokerParameters
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FilterCriteria
filterCriteria
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters

instance Data.ToJSON UpdatePipeSourceParameters where
  toJSON :: UpdatePipeSourceParameters -> Value
toJSON UpdatePipeSourceParameters' {Maybe FilterCriteria
Maybe UpdatePipeSourceActiveMQBrokerParameters
Maybe UpdatePipeSourceDynamoDBStreamParameters
Maybe UpdatePipeSourceKinesisStreamParameters
Maybe UpdatePipeSourceManagedStreamingKafkaParameters
Maybe UpdatePipeSourceRabbitMQBrokerParameters
Maybe UpdatePipeSourceSelfManagedKafkaParameters
Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters :: Maybe UpdatePipeSourceSqsQueueParameters
selfManagedKafkaParameters :: Maybe UpdatePipeSourceSelfManagedKafkaParameters
rabbitMQBrokerParameters :: Maybe UpdatePipeSourceRabbitMQBrokerParameters
managedStreamingKafkaParameters :: Maybe UpdatePipeSourceManagedStreamingKafkaParameters
kinesisStreamParameters :: Maybe UpdatePipeSourceKinesisStreamParameters
filterCriteria :: Maybe FilterCriteria
dynamoDBStreamParameters :: Maybe UpdatePipeSourceDynamoDBStreamParameters
activeMQBrokerParameters :: Maybe UpdatePipeSourceActiveMQBrokerParameters
$sel:sqsQueueParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSqsQueueParameters
$sel:selfManagedKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceSelfManagedKafkaParameters
$sel:rabbitMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceRabbitMQBrokerParameters
$sel:managedStreamingKafkaParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
$sel:kinesisStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceKinesisStreamParameters
$sel:filterCriteria:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters -> Maybe FilterCriteria
$sel:dynamoDBStreamParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceDynamoDBStreamParameters
$sel:activeMQBrokerParameters:UpdatePipeSourceParameters' :: UpdatePipeSourceParameters
-> Maybe UpdatePipeSourceActiveMQBrokerParameters
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ActiveMQBrokerParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceActiveMQBrokerParameters
activeMQBrokerParameters,
            (Key
"DynamoDBStreamParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceDynamoDBStreamParameters
dynamoDBStreamParameters,
            (Key
"FilterCriteria" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FilterCriteria
filterCriteria,
            (Key
"KinesisStreamParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceKinesisStreamParameters
kinesisStreamParameters,
            (Key
"ManagedStreamingKafkaParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceManagedStreamingKafkaParameters
managedStreamingKafkaParameters,
            (Key
"RabbitMQBrokerParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceRabbitMQBrokerParameters
rabbitMQBrokerParameters,
            (Key
"SelfManagedKafkaParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceSelfManagedKafkaParameters
selfManagedKafkaParameters,
            (Key
"SqsQueueParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe UpdatePipeSourceSqsQueueParameters
sqsQueueParameters
          ]
      )