{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/roadrunner/versions/1.0.json",
  "description": "Version 1.0 is deprecated. Please, upgrade RR up to version 2",
  "x-lintel": {
    "source": "https://cdn.jsdelivr.net/gh/roadrunner-server/roadrunner@latest/schemas/config/1.0.schema.json",
    "sourceSha256": "7f7615f107a0a1f92a1b73687d8008015ea25ec3c53662addc3815fd837b7657",
    "fileMatch": [
      ".rr*.yml",
      ".rr*.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "env": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        }
      }
    },
    "rpc": {
      "type": "object",
      "properties": {
        "enable": {
          "type": "boolean"
        },
        "listen": {
          "type": "string"
        }
      }
    },
    "metrics": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        },
        "collect": {
          "type": "object",
          "patternProperties": {
            "[a-zA-Z0-9-_]": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "help": {
                  "type": "string"
                },
                "labels": {
                  "type": "array",
                  "items": {}
                },
                "buckets": {
                  "type": "array",
                  "items": {}
                }
              }
            }
          }
        }
      }
    },
    "http": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        },
        "ssl": {
          "type": "object",
          "properties": {
            "port": {
              "type": "integer"
            },
            "redirect": {
              "type": "boolean"
            },
            "cert": {
              "type": "string"
            },
            "key": {
              "type": "string"
            },
            "rootCa": {
              "type": "string"
            }
          }
        },
        "fcgi": {
          "type": "object",
          "properties": {
            "address": {
              "type": "string"
            }
          }
        },
        "http2": {
          "type": "object",
          "properties": {
            "enabled": {
              "type": "boolean"
            },
            "h2c": {
              "type": "boolean"
            },
            "maxConcurrentStreams": {
              "type": "integer"
            }
          }
        },
        "maxRequestSize": {
          "type": "integer"
        },
        "uploads": {
          "type": "object",
          "properties": {
            "forbid": {
              "type": "array",
              "items": {}
            }
          }
        },
        "trustedSubnets": {
          "type": "array",
          "items": {}
        },
        "workers": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "relay": {
              "type": "string"
            },
            "user": {
              "type": "string"
            },
            "pool": {
              "type": "object",
              "properties": {
                "numWorkers": {
                  "type": "integer"
                },
                "maxJobs": {
                  "type": "integer"
                },
                "allocateTimeout": {
                  "type": "integer"
                },
                "destroyTimeout": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "headers": {
      "type": "object",
      "properties": {
        "cors": {
          "type": "object",
          "properties": {
            "allowedOrigin": {
              "type": "string"
            },
            "allowedHeaders": {
              "type": "string"
            },
            "allowedMethods": {
              "type": "string"
            },
            "allowCredentials": {
              "type": "boolean"
            },
            "exposedHeaders": {
              "type": "string"
            },
            "maxAge": {
              "type": "integer"
            }
          }
        },
        "request": {
          "type": "object",
          "patternProperties": {
            "[a-zA-Z0-9-_]": {
              "type": "string"
            }
          }
        },
        "response": {
          "type": "object",
          "patternProperties": {
            "[a-zA-Z0-9-_]": {
              "type": "string"
            }
          }
        }
      }
    },
    "limit": {
      "type": "object",
      "properties": {
        "interval": {
          "type": "integer"
        },
        "services": {
          "type": "object",
          "properties": {
            "http": {
              "type": "object",
              "properties": {
                "maxMemory": {
                  "type": "integer"
                },
                "TTL": {
                  "type": "integer"
                },
                "idleTTL": {
                  "type": "integer"
                },
                "execTTL": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "static": {
      "type": "object",
      "properties": {
        "dir": {
          "type": "string"
        },
        "forbid": {
          "type": "array",
          "items": {}
        }
      }
    },
    "health": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string"
        }
      }
    },
    "reload": {
      "type": "object",
      "properties": {
        "interval": {
          "type": "string"
        },
        "patterns": {
          "type": "array",
          "items": {}
        },
        "services": {
          "type": "object",
          "properties": {
            "http": {
              "type": "object",
              "properties": {
                "dirs": {
                  "type": "array",
                  "items": {}
                },
                "recursive": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    }
  }
}
