# | Batch workflow instances (defaults only)
# | Migrated from: provisioning/kcl/workflows.k
# | Pattern: Hybrid - defaults + makers + direct access (contracts available via import)

let contracts_lib = import "./contracts.ncl" in
let defaults_lib = import "./defaults.ncl" in
let settings = import "../../config/settings/main.ncl" in

{
  defaults = defaults_lib,

  make_dependency_def | not_exported = fun overrides =>
    defaults_lib.dependency_def & overrides,
  make_retry_policy | not_exported = fun overrides =>
    defaults_lib.retry_policy & overrides,
  make_rollback_strategy | not_exported = fun overrides =>
    defaults_lib.rollback_strategy & overrides,
  make_monitoring_config | not_exported = fun overrides =>
    defaults_lib.monitoring_config & overrides,
  make_storage_config | not_exported = fun overrides =>
    defaults_lib.storage_config & overrides,
  make_batch_operation | not_exported = fun overrides =>
    defaults_lib.batch_operation & overrides,
  make_batch_workflow | not_exported = fun overrides =>
    defaults_lib.batch_workflow & overrides,
  make_workflow_execution | not_exported = fun overrides =>
    defaults_lib.workflow_execution & overrides,
  make_workflow_template | not_exported = fun overrides =>
    defaults_lib.workflow_template & overrides,

  DefaultDependencyDef = defaults_lib.dependency_def,
  DefaultRetryPolicy = defaults_lib.retry_policy,
  DefaultRollbackStrategy = defaults_lib.rollback_strategy,
  DefaultMonitoringConfig = defaults_lib.monitoring_config,
  DefaultStorageConfig = defaults_lib.storage_config,
  DefaultBatchOperation = defaults_lib.batch_operation,
  DefaultBatchWorkflow = defaults_lib.batch_workflow,
  DefaultWorkflowExecution = defaults_lib.workflow_execution,
  DefaultWorkflowTemplate = defaults_lib.workflow_template,
}
