# Generator Declaration Module
# Workspace declaration schema for infrastructure-as-code

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

{
  defaults = defaults_lib,

  make_metadata | not_exported = fun overrides =>
    defaults_lib.metadata & overrides,
  make_technology_detection | not_exported = fun overrides =>
    defaults_lib.technology_detection & overrides,
  make_taskserv_requirement | not_exported = fun overrides =>
    defaults_lib.taskserv_requirement & overrides,
  make_server_config | not_exported = fun overrides =>
    defaults_lib.server_config & overrides,
  make_deployment_config | not_exported = fun overrides =>
    defaults_lib.deployment_config & overrides,
  make_workspace_declaration | not_exported = fun overrides =>
    defaults_lib.workspace_declaration & overrides,
  make_changelog_entry | not_exported = fun overrides =>
    defaults_lib.changelog_entry & overrides,
  make_changelog | not_exported = fun overrides =>
    defaults_lib.changelog & overrides,
  make_workspace | not_exported = fun overrides =>
    defaults_lib.workspace & overrides,

  DefaultMetadata = defaults_lib.metadata,
  DefaultTechnologyDetection = defaults_lib.technology_detection,
  DefaultTaskservRequirement = defaults_lib.taskserv_requirement,
  DefaultServerConfig = defaults_lib.server_config,
  DefaultDeploymentConfig = defaults_lib.deployment_config,
  DefaultWorkspaceDeclaration = defaults_lib.workspace_declaration,
  DefaultChangelogEntry = defaults_lib.changelog_entry,
  DefaultChangelog = defaults_lib.changelog,
  DefaultWorkspace = defaults_lib.workspace,
}
