# Services Defaults
#
# Concrete default values for service registry schemas.

{
  ServiceRegistry = {
    services = {},
  },

  ServiceDefinition = {
    name = "",
    type = 'platform,
    category = 'orchestration,
    required_for = [],
    dependencies = [],
    conflicts = [],
    deployment = {},
    health_check = {},
    startup = {},
  },

  ServiceDeployment = {
    mode = 'binary,
  },

  BinaryDeployment = {
    binary_path = "",
    args = [],
    env = {},
  },

  DockerDeployment = {
    image = "",
    container_name = "",
    ports = [],
    volumes = [],
    environment = {},
    networks = [],
    restart_policy = 'unless_stopped,
  },

  DockerComposeDeployment = {
    compose_file = "",
    service_name = "",
  },

  KubernetesDeployment = {
    namespace = "",
    deployment_name = "",
  },

  HelmChart = {
    chart = "",
    release_name = "",
  },

  RemoteDeployment = {
    endpoint = "",
    tls_enabled = true,
  },

  HealthCheck = {
    type = 'none,
    interval = 10,
    retries = 3,
    timeout = 5,
  },

  HttpHealthCheck = {
    endpoint = "",
    expected_status = 200,
    method = 'GET,
    headers = {},
  },

  TcpHealthCheck = {
    host = "",
    port = 80,
  },

  CommandHealthCheck = {
    command = "",
    expected_exit_code = 0,
  },

  FileHealthCheck = {
    path = "",
    must_exist = true,
  },

  StartupConfig = {
    auto_start = false,
    start_timeout = 60,
    start_order = 100,
    restart_on_failure = true,
    max_restarts = 3,
  },

  ResourceLimits = {},

  ServiceState = {
    name = "",
    status = 'unknown,
    health_status = 'unknown,
    restart_count = 0,
  },

  ServiceOperation = {
    service_name = "",
    operation = 'start,
    force = false,
  },
}
