# Modes CICD & Enterprise Module
# CICD and Enterprise deployment modes

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

{
  CICDMode | doc m%"
    CI/CD mode: Automated pipeline execution

    Characteristics:
      - Token or mTLS authentication
      - Remote service endpoints
      - OCI registry for artifacts
      - No workspace locking (stateless)
      - Git integration required
      - Ephemeral workspaces

    Example:
        {
          mode_name = 'cicd,
          description = "CI/CD pipeline environment",
        } | CICDMode
  "%
    = contracts.CICDMode,

  EnterpriseMode | doc m%"
    Enterprise mode: Production enterprise deployment

    Characteristics:
      - mTLS or OAuth authentication
      - Kubernetes-deployed services
      - Enterprise OCI registry (Harbor HA)
      - Workspace locking required
      - Git integration required
      - Full encryption and auditing
      - Strict resource limits

    Example:
        {
          mode_name = 'enterprise,
          description = "Production enterprise environment",
        } | EnterpriseMode
  "%
    = contracts.EnterpriseMode,

  # Default configurations
  cicd_default = defaults.cicd_mode,
  enterprise_default = defaults.enterprise_mode,
}
