{
  "title": "Base Terraform Executor",
  "description": "A base type definition for a Terraform executor schema",
  "id": "#",
  "properties": {
    "backendConfig": {
      "title": "Backend Config",
      "type": "array",
      "description": "The backend configuration",
      "id": "#backendConfig",
      "default": [],
      "items": {
        "type": "any"
      }
    },
    "autoApproval": {
      "title": "Auto Approval",
      "type": "boolean",
      "description": "Whether to auto-approve the plan",
      "id": "#autoApproval",
      "default": false
    },
    "planFile": {
      "title": "Plan File",
      "format": "path",
      "description": "The plan file",
      "type": "string",
      "id": "#planFile",
      "default": "plan.out"
    },
    "formatWrite": {
      "title": "Format Write",
      "type": "boolean",
      "description": "Whether to format the files before writing",
      "id": "#formatWrite",
      "default": false
    },
    "upgrade": {
      "title": "Upgrade",
      "type": "boolean",
      "description": "Whether to upgrade the modules",
      "id": "#upgrade",
      "default": false
    },
    "migrateState": {
      "title": "Migrate State",
      "type": "boolean",
      "description": "Whether to migrate the state",
      "id": "#migrateState",
      "default": false
    },
    "lock": {
      "title": "Lock",
      "type": "boolean",
      "description": "Whether to lock the state",
      "id": "#lock",
      "default": false
    },
    "varFile": {
      "title": "Var File",
      "format": "path",
      "type": "string",
      "description": "The variable file",
      "id": "#varFile",
      "default": "variables.tf"
    },
    "varString": {
      "title": "Var String",
      "type": "string",
      "description": "The variable string",
      "id": "#varString"
    },
    "reconfigure": {
      "title": "Reconfigure",
      "type": "boolean",
      "description": "Whether to reconfigure the state",
      "id": "#reconfigure",
      "default": false
    }
  },
  "type": "object",
  "default": {
    "backendConfig": [],
    "autoApproval": false,
    "planFile": "plan.out",
    "formatWrite": false,
    "upgrade": false,
    "migrateState": false,
    "lock": false,
    "varFile": "variables.tf",
    "reconfigure": false
  }
}