# | Settings configuration contracts (schema definitions)
# | Migrated from: provisioning/kcl/settings.k
# | Pattern: Pure schema definitions using Nickel contracts

{
  SecretProvider = {
    provider | String,
  },

  SopsConfig = {
    use_age | Bool,
  },

  KmsConfig = {
    server_url | String,
    auth_method | String,
    timeout | Number,
    verify_ssl | Bool,
  },

  AIProvider = {
    enabled | Bool,
    provider | String,
    max_tokens | Number,
    temperature | Number,
    timeout | Number,
    enable_template_ai | Bool,
    enable_query_ai | Bool,
    enable_webhook_ai | Bool,
  },

  RunSet = {
    wait | Bool,
    output_format | String,
    output_path | String,
    inventory_file | String,
    use_time | Bool,
  },

  Settings = {
    main_name | String,
    main_title | String,
    settings_path | String,
    defaults_provs_dirpath | String,
    defaults_provs_suffix | String,
    prov_data_dirpath | String,
    prov_data_suffix | String,
    created_taskservs_dirpath | String,
    prov_resources_path | String,
    created_clusters_dirpath | String,
    prov_clusters_path | String,
    prov_local_bin_path | String,
    cluster_admin_host | String,
    cluster_admin_port | Number,
    servers_wait_started | Number,
    cluster_admin_user | String,
    clusters_save_path | String,
    servers_paths,
    clusters_paths,
  },
}
