# | Batch operation default values
# | Migrated from: provisioning/kcl/batch.k
# | Pattern: Pure defaults (no schema, no contracts)

{
  scheduler = {
    strategy = "dependency_first",
    resource_limits = {
      "max_cpu_cores" = 0,
      "max_memory_mb" = 0,
      "max_network_bandwidth" = 0,
    },
    scheduling_interval = 10,
    enable_preemption = false,
  },

  queue = {
    queue_id = "",
    queue_type = "standard",
    max_size = 0,
    retention_period = 604800,
    max_delivery_attempts = 3,
  },

  resource_constraint = {
    resource_type = "cpu",
    resource_name = "",
    max_units = 1,
    current_units = 0,
    units_per_operation = 1,
    hard_constraint = true,
  },

  metrics = {
    detailed_metrics = true,
    retention_hours = 168,
    aggregation_intervals = [60, 300, 3600],
    custom_metrics = [],
    enable_export = false,
    export_config = {},
  },

  provider_mix = {
    primary_provider = "upcloud",
    secondary_providers = [],
    provider_selection = "primary_first",
    cross_provider_networking = {},
    provider_limits = {},
  },

  health_check = {
    enabled = true,
    check_interval = 60,
    check_timeout = 30,
    failure_threshold = 3,
    success_threshold = 2,
    health_checks = [],
    failure_actions = ["retry", "rollback"],
  },

  autoscaling = {
    enabled = false,
    min_parallel = 1,
    max_parallel = 10,
    scale_up_threshold = 0.8,
    scale_down_threshold = 0.2,
    cooldown_period = 300,
    scale_step = 1,
    target_utilization = 0.6,
  },

  executor = {
    executor_id = "",
    name = "",
    description = "",
    queues = [],
    resource_constraints = [],
    security_config = {},
    audit_logging = true,
    audit_log_path = "./logs/batch_audit.log",
    webhook_endpoints = [],
    api_endpoints = [],
    performance_config = {
      "io_threads" = "4",
      "worker_threads" = "8",
      "batch_size" = "100",
    },
  },

  operation_types = [
    "server_create",
    "server_delete",
    "server_scale",
    "server_update",
    "taskserv_install",
    "taskserv_remove",
    "taskserv_update",
    "taskserv_configure",
    "cluster_create",
    "cluster_delete",
    "cluster_scale",
    "cluster_upgrade",
    "custom_command",
    "custom_script",
    "custom_api_call",
  ],

  providers = [
    "upcloud",
    "aws",
    "local",
    "mixed",
    "custom",
  ],
}
