{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/vercel/latest.json",
  "x-lintel": {
    "source": "https://openapi.vercel.sh/vercel.json",
    "sourceSha256": "0880004fdf8f257864f8638aabb0e88183cab7bb79354b5feca13a4703adc549",
    "fileMatch": [
      "vercel.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "$schema": {
      "description": "Ignored. Can be set to get completions, validations and documentation in some editors.",
      "example": [
        "https://openapi.vercel.sh/vercel.json"
      ],
      "type": "string"
    },
    "alias": {
      "description": "Aliases that will get assigned when the deployment is `READY` and the target is `production`. The client needs to make a `GET` request to its API to ensure the assignment",
      "example": [
        "example.vercel.app"
      ],
      "oneOf": [
        {
          "private": true,
          "type": "string"
        },
        {
          "items": {
            "maxLength": 253,
            "type": "string"
          },
          "maxItems": 50,
          "maxLength": 253,
          "type": "array"
        }
      ]
    },
    "build": {
      "type": "object",
      "description": "An object containing another object with information to be passed to the Build Process",
      "deprecated": true,
      "properties": {
        "env": {
          "type": "object",
          "description": "An object containing the deployment's environment variable names and values to be passed to Builds. Secrets can be referenced by prefixing the value with `@`",
          "example": {
            "A_SECRET": "@a-secret"
          },
          "deprecated": true,
          "maxProperties": 1000,
          "minProperties": 0,
          "additionalProperties": false,
          "patternProperties": {
            ".+": {
              "maxLength": 65536,
              "minLength": 0,
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    "builds": {
      "description": "A list of build descriptions whose src references valid source files.",
      "deprecated": true,
      "items": {
        "type": "object",
        "properties": {
          "config": {
            "description": "Optionally, an object including arbitrary metadata to be passed to the Builder",
            "type": "object"
          },
          "src": {
            "description": "A glob expression or pathname. If more than one file is resolved, one build will be created per matched file. It can include `*` and `**`",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "use": {
            "description": "An npm module to be installed by the build process. It can include a semver compatible version (e.g.: `@org/proj@1`)",
            "maxLength": 256,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "use"
        ],
        "additionalProperties": false
      },
      "maxItems": 128,
      "minItems": 0,
      "type": "array"
    },
    "cleanUrls": {
      "description": "When set to `true`, all HTML files and Serverless Functions will have their extension removed. When visiting a path that ends with the extension, a 308 response will redirect the client to the extensionless path.",
      "type": "boolean"
    },
    "env": {
      "type": "object",
      "description": "An object containing the deployment's environment variable names and values. Secrets can be referenced by prefixing the value with `@`",
      "example": {
        "A_SECRET": "@a-secret"
      },
      "deprecated": true,
      "maxProperties": 1000,
      "minProperties": 0,
      "additionalProperties": false,
      "patternProperties": {
        ".+": {
          "maxLength": 65536,
          "minLength": 0,
          "type": "string"
        }
      }
    },
    "passiveRegions": {
      "description": "An array of the passive regions the deployment's Serverless Functions should be deployed to that can be failed over to during a lambda outage",
      "example": [
        "iad1",
        "cle1"
      ],
      "items": {
        "maxLength": 256,
        "type": "string"
      },
      "maxItems": 4,
      "minItems": 1,
      "type": "array"
    },
    "functionFailoverRegions": {
      "description": "Same as passiveRegions. An array of the passive regions the deployment's Serverless Functions should be deployed to so we can failover to these regions on lambda outages",
      "example": [
        "iad1",
        "cle1"
      ],
      "items": {
        "maxLength": 256,
        "type": "string"
      },
      "maxItems": 4,
      "minItems": 1,
      "type": "array"
    },
    "functions": {
      "type": "object",
      "description": "An object describing custom options for your Serverless Functions. Each key must be glob pattern that matches the paths of the Serverless Functions you would like to customize (like `api/*.js` or `api/test.js`).",
      "example": {
        "src/pages/**": {
          "maxDuration": 6,
          "memory": 1024
        }
      },
      "maxProperties": 50,
      "minProperties": 1,
      "additionalProperties": false,
      "patternProperties": {
        "^.{1,256}$": {
          "type": "object",
          "properties": {
            "excludeFiles": {
              "description": "A glob pattern to match files that should be excluded from your Serverless Function. If you’re using a Community Runtime, the behavior might vary.",
              "maxLength": 256,
              "type": "string"
            },
            "includeFiles": {
              "description": "A glob pattern to match files that should be included in your Serverless Function. If you’re using a Community Runtime, the behavior might vary.",
              "maxLength": 256,
              "type": "string"
            },
            "maxDuration": {
              "description": "How long your Serverless Function should be allowed to run on every request in seconds (between 1 and the maximum limit of your plan), or \"max\" to use the maximum allowed by your plan.",
              "oneOf": [
                {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 900
                },
                {
                  "type": "string",
                  "enum": [
                    "max"
                  ]
                }
              ]
            },
            "memory": {
              "description": "An integer defining the memory your Serverless Function should be provided with (between 128 and 10240).",
              "maximum": 10240,
              "minimum": 128,
              "type": "number"
            },
            "runtime": {
              "description": "The npm package name of a Runtime, including its version",
              "maxLength": 256,
              "type": "string"
            },
            "regions": {
              "description": "An array of regions this Serverless Function should be deployed to.",
              "items": {
                "maxLength": 256,
                "type": "string"
              },
              "maxItems": 1000,
              "minItems": 1,
              "type": "array"
            },
            "functionFailoverRegions": {
              "description": "An array of passive regions this Serverless Function can fail over to during a lambda outage.",
              "items": {
                "maxLength": 256,
                "type": "string"
              },
              "maxItems": 4,
              "minItems": 0,
              "type": "array"
            },
            "supportsCancellation": {
              "description": "A boolean that defines whether the Function supports cancellation (default: false)",
              "type": "boolean"
            },
            "experimentalTriggers": {
              "description": "An array of experimental triggers for this Serverless Function. Currently only supports queue triggers.",
              "type": "array",
              "maxItems": 10,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "required": [
                      "type",
                      "topic",
                      "consumer"
                    ],
                    "properties": {
                      "type": {
                        "description": "Event type pattern this trigger handles",
                        "type": "string",
                        "const": "queue/v1beta"
                      },
                      "topic": {
                        "description": "Name of the queue topic to consume from",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "consumer": {
                        "description": "Name of the consumer group for this trigger",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "maxDeliveries": {
                        "description": "Maximum number of delivery attempts",
                        "type": "number",
                        "minimum": 1,
                        "maximum": 64
                      },
                      "retryAfterSeconds": {
                        "description": "Delay in seconds before retrying failed executions",
                        "type": "number",
                        "minimum": 5,
                        "maximum": 86400
                      },
                      "initialDelaySeconds": {
                        "description": "Initial delay in seconds before first execution attempt",
                        "type": "number",
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "maxConcurrency": {
                        "description": "Maximum number of concurrent executions for this consumer",
                        "type": "number",
                        "minimum": 1,
                        "maximum": 100
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "required": [
                      "type",
                      "topic"
                    ],
                    "properties": {
                      "type": {
                        "description": "Event type pattern this trigger handles",
                        "type": "string",
                        "const": "queue/v2beta"
                      },
                      "topic": {
                        "description": "Name of the queue topic to consume from",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "maxDeliveries": {
                        "description": "Maximum number of delivery attempts",
                        "type": "number",
                        "minimum": 1,
                        "maximum": 1048576
                      },
                      "retryAfterSeconds": {
                        "description": "Delay in seconds before retrying failed executions",
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 86400
                      },
                      "initialDelaySeconds": {
                        "description": "Initial delay in seconds before first execution attempt",
                        "type": "number",
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "maxConcurrency": {
                        "description": "Maximum number of concurrent executions for this consumer",
                        "type": "number",
                        "minimum": 1,
                        "maximum": 16384
                      }
                    },
                    "additionalProperties": false
                  }
                ]
              }
            }
          },
          "additionalProperties": false
        }
      }
    },
    "git": {
      "type": "object",
      "properties": {
        "deploymentEnabled": {
          "description": "Specifies the branches that will not trigger an auto-deployment when committing to them. Any non specified branch is `true` by default.",
          "example": {
            "main": false
          },
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": {
                "type": "boolean"
              }
            }
          ]
        },
        "exclusivity": {
          "private": true,
          "type": "object",
          "description": "If specified, the git repository will be exclusive to the specificed Team IDs. Teams that are not specified in the list will not be able to link new projects or create new deployments.",
          "properties": {
            "teams": {
              "type": "array",
              "description": "A list of allowed Team IDs.",
              "items": {
                "type": "string"
              },
              "maxItems": 10,
              "minItems": 1
            }
          }
        }
      }
    },
    "github": {
      "private": true,
      "type": "object",
      "properties": {
        "autoAlias": {
          "description": "When set to `false`, Vercel for GitHub will not deploy the given project regardless of the GitHub app being installed.",
          "type": "boolean"
        },
        "autoJobCancelation": {
          "description": "When set to `false`, Vercel for GitHub will always build pushes in sequence without cancelling a build for the most recent commit.",
          "type": "boolean"
        },
        "enabled": {
          "description": "When set to false, Vercel for GitHub will not apply the alias upon merge.",
          "type": "boolean"
        },
        "silent": {
          "deprecated": true,
          "description": "[deprecated] Please use the Project Settings in the dashboard instead: <https://vercel.link/46vERTS> When set to `true`, Vercel for GitHub will stop commenting on pull requests and commits.",
          "type": "boolean"
        }
      }
    },
    "headers": {
      "type": "array",
      "maxItems": 2048,
      "description": "A list of header definitions.",
      "items": {
        "type": "object",
        "properties": {
          "source": {
            "description": "A pattern that matches each incoming pathname (excluding querystring)",
            "type": "string",
            "maxLength": 4096
          },
          "headers": {
            "description": "An array of key/value pairs representing each response header.",
            "type": "array",
            "maxItems": 1024,
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "maxLength": 4096
                },
                "value": {
                  "type": "string",
                  "maxLength": 32768
                }
              },
              "required": [
                "key",
                "value"
              ],
              "additionalProperties": false
            }
          },
          "has": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "missing": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "required": [
          "source",
          "headers"
        ],
        "additionalProperties": false
      }
    },
    "images": {
      "type": "object",
      "properties": {
        "contentDispositionType": {
          "enum": [
            "inline",
            "attachment"
          ]
        },
        "contentSecurityPolicy": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        },
        "dangerouslyAllowSVG": {
          "type": "boolean"
        },
        "domains": {
          "type": "array",
          "minItems": 0,
          "maxItems": 50,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "formats": {
          "type": "array",
          "minItems": 1,
          "maxItems": 4,
          "items": {
            "enum": [
              "image/avif",
              "image/webp",
              "image/jpeg",
              "image/png"
            ]
          }
        },
        "localPatterns": {
          "type": "array",
          "minItems": 0,
          "maxItems": 25,
          "items": {
            "type": "object",
            "properties": {
              "pathname": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "search": {
                "type": "string",
                "minLength": 0,
                "maxLength": 256
              }
            },
            "additionalProperties": false
          }
        },
        "minimumCacheTTL": {
          "type": "integer",
          "minimum": 1,
          "maximum": 315360000
        },
        "qualities": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "remotePatterns": {
          "type": "array",
          "minItems": 0,
          "maxItems": 50,
          "items": {
            "type": "object",
            "properties": {
              "protocol": {
                "enum": [
                  "http",
                  "https"
                ]
              },
              "hostname": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "port": {
                "type": "string",
                "minLength": 0,
                "maxLength": 5
              },
              "pathname": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "search": {
                "type": "string",
                "minLength": 0,
                "maxLength": 256
              }
            },
            "required": [
              "hostname"
            ],
            "additionalProperties": false
          }
        },
        "sizes": {
          "type": "array",
          "minItems": 1,
          "maxItems": 50,
          "items": {
            "type": "number"
          }
        }
      },
      "required": [
        "sizes"
      ],
      "additionalProperties": false
    },
    "name": {
      "description": "A name for the deployment",
      "type": "string"
    },
    "public": {
      "description": "Whether a deployment's source and logs are available publicly",
      "type": "boolean"
    },
    "redirects": {
      "title": "Redirects",
      "type": "array",
      "maxItems": 2048,
      "description": "A list of redirect definitions.",
      "items": {
        "type": "object",
        "properties": {
          "source": {
            "description": "A pattern that matches each incoming pathname (excluding querystring) or a full URL including domain.",
            "type": "string",
            "maxLength": 4096
          },
          "destination": {
            "description": "A location destination defined as an absolute pathname or external URL.",
            "type": "string",
            "maxLength": 4096
          },
          "permanent": {
            "description": "A boolean to toggle between permanent and temporary redirect. When `true`, the status code is `308`. When `false` the status code is `307`.",
            "type": "boolean"
          },
          "statusCode": {
            "description": "An optional integer to define the status code of the redirect.",
            "private": true,
            "type": "integer",
            "minimum": 100,
            "maximum": 999
          },
          "has": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "missing": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "env": {
            "description": "An array of environment variable names that should be replaced at runtime in the destination",
            "type": "array",
            "minItems": 1,
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          }
        },
        "required": [
          "source",
          "destination"
        ],
        "additionalProperties": false
      }
    },
    "bulkRedirectsPath": {
      "description": "The path to a file containing bulk redirects; supports JSON, JSONL, and CSV",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "regions": {
      "description": "An array of the regions the deployment's Serverless Functions should be deployed to",
      "example": [
        "sfo",
        "bru"
      ],
      "items": {
        "maxLength": 256,
        "type": "string"
      },
      "maxItems": 1000,
      "minItems": 1,
      "type": "array"
    },
    "rewrites": {
      "type": "array",
      "maxItems": 2048,
      "description": "A list of rewrite definitions.",
      "items": {
        "type": "object",
        "properties": {
          "source": {
            "description": "A pattern that matches each incoming pathname (excluding querystring).",
            "type": "string",
            "maxLength": 4096
          },
          "destination": {
            "description": "An absolute pathname to an existing resource or an external URL.",
            "type": "string",
            "maxLength": 4096
          },
          "has": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "missing": {
            "description": "An array of requirements that are needed to match",
            "type": "array",
            "maxItems": 16,
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "host"
                      ]
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "description": "The type of request element to check",
                      "type": "string",
                      "enum": [
                        "header",
                        "cookie",
                        "query"
                      ]
                    },
                    "key": {
                      "description": "The name of the element contained in the particular type",
                      "type": "string",
                      "maxLength": 4096
                    },
                    "value": {
                      "description": "A value to match against. Can be a string (regex) or a condition operation object",
                      "anyOf": [
                        {
                          "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "description": "A condition operation object",
                          "type": "object",
                          "properties": {
                            "eq": {
                              "description": "Equal to",
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "neq": {
                              "description": "Not equal",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "inc": {
                              "description": "In array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "ninc": {
                              "description": "Not in array",
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 4096
                              }
                            },
                            "pre": {
                              "description": "Starts with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "suf": {
                              "description": "Ends with",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "re": {
                              "description": "Regex",
                              "type": "string",
                              "maxLength": 4096
                            },
                            "gt": {
                              "description": "Greater than",
                              "type": "number"
                            },
                            "gte": {
                              "description": "Greater than or equal to",
                              "type": "number"
                            },
                            "lt": {
                              "description": "Less than",
                              "type": "number"
                            },
                            "lte": {
                              "description": "Less than or equal to",
                              "type": "number"
                            }
                          },
                          "minProperties": 1,
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "key"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "statusCode": {
            "description": "An optional integer to override the status code of the response.",
            "type": "integer",
            "minimum": 100,
            "maximum": 999
          },
          "env": {
            "description": "An array of environment variable names that should be replaced at runtime in the destination",
            "type": "array",
            "minItems": 1,
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 256
            }
          },
          "respectOriginCacheControl": {
            "description": "When set to true (default), external rewrites will respect the Cache-Control header from the origin. When false, caching is disabled for this rewrite.",
            "type": "boolean"
          }
        },
        "required": [
          "source",
          "destination"
        ],
        "additionalProperties": false
      }
    },
    "routes": {
      "type": "array",
      "description": "A list of routes objects used to rewrite paths to point towards other internal or external paths",
      "example": [
        {
          "dest": "https://docs.example.com",
          "src": "/docs"
        }
      ],
      "items": {
        "anyOf": [
          {
            "type": "object",
            "anyOf": [
              {
                "required": [
                  "src"
                ]
              },
              {
                "required": [
                  "source"
                ]
              }
            ],
            "properties": {
              "src": {
                "type": "string",
                "maxLength": 4096
              },
              "source": {
                "type": "string",
                "maxLength": 4096
              },
              "dest": {
                "type": "string",
                "maxLength": 4096
              },
              "destination": {
                "type": "string",
                "maxLength": 4096
              },
              "headers": {
                "type": "object",
                "additionalProperties": false,
                "minProperties": 1,
                "maxProperties": 100,
                "patternProperties": {
                  "^.{1,256}$": {
                    "type": "string",
                    "maxLength": 32768
                  }
                }
              },
              "methods": {
                "type": "array",
                "maxItems": 10,
                "items": {
                  "type": "string",
                  "maxLength": 32
                }
              },
              "caseSensitive": {
                "type": "boolean"
              },
              "important": {
                "deprecated": true,
                "type": "boolean"
              },
              "user": {
                "type": "boolean"
              },
              "continue": {
                "type": "boolean"
              },
              "override": {
                "deprecated": true,
                "type": "boolean"
              },
              "check": {
                "type": "boolean"
              },
              "isInternal": {
                "type": "boolean"
              },
              "status": {
                "type": "integer",
                "minimum": 100,
                "maximum": 999
              },
              "statusCode": {
                "type": "integer",
                "minimum": 100,
                "maximum": 999
              },
              "locale": {
                "type": "object",
                "properties": {
                  "redirect": {
                    "type": "object",
                    "additionalProperties": false,
                    "minProperties": 1,
                    "maxProperties": 100,
                    "patternProperties": {
                      "^.{1,256}$": {
                        "type": "string",
                        "maxLength": 4096
                      }
                    }
                  },
                  "value": {
                    "type": "string",
                    "maxLength": 4096
                  },
                  "path": {
                    "type": "string",
                    "maxLength": 4096
                  },
                  "cookie": {
                    "type": "string",
                    "maxLength": 4096
                  },
                  "default": {
                    "type": "string",
                    "maxLength": 4096
                  }
                },
                "minProperties": 1,
                "additionalProperties": false
              },
              "middleware": {
                "type": "number"
              },
              "middlewarePath": {
                "type": "string"
              },
              "middlewareRawSrc": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "has": {
                "description": "An array of requirements that are needed to match",
                "type": "array",
                "maxItems": 16,
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "description": "The type of request element to check",
                          "type": "string",
                          "enum": [
                            "host"
                          ]
                        },
                        "value": {
                          "description": "A value to match against. Can be a string (regex) or a condition operation object",
                          "anyOf": [
                            {
                              "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                              "type": "string",
                              "maxLength": 4096
                            },
                            {
                              "description": "A condition operation object",
                              "type": "object",
                              "properties": {
                                "eq": {
                                  "description": "Equal to",
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 4096
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "neq": {
                                  "description": "Not equal",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "inc": {
                                  "description": "In array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "ninc": {
                                  "description": "Not in array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "pre": {
                                  "description": "Starts with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "suf": {
                                  "description": "Ends with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "re": {
                                  "description": "Regex",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "gt": {
                                  "description": "Greater than",
                                  "type": "number"
                                },
                                "gte": {
                                  "description": "Greater than or equal to",
                                  "type": "number"
                                },
                                "lt": {
                                  "description": "Less than",
                                  "type": "number"
                                },
                                "lte": {
                                  "description": "Less than or equal to",
                                  "type": "number"
                                }
                              },
                              "minProperties": 1,
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "value"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "description": "The type of request element to check",
                          "type": "string",
                          "enum": [
                            "header",
                            "cookie",
                            "query"
                          ]
                        },
                        "key": {
                          "description": "The name of the element contained in the particular type",
                          "type": "string",
                          "maxLength": 4096
                        },
                        "value": {
                          "description": "A value to match against. Can be a string (regex) or a condition operation object",
                          "anyOf": [
                            {
                              "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                              "type": "string",
                              "maxLength": 4096
                            },
                            {
                              "description": "A condition operation object",
                              "type": "object",
                              "properties": {
                                "eq": {
                                  "description": "Equal to",
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 4096
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "neq": {
                                  "description": "Not equal",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "inc": {
                                  "description": "In array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "ninc": {
                                  "description": "Not in array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "pre": {
                                  "description": "Starts with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "suf": {
                                  "description": "Ends with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "re": {
                                  "description": "Regex",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "gt": {
                                  "description": "Greater than",
                                  "type": "number"
                                },
                                "gte": {
                                  "description": "Greater than or equal to",
                                  "type": "number"
                                },
                                "lt": {
                                  "description": "Less than",
                                  "type": "number"
                                },
                                "lte": {
                                  "description": "Less than or equal to",
                                  "type": "number"
                                }
                              },
                              "minProperties": 1,
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "key"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "missing": {
                "description": "An array of requirements that are needed to match",
                "type": "array",
                "maxItems": 16,
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "description": "The type of request element to check",
                          "type": "string",
                          "enum": [
                            "host"
                          ]
                        },
                        "value": {
                          "description": "A value to match against. Can be a string (regex) or a condition operation object",
                          "anyOf": [
                            {
                              "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                              "type": "string",
                              "maxLength": 4096
                            },
                            {
                              "description": "A condition operation object",
                              "type": "object",
                              "properties": {
                                "eq": {
                                  "description": "Equal to",
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 4096
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "neq": {
                                  "description": "Not equal",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "inc": {
                                  "description": "In array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "ninc": {
                                  "description": "Not in array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "pre": {
                                  "description": "Starts with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "suf": {
                                  "description": "Ends with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "re": {
                                  "description": "Regex",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "gt": {
                                  "description": "Greater than",
                                  "type": "number"
                                },
                                "gte": {
                                  "description": "Greater than or equal to",
                                  "type": "number"
                                },
                                "lt": {
                                  "description": "Less than",
                                  "type": "number"
                                },
                                "lte": {
                                  "description": "Less than or equal to",
                                  "type": "number"
                                }
                              },
                              "minProperties": 1,
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "value"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "description": "The type of request element to check",
                          "type": "string",
                          "enum": [
                            "header",
                            "cookie",
                            "query"
                          ]
                        },
                        "key": {
                          "description": "The name of the element contained in the particular type",
                          "type": "string",
                          "maxLength": 4096
                        },
                        "value": {
                          "description": "A value to match against. Can be a string (regex) or a condition operation object",
                          "anyOf": [
                            {
                              "description": "A regular expression used to match thev value. Named groups can be used in the destination.",
                              "type": "string",
                              "maxLength": 4096
                            },
                            {
                              "description": "A condition operation object",
                              "type": "object",
                              "properties": {
                                "eq": {
                                  "description": "Equal to",
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 4096
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "neq": {
                                  "description": "Not equal",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "inc": {
                                  "description": "In array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "ninc": {
                                  "description": "Not in array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "pre": {
                                  "description": "Starts with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "suf": {
                                  "description": "Ends with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "re": {
                                  "description": "Regex",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "gt": {
                                  "description": "Greater than",
                                  "type": "number"
                                },
                                "gte": {
                                  "description": "Greater than or equal to",
                                  "type": "number"
                                },
                                "lt": {
                                  "description": "Less than",
                                  "type": "number"
                                },
                                "lte": {
                                  "description": "Less than or equal to",
                                  "type": "number"
                                }
                              },
                              "minProperties": 1,
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "required": [
                        "type",
                        "key"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "mitigate": {
                "description": "Mitigation action to take on a route",
                "type": "object",
                "properties": {
                  "action": {
                    "description": "The mitigation action to take",
                    "type": "string",
                    "enum": [
                      "challenge",
                      "deny"
                    ]
                  }
                },
                "required": [
                  "action"
                ],
                "additionalProperties": false
              },
              "transforms": {
                "description": "A list of transform rules to adjust the query parameters of a request or HTTP headers of request or response",
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "allOf": [
                    {
                      "if": {
                        "properties": {
                          "op": {
                            "enum": [
                              "append",
                              "set"
                            ]
                          }
                        }
                      },
                      "then": {
                        "required": [
                          "args"
                        ]
                      }
                    },
                    {
                      "if": {
                        "allOf": [
                          {
                            "properties": {
                              "type": {
                                "enum": [
                                  "request.headers",
                                  "response.headers"
                                ]
                              }
                            }
                          },
                          {
                            "properties": {
                              "op": {
                                "enum": [
                                  "set",
                                  "append"
                                ]
                              }
                            }
                          }
                        ]
                      },
                      "then": {
                        "properties": {
                          "target": {
                            "properties": {
                              "key": {
                                "if": {
                                  "type": "string"
                                },
                                "then": {
                                  "pattern": "^[a-zA-Z0-9_-]+$"
                                }
                              }
                            }
                          },
                          "args": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[a-zA-Z0-9_ :;.,\"'?!(){}\\[\\]@<>=+*#$&`|~\\^%/-]+$"
                              },
                              {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "pattern": "^[a-zA-Z0-9_ :;.,\"'?!(){}\\[\\]@<>=+*#$&`|~\\^%/-]+$"
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  ],
                  "required": [
                    "type",
                    "op",
                    "target"
                  ],
                  "properties": {
                    "type": {
                      "description": "The scope of the transform to apply",
                      "type": "string",
                      "enum": [
                        "request.headers",
                        "request.query",
                        "response.headers"
                      ]
                    },
                    "op": {
                      "description": "The operation to perform on the target",
                      "type": "string",
                      "enum": [
                        "append",
                        "set",
                        "delete"
                      ]
                    },
                    "target": {
                      "description": "The target of the transform",
                      "type": "object",
                      "required": [
                        "key"
                      ],
                      "properties": {
                        "key": {
                          "description": "A value to match against. Can be a string or a condition operation object (without regex support)",
                          "anyOf": [
                            {
                              "description": "A valid header name (letters, numbers, hyphens, underscores)",
                              "type": "string",
                              "maxLength": 4096
                            },
                            {
                              "description": "A condition operation object",
                              "type": "object",
                              "properties": {
                                "eq": {
                                  "description": "Equal to",
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "maxLength": 4096
                                    },
                                    {
                                      "type": "number"
                                    }
                                  ]
                                },
                                "neq": {
                                  "description": "Not equal",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "inc": {
                                  "description": "In array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "ninc": {
                                  "description": "Not in array",
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 4096
                                  }
                                },
                                "pre": {
                                  "description": "Starts with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "suf": {
                                  "description": "Ends with",
                                  "type": "string",
                                  "maxLength": 4096
                                },
                                "gt": {
                                  "description": "Greater than",
                                  "type": "number"
                                },
                                "gte": {
                                  "description": "Greater than or equal to",
                                  "type": "number"
                                },
                                "lt": {
                                  "description": "Less than",
                                  "type": "number"
                                },
                                "lte": {
                                  "description": "Less than or equal to",
                                  "type": "number"
                                }
                              },
                              "minProperties": 1,
                              "additionalProperties": false
                            }
                          ]
                        }
                      }
                    },
                    "args": {
                      "description": "The arguments to the operation",
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 4096
                        },
                        {
                          "type": "array",
                          "minItems": 1,
                          "items": {
                            "type": "string",
                            "maxLength": 4096
                          }
                        }
                      ]
                    },
                    "env": {
                      "description": "An array of environment variable names that should be replaced at runtime in the args value",
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 64,
                      "items": {
                        "type": "string",
                        "maxLength": 256
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "env": {
                "description": "An array of environment variable names that should be replaced at runtime in the destination or headers",
                "type": "array",
                "minItems": 1,
                "maxItems": 64,
                "items": {
                  "type": "string",
                  "maxLength": 256
                }
              },
              "respectOriginCacheControl": {
                "description": "When set to true (default), external rewrites will respect the Cache-Control header from the origin. When false, caching is disabled for this rewrite.",
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          {
            "type": "object",
            "deprecated": true,
            "required": [
              "handle"
            ],
            "properties": {
              "handle": {
                "type": "string",
                "maxLength": 32,
                "enum": [
                  "error",
                  "filesystem",
                  "hit",
                  "miss",
                  "resource",
                  "rewrite"
                ]
              }
            },
            "additionalProperties": false
          }
        ]
      }
    },
    "scope": {
      "description": "This property determines the scope (user or team) under which the project will be deployed by Vercel CLI.",
      "type": "string",
      "private": true
    },
    "trailingSlash": {
      "description": "When `false`, visiting a path that ends with a forward slash will respond with a `308` status code and redirect to the path without the trailing slash.",
      "type": "boolean"
    },
    "version": {
      "maximum": 2,
      "minimum": 2,
      "private": true,
      "type": "integer"
    },
    "wildcard": {
      "private": true,
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "value": {
            "maxLength": 1024,
            "minLength": 0,
            "type": "string"
          }
        },
        "required": [
          "domain",
          "value"
        ],
        "additionalProperties": false
      },
      "maxItems": 25,
      "minItems": 1,
      "type": "array"
    },
    "buildCommand": {
      "description": "The build command for this project. When `null` is used this value will be automatically detected",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "ignoreCommand": {
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "devCommand": {
      "description": "The dev command for this project. When `null` is used this value will be automatically detected",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "framework": {
      "description": "The framework that is being used for this project. When `null` is used no framework is selected",
      "type": [
        "null",
        "string"
      ],
      "enum": [
        "blitzjs",
        "nextjs",
        "gatsby",
        "remix",
        "react-router",
        "astro",
        "hexo",
        "eleventy",
        "docusaurus-2",
        "docusaurus",
        "preact",
        "solidstart-1",
        "solidstart",
        "dojo",
        "ember",
        "vue",
        "scully",
        "ionic-angular",
        "angular",
        "polymer",
        "svelte",
        "sveltekit",
        "sveltekit-1",
        "ionic-react",
        "create-react-app",
        "gridsome",
        "umijs",
        "sapper",
        "saber",
        "stencil",
        "nuxtjs",
        "redwoodjs",
        "hugo",
        "jekyll",
        "brunch",
        "middleman",
        "zola",
        "hydrogen",
        "vite",
        "tanstack-start",
        "vitepress",
        "vuepress",
        "parcel",
        "fastapi",
        "flask",
        "fasthtml",
        "django",
        "sanity-v3",
        "sanity",
        "storybook",
        "nitro",
        "hono",
        "express",
        "h3",
        "koa",
        "nestjs",
        "elysia",
        "fastify",
        "xmcp",
        "python",
        "ruby",
        "rust",
        "node",
        "go",
        "services",
        null
      ]
    },
    "installCommand": {
      "description": "The install command for this project. When `null` is used this value will be automatically detected",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "outputDirectory": {
      "description": "The output directory of the project. When `null` is used this value will be automatically detected",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "crons": {
      "description": "An array of cron jobs that should be created for production Deployments.",
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "schedule",
          "path"
        ],
        "properties": {
          "schedule": {
            "type": "string",
            "minLength": 9,
            "maxLength": 256
          },
          "path": {
            "type": "string",
            "maxLength": 512,
            "pattern": "^/.*"
          }
        }
      }
    },
    "relatedProjects": {
      "description": "An array of projectIds to associate with the current project.",
      "type": "array",
      "items": {
        "type": "string",
        "maxItems": 3
      },
      "maxItems": 10
    },
    "fluid": {
      "description": "Enables Fluid compute for the project. It's enabled by default for new projects.",
      "type": "boolean"
    },
    "bunVersion": {
      "description": "Enables Bun for the project and specifies the version to use.",
      "type": "string"
    },
    "experimentalApplications": {
      "private": true,
      "description": "Enables configuration of multiple applications in a single repository. Map of application name to application configuration.",
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "projectId": {
            "description": "Optional Vercel project identifier for this application.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "entrypoint": {
            "description": "Application entrypoint, relative to the project root. Prefer this field for now.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "root": {
            "description": "Root path to the application, relative to the project root. This is used to locate the app manifest.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "framework": {
            "description": "Framework to use for single-service applications.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "deps": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "projectId": {
                  "description": "Optional Vercel project identifier for the dependency target named by the map key.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "env": {
                  "description": "Optional environment variable name to inject for this dependency.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256,
                  "pattern": "^[A-Z][A-Z0-9_]*$"
                }
              },
              "additionalProperties": false
            }
          },
          "services": {
            "description": "Nested services belonging to this application. Map of service name to service configuration.",
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "type": {
                  "description": "Service type: web, cron, or worker. Defaults to web.",
                  "enum": [
                    "web",
                    "cron",
                    "worker"
                  ]
                },
                "entrypoint": {
                  "description": "Entry file for the service, relative to the workspace directory.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "root": {
                  "description": "Root path to the service, relative to the project root. This is used to locate the app manifest.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "workspace": {
                  "description": "Path to the directory containing the service manifest file (package.json, pyproject.toml, etc.). Defaults to \".\" (project root).",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "routePrefix": {
                  "description": "URL prefix for routing (web services only).",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 512
                },
                "subdomain": {
                  "description": "Subdomain for host-based routing (web services only).",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 63
                },
                "framework": {
                  "description": "Framework to use.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "builder": {
                  "description": "Builder to use, e.g. @vercel/node, @vercel/python.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "runtime": {
                  "description": "Specific lambda runtime to use, e.g. nodejs24.x, python3.14.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "buildCommand": {
                  "description": "Build command for the service.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048
                },
                "installCommand": {
                  "description": "Install command for the service.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2048
                },
                "memory": {
                  "description": "Memory allocation in MB (128-10240).",
                  "type": "integer",
                  "minimum": 128,
                  "maximum": 10240
                },
                "maxDuration": {
                  "description": "Max duration in seconds (1-900), or \"max\" to use the maximum allowed by your plan.",
                  "oneOf": [
                    {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 900
                    },
                    {
                      "type": "string",
                      "enum": [
                        "max"
                      ]
                    }
                  ]
                },
                "includeFiles": {
                  "description": "Files to include in bundle.",
                  "oneOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  ]
                },
                "excludeFiles": {
                  "description": "Files to exclude from bundle.",
                  "oneOf": [
                    {
                      "type": "string",
                      "minLength": 1
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      }
                    }
                  ]
                },
                "schedule": {
                  "description": "Cron schedule expression (e.g., \"0 0 * * *\"). Required for cron services.",
                  "type": "string",
                  "minLength": 9,
                  "maxLength": 256
                },
                "topic": {
                  "description": "Topic name for worker subscription.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "topics": {
                  "description": "Multiple topic names for worker subscription.",
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "minItems": 1
                },
                "consumer": {
                  "description": "Consumer group name for worker subscription.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "deps": {
                  "description": "Map of dependency key to dependency configuration. Keys may target an application (for example \"backend\") or an application service (for example \"backend.api\").",
                  "type": "object",
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "projectId": {
                        "description": "Optional Vercel project identifier for the dependency target named by the map key.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256
                      },
                      "env": {
                        "description": "Optional environment variable name to inject for this dependency.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[A-Z][A-Z0-9_]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    "experimentalDeps": {
      "private": true,
      "description": "Defines dependencies for single-service projects. Map of dependency key to dependency configuration.",
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "projectId": {
            "description": "Optional Vercel project identifier for the dependency target named by the map key.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "env": {
            "description": "Optional environment variable name to inject for this dependency.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256,
            "pattern": "^[A-Z][A-Z0-9_]*$"
          }
        },
        "additionalProperties": false
      }
    },
    "experimentalServices": {
      "private": true,
      "description": "Enables configuration of multiple services in a single deployment. Map of service name to service configuration.",
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Service type: web, cron, or worker. Defaults to web.",
            "enum": [
              "web",
              "cron",
              "worker"
            ]
          },
          "entrypoint": {
            "description": "Entry file for the service, relative to the workspace directory.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "root": {
            "description": "Root path to the service, relative to the project root. This is used to locate the app manifest.",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "workspace": {
            "description": "Path to the directory containing the service manifest file (package.json, pyproject.toml, etc.). Defaults to \".\" (project root).",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "routePrefix": {
            "description": "URL prefix for routing (web services only).",
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "subdomain": {
            "description": "Subdomain for host-based routing (web services only).",
            "type": "string",
            "minLength": 1,
            "maxLength": 63
          },
          "framework": {
            "description": "Framework to use.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "builder": {
            "description": "Builder to use, e.g. @vercel/node, @vercel/python.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "runtime": {
            "description": "Specific lambda runtime to use, e.g. nodejs24.x, python3.14.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "buildCommand": {
            "description": "Build command for the service.",
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          },
          "installCommand": {
            "description": "Install command for the service.",
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          },
          "memory": {
            "description": "Memory allocation in MB (128-10240).",
            "type": "integer",
            "minimum": 128,
            "maximum": 10240
          },
          "maxDuration": {
            "description": "Max duration in seconds (1-900), or \"max\" to use the maximum allowed by your plan.",
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 900
              },
              {
                "type": "string",
                "enum": [
                  "max"
                ]
              }
            ]
          },
          "includeFiles": {
            "description": "Files to include in bundle.",
            "oneOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            ]
          },
          "excludeFiles": {
            "description": "Files to exclude from bundle.",
            "oneOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            ]
          },
          "schedule": {
            "description": "Cron schedule expression (e.g., \"0 0 * * *\"). Required for cron services.",
            "type": "string",
            "minLength": 9,
            "maxLength": 256
          },
          "topic": {
            "description": "Topic name for worker subscription.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "topics": {
            "description": "Multiple topic names for worker subscription.",
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "minItems": 1
          },
          "consumer": {
            "description": "Consumer group name for worker subscription.",
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "deps": {
            "description": "Map of dependency key to dependency configuration. Keys may target an application (for example \"backend\") or an application service (for example \"backend.api\").",
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "projectId": {
                  "description": "Optional Vercel project identifier for the dependency target named by the map key.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                },
                "env": {
                  "description": "Optional environment variable name to inject for this dependency.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256,
                  "pattern": "^[A-Z][A-Z0-9_]*$"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    "experimentalServiceGroups": {
      "private": true,
      "description": "Enables grouping of services. Map of service group name to an array of service names belonging to that group.",
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 256
        }
      }
    }
  },
  "additionalProperties": false
}
