{
  SopsConfig = {
    config_path | String | optional,
    age_key_file | String | optional,
    age_recipients | String | optional,
    use_age | Bool | default = true,
  },

  KmsConfig = {
    server_url | String,
    auth_method | String | default = "certificate",  # certificate | token | basic
    client_cert_path | String | optional,
    client_key_path | String | optional,
    ca_cert_path | String | optional,
    api_token | String | optional,
    username | String | optional,
    password | String | optional,
    timeout | Number | default = 30,
    verify_ssl | Bool | default = true,
  },

  SecretProvider = {
    provider | String | default = "sops",  # sops | kms
    sops_config | optional,
    kms_config | optional,
  },

  AIProvider = {
    enabled | Bool | default = false,
    provider | String | default = "openai",  # openai | claude | generic
    api_endpoint | String | optional,
    api_key | String | optional,
    model | String | optional,
    max_tokens | Number | default = 2048,
    temperature | Number | default = 0.3,
    timeout | Number | default = 30,
    enable_template_ai | Bool | default = true,
    enable_query_ai | Bool | default = true,
    enable_webhook_ai | Bool | default = false,
  },

  RunSet = {
    wait | Bool | default = true,
    output_format | String | default = "human",  # human | yaml | json
    output_path | String | default = "tmp/NOW-deploy",
    inventory_file | String | default = "./inventory.yaml",
    use_time | Bool | default = true,
  },

  Settings = {
    main_name | String,
    main_title | String | default = main_name,
    settings_path | String | default = "./settings.yaml",
    defaults_provs_dirpath | String | default = "./defs",
    defaults_provs_suffix | String | default = "_defaults.k",
    prov_data_dirpath | String | default = "./data",
    prov_data_suffix | String | default = "_settings.k",
    created_taskservs_dirpath | String | default = "./tmp/NOW_deployment",
    prov_resources_path | String | default = "./resources",
    created_clusters_dirpath | String | default = "./tmp/NOW_clusters",
    prov_clusters_path | String | default = "./clusters",
    prov_local_bin_path | String | default = "./bin",
    secrets | default = {},
    ai | default = {},
    runset,
    cluster_admin_host | String,
    cluster_admin_port | Number | default = 22,
    servers_wait_started | Number | default = 27,
    cluster_admin_user | String | default = "root",
    clusters_save_path | String | default = "/${main_name}/clusters",
    servers_paths | default = ["servers"],
    clusters_paths | default = ["clusters"],
  },
}
