module Stratosphere.CustomerProfiles.Integration.FlowDefinitionProperty (
        module Exports, FlowDefinitionProperty(..),
        mkFlowDefinitionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Integration.SourceFlowConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Integration.TaskProperty as Exports
import {-# SOURCE #-} Stratosphere.CustomerProfiles.Integration.TriggerConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data FlowDefinitionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html>
    FlowDefinitionProperty {FlowDefinitionProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-description>
                            FlowDefinitionProperty -> Maybe (Value Text)
description :: (Prelude.Maybe (Value Prelude.Text)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-flowname>
                            FlowDefinitionProperty -> Value Text
flowName :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-kmsarn>
                            FlowDefinitionProperty -> Value Text
kmsArn :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-sourceflowconfig>
                            FlowDefinitionProperty -> SourceFlowConfigProperty
sourceFlowConfig :: SourceFlowConfigProperty,
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-tasks>
                            FlowDefinitionProperty -> [TaskProperty]
tasks :: [TaskProperty],
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-customerprofiles-integration-flowdefinition.html#cfn-customerprofiles-integration-flowdefinition-triggerconfig>
                            FlowDefinitionProperty -> TriggerConfigProperty
triggerConfig :: TriggerConfigProperty}
  deriving stock (FlowDefinitionProperty -> FlowDefinitionProperty -> Bool
(FlowDefinitionProperty -> FlowDefinitionProperty -> Bool)
-> (FlowDefinitionProperty -> FlowDefinitionProperty -> Bool)
-> Eq FlowDefinitionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FlowDefinitionProperty -> FlowDefinitionProperty -> Bool
== :: FlowDefinitionProperty -> FlowDefinitionProperty -> Bool
$c/= :: FlowDefinitionProperty -> FlowDefinitionProperty -> Bool
/= :: FlowDefinitionProperty -> FlowDefinitionProperty -> Bool
Prelude.Eq, Int -> FlowDefinitionProperty -> ShowS
[FlowDefinitionProperty] -> ShowS
FlowDefinitionProperty -> String
(Int -> FlowDefinitionProperty -> ShowS)
-> (FlowDefinitionProperty -> String)
-> ([FlowDefinitionProperty] -> ShowS)
-> Show FlowDefinitionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FlowDefinitionProperty -> ShowS
showsPrec :: Int -> FlowDefinitionProperty -> ShowS
$cshow :: FlowDefinitionProperty -> String
show :: FlowDefinitionProperty -> String
$cshowList :: [FlowDefinitionProperty] -> ShowS
showList :: [FlowDefinitionProperty] -> ShowS
Prelude.Show)
mkFlowDefinitionProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> SourceFlowConfigProperty
        -> [TaskProperty]
           -> TriggerConfigProperty -> FlowDefinitionProperty
mkFlowDefinitionProperty :: Value Text
-> Value Text
-> SourceFlowConfigProperty
-> [TaskProperty]
-> TriggerConfigProperty
-> FlowDefinitionProperty
mkFlowDefinitionProperty
  Value Text
flowName
  Value Text
kmsArn
  SourceFlowConfigProperty
sourceFlowConfig
  [TaskProperty]
tasks
  TriggerConfigProperty
triggerConfig
  = FlowDefinitionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), flowName :: Value Text
flowName = Value Text
flowName, kmsArn :: Value Text
kmsArn = Value Text
kmsArn,
       sourceFlowConfig :: SourceFlowConfigProperty
sourceFlowConfig = SourceFlowConfigProperty
sourceFlowConfig, tasks :: [TaskProperty]
tasks = [TaskProperty]
tasks,
       triggerConfig :: TriggerConfigProperty
triggerConfig = TriggerConfigProperty
triggerConfig, description :: Maybe (Value Text)
description = Maybe (Value Text)
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties FlowDefinitionProperty where
  toResourceProperties :: FlowDefinitionProperty -> ResourceProperties
toResourceProperties FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CustomerProfiles::Integration.FlowDefinition",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"FlowName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
flowName, Key
"KmsArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
kmsArn,
                            Key
"SourceFlowConfig" Key -> SourceFlowConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SourceFlowConfigProperty
sourceFlowConfig, Key
"Tasks" Key -> [TaskProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TaskProperty]
tasks,
                            Key
"TriggerConfig" Key -> TriggerConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TriggerConfigProperty
triggerConfig]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Description" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
description]))}
instance JSON.ToJSON FlowDefinitionProperty where
  toJSON :: FlowDefinitionProperty -> Value
toJSON FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"FlowName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
flowName, Key
"KmsArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
kmsArn,
               Key
"SourceFlowConfig" Key -> SourceFlowConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SourceFlowConfigProperty
sourceFlowConfig, Key
"Tasks" Key -> [TaskProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [TaskProperty]
tasks,
               Key
"TriggerConfig" Key -> TriggerConfigProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TriggerConfigProperty
triggerConfig]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Description" (Value Text -> (Key, Value))
-> Maybe (Value Text) -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (Value Text)
description])))
instance Property "Description" FlowDefinitionProperty where
  type PropertyType "Description" FlowDefinitionProperty = Value Prelude.Text
  set :: PropertyType "Description" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "Description" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {description :: Maybe (Value Text)
description = Value Text -> Maybe (Value Text)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Description" FlowDefinitionProperty
Value Text
newValue, [TaskProperty]
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: ()
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
haddock_workaround_ :: ()
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
instance Property "FlowName" FlowDefinitionProperty where
  type PropertyType "FlowName" FlowDefinitionProperty = Value Prelude.Text
  set :: PropertyType "FlowName" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "FlowName" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {flowName :: Value Text
flowName = PropertyType "FlowName" FlowDefinitionProperty
Value Text
newValue, [TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
instance Property "KmsArn" FlowDefinitionProperty where
  type PropertyType "KmsArn" FlowDefinitionProperty = Value Prelude.Text
  set :: PropertyType "KmsArn" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "KmsArn" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {kmsArn :: Value Text
kmsArn = PropertyType "KmsArn" FlowDefinitionProperty
Value Text
newValue, [TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
instance Property "SourceFlowConfig" FlowDefinitionProperty where
  type PropertyType "SourceFlowConfig" FlowDefinitionProperty = SourceFlowConfigProperty
  set :: PropertyType "SourceFlowConfig" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "SourceFlowConfig" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {sourceFlowConfig :: SourceFlowConfigProperty
sourceFlowConfig = PropertyType "SourceFlowConfig" FlowDefinitionProperty
SourceFlowConfigProperty
newValue, [TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
instance Property "Tasks" FlowDefinitionProperty where
  type PropertyType "Tasks" FlowDefinitionProperty = [TaskProperty]
  set :: PropertyType "Tasks" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "Tasks" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {tasks :: [TaskProperty]
tasks = [TaskProperty]
PropertyType "Tasks" FlowDefinitionProperty
newValue, Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
triggerConfig :: TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
triggerConfig :: TriggerConfigProperty
..}
instance Property "TriggerConfig" FlowDefinitionProperty where
  type PropertyType "TriggerConfig" FlowDefinitionProperty = TriggerConfigProperty
  set :: PropertyType "TriggerConfig" FlowDefinitionProperty
-> FlowDefinitionProperty -> FlowDefinitionProperty
set PropertyType "TriggerConfig" FlowDefinitionProperty
newValue FlowDefinitionProperty {[TaskProperty]
Maybe (Value Text)
()
Value Text
TriggerConfigProperty
SourceFlowConfigProperty
haddock_workaround_ :: FlowDefinitionProperty -> ()
description :: FlowDefinitionProperty -> Maybe (Value Text)
flowName :: FlowDefinitionProperty -> Value Text
kmsArn :: FlowDefinitionProperty -> Value Text
sourceFlowConfig :: FlowDefinitionProperty -> SourceFlowConfigProperty
tasks :: FlowDefinitionProperty -> [TaskProperty]
triggerConfig :: FlowDefinitionProperty -> TriggerConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
triggerConfig :: TriggerConfigProperty
..}
    = FlowDefinitionProperty {triggerConfig :: TriggerConfigProperty
triggerConfig = PropertyType "TriggerConfig" FlowDefinitionProperty
TriggerConfigProperty
newValue, [TaskProperty]
Maybe (Value Text)
()
Value Text
SourceFlowConfigProperty
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
haddock_workaround_ :: ()
description :: Maybe (Value Text)
flowName :: Value Text
kmsArn :: Value Text
sourceFlowConfig :: SourceFlowConfigProperty
tasks :: [TaskProperty]
..}