# Modes CICD & Enterprise Contracts
# CICD and Enterprise deployment mode contracts

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

{
  CICDMode = {
    mode_name | [| 'cicd |],
    description | String,
    authentication | base.AuthenticationStrategy,
    services | base.ServiceDeployments,
    extensions | base.ExtensionConfig,
    workspaces | base.WorkspacePolicy,
    security | base.SecurityConfig,
    resource_limits | base.ResourceLimits,
  },

  EnterpriseMode = {
    mode_name | [| 'enterprise |],
    description | String,
    authentication | base.AuthenticationStrategy,
    services | base.ServiceDeployments,
    extensions | base.ExtensionConfig,
    workspaces | base.WorkspacePolicy,
    security | base.SecurityConfig,
    resource_limits | base.ResourceLimits,
  },
}
