{
  "id": "#",
  "title": "R2 Upload Publish Executor",
  "description": "A type definition for the R2 Upload Publish executor schema",
  "requires": [
    "path",
    "bucketId",
    "bucketPath"
  ],
  "properties": {
    "path": {
      "title": "Local Uploads File Path",
      "type": "string",
      "format": "path",
      "description": "The base path to the files that will be uploaded to the R2 bucket",
      "id": "#path"
    },
    "registry": {
      "title": "Registry",
      "type": "string",
      "description": "The registry URL to publish to",
      "id": "#registry"
    },
    "bucketId": {
      "title": "Bucket ID",
      "type": "string",
      "description": "The ID of the R2 bucket",
      "id": "#bucketId"
    },
    "bucketPath": {
      "title": "Bucket Path",
      "type": "string",
      "format": "path",
      "description": "The path in the R2 bucket to upload files to",
      "id": "#bucketPath",
      "default": "/"
    },
    "tag": {
      "title": "Tag",
      "type": "string",
      "description": "The tag to publish with",
      "id": "#tag",
      "default": "latest"
    },
    "writeMetaJson": {
      "title": "Write Meta JSON",
      "type": "boolean",
      "description": "Write a `meta.json` file to the upload bucket",
      "id": "#writeMetaJson",
      "default": false
    },
    "clean": {
      "title": "Clean",
      "type": "boolean",
      "description": "Clean the bucket before uploading files",
      "id": "#clean",
      "default": false
    },
    "verbose": {
      "title": "Verbose",
      "type": "boolean",
      "description": "Enable verbose logging",
      "id": "#verbose",
      "default": false
    },
    "dryRun": {
      "title": "Dry Run",
      "type": "boolean",
      "description": "Perform a dry run",
      "id": "#dryRun",
      "default": false
    }
  },
  "type": "object",
  "default": {
    "bucketPath": "/",
    "tag": "latest",
    "writeMetaJson": false,
    "clean": false,
    "verbose": false,
    "dryRun": false
  }
}