packages feed

hydra-ext-0.18.0: src/main/haskell/Hydra/Ext/Dsl/Workflow.hs

-- Note: this is an automatically generated file. Do not edit.

-- | DSL functions for hydra.ext.workflow

module Hydra.Ext.Dsl.Workflow where

import qualified Hydra.Core.Graph as Graph
import qualified Hydra.Core.Model as Model
import qualified Hydra.Core.Packaging as Packaging
import qualified Hydra.Core.Typed as Typed
import qualified Hydra.Ext.Workflow as Workflow
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import Data.Void

-- | DSL constructor for hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpec :: Typed.TypedTerm [Packaging.Module] -> Typed.TypedTerm Model.Name -> Typed.TypedTerm Workflow.HydraSchemaSpec
hydraSchemaSpec modules typeName =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "modules"),
          Model.fieldTerm = (Typed.unTypedTerm modules)},
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Typed.unTypedTerm typeName)}]}))

-- | DSL name token for hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpecHydraSchemaSpec :: Typed.TypedName Workflow.HydraSchemaSpec
hydraSchemaSpecHydraSchemaSpec = Typed.TypedName (Model.Name "hydra.ext.workflow.HydraSchemaSpec")

-- | DSL accessor for the modules field of hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpecModules :: Typed.TypedTerm Workflow.HydraSchemaSpec -> Typed.TypedTerm [Packaging.Module]
hydraSchemaSpecModules x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
        Model.projectionFieldName = (Model.Name "modules")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the typeName field of hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpecTypeName :: Typed.TypedTerm Workflow.HydraSchemaSpec -> Typed.TypedTerm Model.Name
hydraSchemaSpecTypeName x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
        Model.projectionFieldName = (Model.Name "typeName")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the modules field of hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpecWithModules :: Typed.TypedTerm Workflow.HydraSchemaSpec -> Typed.TypedTerm [Packaging.Module] -> Typed.TypedTerm Workflow.HydraSchemaSpec
hydraSchemaSpecWithModules original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "modules"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
              Model.projectionFieldName = (Model.Name "typeName")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL updater for the typeName field of hydra.ext.workflow.HydraSchemaSpec
hydraSchemaSpecWithTypeName :: Typed.TypedTerm Workflow.HydraSchemaSpec -> Typed.TypedTerm Model.Name -> Typed.TypedTerm Workflow.HydraSchemaSpec
hydraSchemaSpecWithTypeName original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "modules"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.HydraSchemaSpec"),
              Model.projectionFieldName = (Model.Name "modules")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL injection for the file variant of hydra.ext.workflow.SchemaSpec
schemaSpecFile :: Typed.TypedTerm String -> Typed.TypedTerm Workflow.SchemaSpec
schemaSpecFile x =
    Typed.TypedTerm (Model.TermInject (Model.Injection {
      Model.injectionTypeName = (Model.Name "hydra.ext.workflow.SchemaSpec"),
      Model.injectionField = Model.Field {
        Model.fieldName = (Model.Name "file"),
        Model.fieldTerm = (Typed.unTypedTerm x)}}))

-- | DSL injection for the hydra variant of hydra.ext.workflow.SchemaSpec
schemaSpecHydra :: Typed.TypedTerm Workflow.HydraSchemaSpec -> Typed.TypedTerm Workflow.SchemaSpec
schemaSpecHydra x =
    Typed.TypedTerm (Model.TermInject (Model.Injection {
      Model.injectionTypeName = (Model.Name "hydra.ext.workflow.SchemaSpec"),
      Model.injectionField = Model.Field {
        Model.fieldName = (Model.Name "hydra"),
        Model.fieldTerm = (Typed.unTypedTerm x)}}))

-- | DSL injection for the provided variant of hydra.ext.workflow.SchemaSpec
schemaSpecProvided :: Typed.TypedTerm Workflow.SchemaSpec
schemaSpecProvided =
    Typed.TypedTerm (Model.TermInject (Model.Injection {
      Model.injectionTypeName = (Model.Name "hydra.ext.workflow.SchemaSpec"),
      Model.injectionField = Model.Field {
        Model.fieldName = (Model.Name "provided"),
        Model.fieldTerm = Model.TermUnit}}))

-- | DSL name token for hydra.ext.workflow.SchemaSpec
schemaSpecSchemaSpec :: Typed.TypedName Workflow.SchemaSpec
schemaSpecSchemaSpec = Typed.TypedName (Model.Name "hydra.ext.workflow.SchemaSpec")

-- | DSL constructor for hydra.ext.workflow.TransformWorkflow
transformWorkflow :: Typed.TypedTerm String -> Typed.TypedTerm Workflow.SchemaSpec -> Typed.TypedTerm String -> Typed.TypedTerm String -> Typed.TypedTerm Workflow.TransformWorkflow
transformWorkflow name schemaSpec srcDir destDir =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Typed.unTypedTerm name)},
        Model.Field {
          Model.fieldName = (Model.Name "schemaSpec"),
          Model.fieldTerm = (Typed.unTypedTerm schemaSpec)},
        Model.Field {
          Model.fieldName = (Model.Name "srcDir"),
          Model.fieldTerm = (Typed.unTypedTerm srcDir)},
        Model.Field {
          Model.fieldName = (Model.Name "destDir"),
          Model.fieldTerm = (Typed.unTypedTerm destDir)}]}))

-- | DSL accessor for the destDir field of hydra.ext.workflow.TransformWorkflow
transformWorkflowDestDir :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String
transformWorkflowDestDir x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
        Model.projectionFieldName = (Model.Name "destDir")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the name field of hydra.ext.workflow.TransformWorkflow
transformWorkflowName :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String
transformWorkflowName x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
        Model.projectionFieldName = (Model.Name "name")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the schemaSpec field of hydra.ext.workflow.TransformWorkflow
transformWorkflowSchemaSpec :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm Workflow.SchemaSpec
transformWorkflowSchemaSpec x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
        Model.projectionFieldName = (Model.Name "schemaSpec")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the srcDir field of hydra.ext.workflow.TransformWorkflow
transformWorkflowSrcDir :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String
transformWorkflowSrcDir x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
        Model.projectionFieldName = (Model.Name "srcDir")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL name token for hydra.ext.workflow.TransformWorkflow
transformWorkflowTransformWorkflow :: Typed.TypedName Workflow.TransformWorkflow
transformWorkflowTransformWorkflow = Typed.TypedName (Model.Name "hydra.ext.workflow.TransformWorkflow")

-- | DSL updater for the destDir field of hydra.ext.workflow.TransformWorkflow
transformWorkflowWithDestDir :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String -> Typed.TypedTerm Workflow.TransformWorkflow
transformWorkflowWithDestDir original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "name")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "schemaSpec"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "schemaSpec")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "srcDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "srcDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "destDir"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the name field of hydra.ext.workflow.TransformWorkflow
transformWorkflowWithName :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String -> Typed.TypedTerm Workflow.TransformWorkflow
transformWorkflowWithName original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "schemaSpec"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "schemaSpec")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "srcDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "srcDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "destDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "destDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL updater for the schemaSpec field of hydra.ext.workflow.TransformWorkflow
transformWorkflowWithSchemaSpec :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm Workflow.SchemaSpec -> Typed.TypedTerm Workflow.TransformWorkflow
transformWorkflowWithSchemaSpec original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "name")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "schemaSpec"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "srcDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "srcDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "destDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "destDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL updater for the srcDir field of hydra.ext.workflow.TransformWorkflow
transformWorkflowWithSrcDir :: Typed.TypedTerm Workflow.TransformWorkflow -> Typed.TypedTerm String -> Typed.TypedTerm Workflow.TransformWorkflow
transformWorkflowWithSrcDir original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "name")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "schemaSpec"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "schemaSpec")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "srcDir"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "destDir"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.workflow.TransformWorkflow"),
              Model.projectionFieldName = (Model.Name "destDir")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))