{-# 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.IoTAnalytics.Types.PipelineActivity
-- 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.IoTAnalytics.Types.PipelineActivity where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTAnalytics.Types.AddAttributesActivity
import Amazonka.IoTAnalytics.Types.ChannelActivity
import Amazonka.IoTAnalytics.Types.DatastoreActivity
import Amazonka.IoTAnalytics.Types.DeviceRegistryEnrichActivity
import Amazonka.IoTAnalytics.Types.DeviceShadowEnrichActivity
import Amazonka.IoTAnalytics.Types.FilterActivity
import Amazonka.IoTAnalytics.Types.LambdaActivity
import Amazonka.IoTAnalytics.Types.MathActivity
import Amazonka.IoTAnalytics.Types.RemoveAttributesActivity
import Amazonka.IoTAnalytics.Types.SelectAttributesActivity
import qualified Amazonka.Prelude as Prelude

-- | An activity that performs a transformation on a message.
--
-- /See:/ 'newPipelineActivity' smart constructor.
data PipelineActivity = PipelineActivity'
  { -- | Adds other attributes based on existing attributes in the message.
    PipelineActivity -> Maybe AddAttributesActivity
addAttributes :: Prelude.Maybe AddAttributesActivity,
    -- | Determines the source of the messages to be processed.
    PipelineActivity -> Maybe ChannelActivity
channel :: Prelude.Maybe ChannelActivity,
    -- | Specifies where to store the processed message data.
    PipelineActivity -> Maybe DatastoreActivity
datastore :: Prelude.Maybe DatastoreActivity,
    -- | Adds data from the IoT device registry to your message.
    PipelineActivity -> Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich :: Prelude.Maybe DeviceRegistryEnrichActivity,
    -- | Adds information from the IoT Device Shadow service to a message.
    PipelineActivity -> Maybe DeviceShadowEnrichActivity
deviceShadowEnrich :: Prelude.Maybe DeviceShadowEnrichActivity,
    -- | Filters a message based on its attributes.
    PipelineActivity -> Maybe FilterActivity
filter' :: Prelude.Maybe FilterActivity,
    -- | Runs a Lambda function to modify the message.
    PipelineActivity -> Maybe LambdaActivity
lambda :: Prelude.Maybe LambdaActivity,
    -- | Computes an arithmetic expression using the message\'s attributes and
    -- adds it to the message.
    PipelineActivity -> Maybe MathActivity
math :: Prelude.Maybe MathActivity,
    -- | Removes attributes from a message.
    PipelineActivity -> Maybe RemoveAttributesActivity
removeAttributes :: Prelude.Maybe RemoveAttributesActivity,
    -- | Used to create a new message using only the specified attributes from
    -- the original message.
    PipelineActivity -> Maybe SelectAttributesActivity
selectAttributes :: Prelude.Maybe SelectAttributesActivity
  }
  deriving (PipelineActivity -> PipelineActivity -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipelineActivity -> PipelineActivity -> Bool
$c/= :: PipelineActivity -> PipelineActivity -> Bool
== :: PipelineActivity -> PipelineActivity -> Bool
$c== :: PipelineActivity -> PipelineActivity -> Bool
Prelude.Eq, ReadPrec [PipelineActivity]
ReadPrec PipelineActivity
Int -> ReadS PipelineActivity
ReadS [PipelineActivity]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PipelineActivity]
$creadListPrec :: ReadPrec [PipelineActivity]
readPrec :: ReadPrec PipelineActivity
$creadPrec :: ReadPrec PipelineActivity
readList :: ReadS [PipelineActivity]
$creadList :: ReadS [PipelineActivity]
readsPrec :: Int -> ReadS PipelineActivity
$creadsPrec :: Int -> ReadS PipelineActivity
Prelude.Read, Int -> PipelineActivity -> ShowS
[PipelineActivity] -> ShowS
PipelineActivity -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PipelineActivity] -> ShowS
$cshowList :: [PipelineActivity] -> ShowS
show :: PipelineActivity -> String
$cshow :: PipelineActivity -> String
showsPrec :: Int -> PipelineActivity -> ShowS
$cshowsPrec :: Int -> PipelineActivity -> ShowS
Prelude.Show, forall x. Rep PipelineActivity x -> PipelineActivity
forall x. PipelineActivity -> Rep PipelineActivity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PipelineActivity x -> PipelineActivity
$cfrom :: forall x. PipelineActivity -> Rep PipelineActivity x
Prelude.Generic)

-- |
-- Create a value of 'PipelineActivity' 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:
--
-- 'addAttributes', 'pipelineActivity_addAttributes' - Adds other attributes based on existing attributes in the message.
--
-- 'channel', 'pipelineActivity_channel' - Determines the source of the messages to be processed.
--
-- 'datastore', 'pipelineActivity_datastore' - Specifies where to store the processed message data.
--
-- 'deviceRegistryEnrich', 'pipelineActivity_deviceRegistryEnrich' - Adds data from the IoT device registry to your message.
--
-- 'deviceShadowEnrich', 'pipelineActivity_deviceShadowEnrich' - Adds information from the IoT Device Shadow service to a message.
--
-- 'filter'', 'pipelineActivity_filter' - Filters a message based on its attributes.
--
-- 'lambda', 'pipelineActivity_lambda' - Runs a Lambda function to modify the message.
--
-- 'math', 'pipelineActivity_math' - Computes an arithmetic expression using the message\'s attributes and
-- adds it to the message.
--
-- 'removeAttributes', 'pipelineActivity_removeAttributes' - Removes attributes from a message.
--
-- 'selectAttributes', 'pipelineActivity_selectAttributes' - Used to create a new message using only the specified attributes from
-- the original message.
newPipelineActivity ::
  PipelineActivity
newPipelineActivity :: PipelineActivity
newPipelineActivity =
  PipelineActivity'
    { $sel:addAttributes:PipelineActivity' :: Maybe AddAttributesActivity
addAttributes = forall a. Maybe a
Prelude.Nothing,
      $sel:channel:PipelineActivity' :: Maybe ChannelActivity
channel = forall a. Maybe a
Prelude.Nothing,
      $sel:datastore:PipelineActivity' :: Maybe DatastoreActivity
datastore = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceRegistryEnrich:PipelineActivity' :: Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceShadowEnrich:PipelineActivity' :: Maybe DeviceShadowEnrichActivity
deviceShadowEnrich = forall a. Maybe a
Prelude.Nothing,
      $sel:filter':PipelineActivity' :: Maybe FilterActivity
filter' = forall a. Maybe a
Prelude.Nothing,
      $sel:lambda:PipelineActivity' :: Maybe LambdaActivity
lambda = forall a. Maybe a
Prelude.Nothing,
      $sel:math:PipelineActivity' :: Maybe MathActivity
math = forall a. Maybe a
Prelude.Nothing,
      $sel:removeAttributes:PipelineActivity' :: Maybe RemoveAttributesActivity
removeAttributes = forall a. Maybe a
Prelude.Nothing,
      $sel:selectAttributes:PipelineActivity' :: Maybe SelectAttributesActivity
selectAttributes = forall a. Maybe a
Prelude.Nothing
    }

-- | Adds other attributes based on existing attributes in the message.
pipelineActivity_addAttributes :: Lens.Lens' PipelineActivity (Prelude.Maybe AddAttributesActivity)
pipelineActivity_addAttributes :: Lens' PipelineActivity (Maybe AddAttributesActivity)
pipelineActivity_addAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe AddAttributesActivity
addAttributes :: Maybe AddAttributesActivity
$sel:addAttributes:PipelineActivity' :: PipelineActivity -> Maybe AddAttributesActivity
addAttributes} -> Maybe AddAttributesActivity
addAttributes) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe AddAttributesActivity
a -> PipelineActivity
s {$sel:addAttributes:PipelineActivity' :: Maybe AddAttributesActivity
addAttributes = Maybe AddAttributesActivity
a} :: PipelineActivity)

-- | Determines the source of the messages to be processed.
pipelineActivity_channel :: Lens.Lens' PipelineActivity (Prelude.Maybe ChannelActivity)
pipelineActivity_channel :: Lens' PipelineActivity (Maybe ChannelActivity)
pipelineActivity_channel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe ChannelActivity
channel :: Maybe ChannelActivity
$sel:channel:PipelineActivity' :: PipelineActivity -> Maybe ChannelActivity
channel} -> Maybe ChannelActivity
channel) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe ChannelActivity
a -> PipelineActivity
s {$sel:channel:PipelineActivity' :: Maybe ChannelActivity
channel = Maybe ChannelActivity
a} :: PipelineActivity)

-- | Specifies where to store the processed message data.
pipelineActivity_datastore :: Lens.Lens' PipelineActivity (Prelude.Maybe DatastoreActivity)
pipelineActivity_datastore :: Lens' PipelineActivity (Maybe DatastoreActivity)
pipelineActivity_datastore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe DatastoreActivity
datastore :: Maybe DatastoreActivity
$sel:datastore:PipelineActivity' :: PipelineActivity -> Maybe DatastoreActivity
datastore} -> Maybe DatastoreActivity
datastore) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe DatastoreActivity
a -> PipelineActivity
s {$sel:datastore:PipelineActivity' :: Maybe DatastoreActivity
datastore = Maybe DatastoreActivity
a} :: PipelineActivity)

-- | Adds data from the IoT device registry to your message.
pipelineActivity_deviceRegistryEnrich :: Lens.Lens' PipelineActivity (Prelude.Maybe DeviceRegistryEnrichActivity)
pipelineActivity_deviceRegistryEnrich :: Lens' PipelineActivity (Maybe DeviceRegistryEnrichActivity)
pipelineActivity_deviceRegistryEnrich = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich :: Maybe DeviceRegistryEnrichActivity
$sel:deviceRegistryEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich} -> Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe DeviceRegistryEnrichActivity
a -> PipelineActivity
s {$sel:deviceRegistryEnrich:PipelineActivity' :: Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich = Maybe DeviceRegistryEnrichActivity
a} :: PipelineActivity)

-- | Adds information from the IoT Device Shadow service to a message.
pipelineActivity_deviceShadowEnrich :: Lens.Lens' PipelineActivity (Prelude.Maybe DeviceShadowEnrichActivity)
pipelineActivity_deviceShadowEnrich :: Lens' PipelineActivity (Maybe DeviceShadowEnrichActivity)
pipelineActivity_deviceShadowEnrich = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe DeviceShadowEnrichActivity
deviceShadowEnrich :: Maybe DeviceShadowEnrichActivity
$sel:deviceShadowEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceShadowEnrichActivity
deviceShadowEnrich} -> Maybe DeviceShadowEnrichActivity
deviceShadowEnrich) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe DeviceShadowEnrichActivity
a -> PipelineActivity
s {$sel:deviceShadowEnrich:PipelineActivity' :: Maybe DeviceShadowEnrichActivity
deviceShadowEnrich = Maybe DeviceShadowEnrichActivity
a} :: PipelineActivity)

-- | Filters a message based on its attributes.
pipelineActivity_filter :: Lens.Lens' PipelineActivity (Prelude.Maybe FilterActivity)
pipelineActivity_filter :: Lens' PipelineActivity (Maybe FilterActivity)
pipelineActivity_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe FilterActivity
filter' :: Maybe FilterActivity
$sel:filter':PipelineActivity' :: PipelineActivity -> Maybe FilterActivity
filter'} -> Maybe FilterActivity
filter') (\s :: PipelineActivity
s@PipelineActivity' {} Maybe FilterActivity
a -> PipelineActivity
s {$sel:filter':PipelineActivity' :: Maybe FilterActivity
filter' = Maybe FilterActivity
a} :: PipelineActivity)

-- | Runs a Lambda function to modify the message.
pipelineActivity_lambda :: Lens.Lens' PipelineActivity (Prelude.Maybe LambdaActivity)
pipelineActivity_lambda :: Lens' PipelineActivity (Maybe LambdaActivity)
pipelineActivity_lambda = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe LambdaActivity
lambda :: Maybe LambdaActivity
$sel:lambda:PipelineActivity' :: PipelineActivity -> Maybe LambdaActivity
lambda} -> Maybe LambdaActivity
lambda) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe LambdaActivity
a -> PipelineActivity
s {$sel:lambda:PipelineActivity' :: Maybe LambdaActivity
lambda = Maybe LambdaActivity
a} :: PipelineActivity)

-- | Computes an arithmetic expression using the message\'s attributes and
-- adds it to the message.
pipelineActivity_math :: Lens.Lens' PipelineActivity (Prelude.Maybe MathActivity)
pipelineActivity_math :: Lens' PipelineActivity (Maybe MathActivity)
pipelineActivity_math = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe MathActivity
math :: Maybe MathActivity
$sel:math:PipelineActivity' :: PipelineActivity -> Maybe MathActivity
math} -> Maybe MathActivity
math) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe MathActivity
a -> PipelineActivity
s {$sel:math:PipelineActivity' :: Maybe MathActivity
math = Maybe MathActivity
a} :: PipelineActivity)

-- | Removes attributes from a message.
pipelineActivity_removeAttributes :: Lens.Lens' PipelineActivity (Prelude.Maybe RemoveAttributesActivity)
pipelineActivity_removeAttributes :: Lens' PipelineActivity (Maybe RemoveAttributesActivity)
pipelineActivity_removeAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe RemoveAttributesActivity
removeAttributes :: Maybe RemoveAttributesActivity
$sel:removeAttributes:PipelineActivity' :: PipelineActivity -> Maybe RemoveAttributesActivity
removeAttributes} -> Maybe RemoveAttributesActivity
removeAttributes) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe RemoveAttributesActivity
a -> PipelineActivity
s {$sel:removeAttributes:PipelineActivity' :: Maybe RemoveAttributesActivity
removeAttributes = Maybe RemoveAttributesActivity
a} :: PipelineActivity)

-- | Used to create a new message using only the specified attributes from
-- the original message.
pipelineActivity_selectAttributes :: Lens.Lens' PipelineActivity (Prelude.Maybe SelectAttributesActivity)
pipelineActivity_selectAttributes :: Lens' PipelineActivity (Maybe SelectAttributesActivity)
pipelineActivity_selectAttributes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipelineActivity' {Maybe SelectAttributesActivity
selectAttributes :: Maybe SelectAttributesActivity
$sel:selectAttributes:PipelineActivity' :: PipelineActivity -> Maybe SelectAttributesActivity
selectAttributes} -> Maybe SelectAttributesActivity
selectAttributes) (\s :: PipelineActivity
s@PipelineActivity' {} Maybe SelectAttributesActivity
a -> PipelineActivity
s {$sel:selectAttributes:PipelineActivity' :: Maybe SelectAttributesActivity
selectAttributes = Maybe SelectAttributesActivity
a} :: PipelineActivity)

instance Data.FromJSON PipelineActivity where
  parseJSON :: Value -> Parser PipelineActivity
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"PipelineActivity"
      ( \Object
x ->
          Maybe AddAttributesActivity
-> Maybe ChannelActivity
-> Maybe DatastoreActivity
-> Maybe DeviceRegistryEnrichActivity
-> Maybe DeviceShadowEnrichActivity
-> Maybe FilterActivity
-> Maybe LambdaActivity
-> Maybe MathActivity
-> Maybe RemoveAttributesActivity
-> Maybe SelectAttributesActivity
-> PipelineActivity
PipelineActivity'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"addAttributes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"channel")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"datastore")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"deviceRegistryEnrich")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"deviceShadowEnrich")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"filter")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lambda")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"math")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"removeAttributes")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"selectAttributes")
      )

instance Prelude.Hashable PipelineActivity where
  hashWithSalt :: Int -> PipelineActivity -> Int
hashWithSalt Int
_salt PipelineActivity' {Maybe AddAttributesActivity
Maybe ChannelActivity
Maybe DatastoreActivity
Maybe DeviceRegistryEnrichActivity
Maybe DeviceShadowEnrichActivity
Maybe FilterActivity
Maybe LambdaActivity
Maybe MathActivity
Maybe RemoveAttributesActivity
Maybe SelectAttributesActivity
selectAttributes :: Maybe SelectAttributesActivity
removeAttributes :: Maybe RemoveAttributesActivity
math :: Maybe MathActivity
lambda :: Maybe LambdaActivity
filter' :: Maybe FilterActivity
deviceShadowEnrich :: Maybe DeviceShadowEnrichActivity
deviceRegistryEnrich :: Maybe DeviceRegistryEnrichActivity
datastore :: Maybe DatastoreActivity
channel :: Maybe ChannelActivity
addAttributes :: Maybe AddAttributesActivity
$sel:selectAttributes:PipelineActivity' :: PipelineActivity -> Maybe SelectAttributesActivity
$sel:removeAttributes:PipelineActivity' :: PipelineActivity -> Maybe RemoveAttributesActivity
$sel:math:PipelineActivity' :: PipelineActivity -> Maybe MathActivity
$sel:lambda:PipelineActivity' :: PipelineActivity -> Maybe LambdaActivity
$sel:filter':PipelineActivity' :: PipelineActivity -> Maybe FilterActivity
$sel:deviceShadowEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceShadowEnrichActivity
$sel:deviceRegistryEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceRegistryEnrichActivity
$sel:datastore:PipelineActivity' :: PipelineActivity -> Maybe DatastoreActivity
$sel:channel:PipelineActivity' :: PipelineActivity -> Maybe ChannelActivity
$sel:addAttributes:PipelineActivity' :: PipelineActivity -> Maybe AddAttributesActivity
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AddAttributesActivity
addAttributes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChannelActivity
channel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DatastoreActivity
datastore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeviceShadowEnrichActivity
deviceShadowEnrich
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FilterActivity
filter'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaActivity
lambda
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MathActivity
math
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RemoveAttributesActivity
removeAttributes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SelectAttributesActivity
selectAttributes

instance Prelude.NFData PipelineActivity where
  rnf :: PipelineActivity -> ()
rnf PipelineActivity' {Maybe AddAttributesActivity
Maybe ChannelActivity
Maybe DatastoreActivity
Maybe DeviceRegistryEnrichActivity
Maybe DeviceShadowEnrichActivity
Maybe FilterActivity
Maybe LambdaActivity
Maybe MathActivity
Maybe RemoveAttributesActivity
Maybe SelectAttributesActivity
selectAttributes :: Maybe SelectAttributesActivity
removeAttributes :: Maybe RemoveAttributesActivity
math :: Maybe MathActivity
lambda :: Maybe LambdaActivity
filter' :: Maybe FilterActivity
deviceShadowEnrich :: Maybe DeviceShadowEnrichActivity
deviceRegistryEnrich :: Maybe DeviceRegistryEnrichActivity
datastore :: Maybe DatastoreActivity
channel :: Maybe ChannelActivity
addAttributes :: Maybe AddAttributesActivity
$sel:selectAttributes:PipelineActivity' :: PipelineActivity -> Maybe SelectAttributesActivity
$sel:removeAttributes:PipelineActivity' :: PipelineActivity -> Maybe RemoveAttributesActivity
$sel:math:PipelineActivity' :: PipelineActivity -> Maybe MathActivity
$sel:lambda:PipelineActivity' :: PipelineActivity -> Maybe LambdaActivity
$sel:filter':PipelineActivity' :: PipelineActivity -> Maybe FilterActivity
$sel:deviceShadowEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceShadowEnrichActivity
$sel:deviceRegistryEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceRegistryEnrichActivity
$sel:datastore:PipelineActivity' :: PipelineActivity -> Maybe DatastoreActivity
$sel:channel:PipelineActivity' :: PipelineActivity -> Maybe ChannelActivity
$sel:addAttributes:PipelineActivity' :: PipelineActivity -> Maybe AddAttributesActivity
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AddAttributesActivity
addAttributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChannelActivity
channel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DatastoreActivity
datastore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeviceRegistryEnrichActivity
deviceRegistryEnrich
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeviceShadowEnrichActivity
deviceShadowEnrich
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FilterActivity
filter'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaActivity
lambda
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MathActivity
math
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RemoveAttributesActivity
removeAttributes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SelectAttributesActivity
selectAttributes

instance Data.ToJSON PipelineActivity where
  toJSON :: PipelineActivity -> Value
toJSON PipelineActivity' {Maybe AddAttributesActivity
Maybe ChannelActivity
Maybe DatastoreActivity
Maybe DeviceRegistryEnrichActivity
Maybe DeviceShadowEnrichActivity
Maybe FilterActivity
Maybe LambdaActivity
Maybe MathActivity
Maybe RemoveAttributesActivity
Maybe SelectAttributesActivity
selectAttributes :: Maybe SelectAttributesActivity
removeAttributes :: Maybe RemoveAttributesActivity
math :: Maybe MathActivity
lambda :: Maybe LambdaActivity
filter' :: Maybe FilterActivity
deviceShadowEnrich :: Maybe DeviceShadowEnrichActivity
deviceRegistryEnrich :: Maybe DeviceRegistryEnrichActivity
datastore :: Maybe DatastoreActivity
channel :: Maybe ChannelActivity
addAttributes :: Maybe AddAttributesActivity
$sel:selectAttributes:PipelineActivity' :: PipelineActivity -> Maybe SelectAttributesActivity
$sel:removeAttributes:PipelineActivity' :: PipelineActivity -> Maybe RemoveAttributesActivity
$sel:math:PipelineActivity' :: PipelineActivity -> Maybe MathActivity
$sel:lambda:PipelineActivity' :: PipelineActivity -> Maybe LambdaActivity
$sel:filter':PipelineActivity' :: PipelineActivity -> Maybe FilterActivity
$sel:deviceShadowEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceShadowEnrichActivity
$sel:deviceRegistryEnrich:PipelineActivity' :: PipelineActivity -> Maybe DeviceRegistryEnrichActivity
$sel:datastore:PipelineActivity' :: PipelineActivity -> Maybe DatastoreActivity
$sel:channel:PipelineActivity' :: PipelineActivity -> Maybe ChannelActivity
$sel:addAttributes:PipelineActivity' :: PipelineActivity -> Maybe AddAttributesActivity
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"addAttributes" 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 AddAttributesActivity
addAttributes,
            (Key
"channel" 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 ChannelActivity
channel,
            (Key
"datastore" 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 DatastoreActivity
datastore,
            (Key
"deviceRegistryEnrich" 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 DeviceRegistryEnrichActivity
deviceRegistryEnrich,
            (Key
"deviceShadowEnrich" 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 DeviceShadowEnrichActivity
deviceShadowEnrich,
            (Key
"filter" 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 FilterActivity
filter',
            (Key
"lambda" 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 LambdaActivity
lambda,
            (Key
"math" 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 MathActivity
math,
            (Key
"removeAttributes" 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 RemoveAttributesActivity
removeAttributes,
            (Key
"selectAttributes" 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 SelectAttributesActivity
selectAttributes
          ]
      )