module Stratosphere.EntityResolution.IdMappingWorkflow ( module Exports, IdMappingWorkflow(..), mkIdMappingWorkflow ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingIncrementalRunConfigProperty as Exports import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingTechniquesProperty as Exports import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingWorkflowInputSourceProperty as Exports import {-# SOURCE #-} Stratosphere.EntityResolution.IdMappingWorkflow.IdMappingWorkflowOutputSourceProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data IdMappingWorkflow = -- | See: IdMappingWorkflow {haddock_workaround_ :: (), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: idMappingIncrementalRunConfig :: (Prelude.Maybe IdMappingIncrementalRunConfigProperty), -- | See: idMappingTechniques :: IdMappingTechniquesProperty, -- | See: inputSourceConfig :: [IdMappingWorkflowInputSourceProperty], -- | See: outputSourceConfig :: (Prelude.Maybe [IdMappingWorkflowOutputSourceProperty]), -- | See: roleArn :: (Value Prelude.Text), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: workflowName :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkIdMappingWorkflow :: IdMappingTechniquesProperty -> [IdMappingWorkflowInputSourceProperty] -> Value Prelude.Text -> Value Prelude.Text -> IdMappingWorkflow mkIdMappingWorkflow idMappingTechniques inputSourceConfig roleArn workflowName = IdMappingWorkflow {haddock_workaround_ = (), idMappingTechniques = idMappingTechniques, inputSourceConfig = inputSourceConfig, roleArn = roleArn, workflowName = workflowName, description = Prelude.Nothing, idMappingIncrementalRunConfig = Prelude.Nothing, outputSourceConfig = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties IdMappingWorkflow where toResourceProperties IdMappingWorkflow {..} = ResourceProperties {awsType = "AWS::EntityResolution::IdMappingWorkflow", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["IdMappingTechniques" JSON..= idMappingTechniques, "InputSourceConfig" JSON..= inputSourceConfig, "RoleArn" JSON..= roleArn, "WorkflowName" JSON..= workflowName] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "IdMappingIncrementalRunConfig" Prelude.<$> idMappingIncrementalRunConfig, (JSON..=) "OutputSourceConfig" Prelude.<$> outputSourceConfig, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON IdMappingWorkflow where toJSON IdMappingWorkflow {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["IdMappingTechniques" JSON..= idMappingTechniques, "InputSourceConfig" JSON..= inputSourceConfig, "RoleArn" JSON..= roleArn, "WorkflowName" JSON..= workflowName] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "IdMappingIncrementalRunConfig" Prelude.<$> idMappingIncrementalRunConfig, (JSON..=) "OutputSourceConfig" Prelude.<$> outputSourceConfig, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "Description" IdMappingWorkflow where type PropertyType "Description" IdMappingWorkflow = Value Prelude.Text set newValue IdMappingWorkflow {..} = IdMappingWorkflow {description = Prelude.pure newValue, ..} instance Property "IdMappingIncrementalRunConfig" IdMappingWorkflow where type PropertyType "IdMappingIncrementalRunConfig" IdMappingWorkflow = IdMappingIncrementalRunConfigProperty set newValue IdMappingWorkflow {..} = IdMappingWorkflow {idMappingIncrementalRunConfig = Prelude.pure newValue, ..} instance Property "IdMappingTechniques" IdMappingWorkflow where type PropertyType "IdMappingTechniques" IdMappingWorkflow = IdMappingTechniquesProperty set newValue IdMappingWorkflow {..} = IdMappingWorkflow {idMappingTechniques = newValue, ..} instance Property "InputSourceConfig" IdMappingWorkflow where type PropertyType "InputSourceConfig" IdMappingWorkflow = [IdMappingWorkflowInputSourceProperty] set newValue IdMappingWorkflow {..} = IdMappingWorkflow {inputSourceConfig = newValue, ..} instance Property "OutputSourceConfig" IdMappingWorkflow where type PropertyType "OutputSourceConfig" IdMappingWorkflow = [IdMappingWorkflowOutputSourceProperty] set newValue IdMappingWorkflow {..} = IdMappingWorkflow {outputSourceConfig = Prelude.pure newValue, ..} instance Property "RoleArn" IdMappingWorkflow where type PropertyType "RoleArn" IdMappingWorkflow = Value Prelude.Text set newValue IdMappingWorkflow {..} = IdMappingWorkflow {roleArn = newValue, ..} instance Property "Tags" IdMappingWorkflow where type PropertyType "Tags" IdMappingWorkflow = [Tag] set newValue IdMappingWorkflow {..} = IdMappingWorkflow {tags = Prelude.pure newValue, ..} instance Property "WorkflowName" IdMappingWorkflow where type PropertyType "WorkflowName" IdMappingWorkflow = Value Prelude.Text set newValue IdMappingWorkflow {..} = IdMappingWorkflow {workflowName = newValue, ..}