{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/dagger/dagger/core/modules/current-module-config-with-user-fields",
  "$ref": "#/$defs/CurrentModuleConfigWithUserFields",
  "$defs": {
    "CurrentModuleConfigDependency": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name to use for this dependency. By default, the same as the dependency module's name, but can also be overridden to use a different name."
        },
        "source": {
          "type": "string",
          "description": "The source ref of the module dependency."
        },
        "pin": {
          "type": "string",
          "description": "The pinned version of the module dependency."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "source"
      ],
      "description": "CurrentModuleConfigDependency is a dagger-module.toml dependency."
    },
    "CurrentModuleConfigWithUserFields": {
      "properties": {
        "$schema": {
          "type": "string",
          "description": "The self-describing config schema."
        },
        "name": {
          "type": "string",
          "description": "The name of the module."
        },
        "engineVersion": {
          "type": "string",
          "description": "The version of the engine this module was last updated with."
        },
        "include": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Paths to explicitly include from the module, relative to the configuration file."
        },
        "source": {
          "type": "string",
          "description": "The path, relative to this config file, to the subdir containing the module's implementation source code."
        },
        "exclude": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Paths to explicitly exclude from the module, relative to the configuration file.\n\nDeprecated: Use !\u003cpattern\u003e in the include list instead."
        },
        "disableDefaultFunctionCaching": {
          "type": "boolean",
          "description": "If true, disable the new default function caching behavior for this module. Functions will instead default to the old behavior of per-session caching."
        },
        "runtime": {
          "$ref": "#/$defs/SDK",
          "description": "The runtime this module uses."
        },
        "dependencies": {
          "items": {
            "$ref": "#/$defs/CurrentModuleConfigDependency"
          },
          "type": "array",
          "description": "The modules this module depends on."
        },
        "codegen": {
          "$ref": "#/$defs/ModuleCodegenConfig",
          "description": "Codegen configuration for this module."
        },
        "clients": {
          "items": {
            "$ref": "#/$defs/ModuleConfigClient"
          },
          "type": "array",
          "description": "The clients generated for this module."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "name",
        "engineVersion"
      ],
      "description": "CurrentModuleConfigWithUserFields is the public schema for dagger-module.toml."
    },
    "ModuleCodegenConfig": {
      "properties": {
        "automaticGitignore": {
          "type": "boolean",
          "description": "Whether to automatically generate a .gitignore file for this module."
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "ModuleConfigClient": {
      "properties": {
        "generator": {
          "type": "string",
          "description": "The generator the client uses to be generated."
        },
        "directory": {
          "type": "string",
          "description": "The directory the client is generated in."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "generator",
        "directory"
      ]
    },
    "SDK": {
      "properties": {
        "source": {
          "type": "string"
        },
        "pin": {
          "type": "string"
        },
        "config": {
          "type": "object",
          "description": "Deprecated: not persisted by current TOML schema. Legacy JSON read-only."
        },
        "debug": {
          "type": "boolean",
          "description": "Deprecated: not persisted by current TOML schema. Legacy JSON read-only."
        },
        "experimental": {
          "additionalProperties": {
            "type": "boolean"
          },
          "type": "object",
          "description": "Deprecated: self-calls graduated; not persisted by current TOML schema. Legacy JSON read-only."
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "source"
      ],
      "description": "SDK represents the runtime/sdk field in module config."
    }
  }
}
