{
  "components": {
    "schemas": {
      "Error": {
        "properties": {
          "error": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "The public tenant API. Operator, VM-substrate, debug, and on-host integration routes are excluded.",
    "title": "Kedge REST API",
    "version": "1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/account": {
      "get": {
        "operationId": "get-account",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get the current account",
        "tags": [
          "account"
        ]
      }
    },
    "/account/events": {
      "get": {
        "operationId": "get-account-events",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List events",
        "tags": [
          "account"
        ]
      }
    },
    "/account/tokens": {
      "post": {
        "operationId": "post-account-tokens",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create an API token",
        "tags": [
          "account"
        ]
      }
    },
    "/account/tokens/{name}": {
      "delete": {
        "operationId": "delete-account-tokens-by-name",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete token",
        "tags": [
          "account"
        ]
      }
    },
    "/account/usage": {
      "get": {
        "operationId": "get-account-usage",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get usage",
        "tags": [
          "account"
        ]
      }
    },
    "/account/usage/history": {
      "get": {
        "operationId": "get-account-usage-history",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get history",
        "tags": [
          "account"
        ]
      }
    },
    "/account/webhooks": {
      "get": {
        "operationId": "get-account-webhooks",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List webhooks",
        "tags": [
          "account"
        ]
      },
      "post": {
        "operationId": "post-account-webhooks",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create webhook",
        "tags": [
          "account"
        ]
      }
    },
    "/account/webhooks/{webhookID}": {
      "delete": {
        "operationId": "delete-account-webhooks-by-webhookID",
        "parameters": [
          {
            "in": "path",
            "name": "webhookID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete webhook",
        "tags": [
          "account"
        ]
      }
    },
    "/apps": {
      "get": {
        "operationId": "get-apps",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List apps",
        "tags": [
          "apps"
        ]
      },
      "post": {
        "operationId": "post-apps",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create an app",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/imports": {
      "post": {
        "operationId": "post-apps-imports",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Import a Git repository",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/imports/preview": {
      "get": {
        "operationId": "get-apps-imports-preview",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Preview a Git import",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}": {
      "delete": {
        "operationId": "delete-apps-by-appID",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete app",
        "tags": [
          "apps"
        ]
      },
      "get": {
        "operationId": "get-apps-by-appID",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get app",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/auth/providers": {
      "get": {
        "operationId": "get-apps-by-appID-auth-providers",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List providers",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/auth/sessions/revoke": {
      "post": {
        "operationId": "post-apps-by-appID-auth-sessions-revoke",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create revoke",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/auth/users": {
      "get": {
        "operationId": "get-apps-by-appID-auth-users",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List users",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/auth/users/{userID}/disable": {
      "post": {
        "operationId": "post-apps-by-appID-auth-users-by-userID-disable",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create disable",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/auth/users/{userID}/enable": {
      "post": {
        "operationId": "post-apps-by-appID-auth-users-by-userID-enable",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "userID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create enable",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/database": {
      "delete": {
        "operationId": "delete-apps-by-appID-database",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Detach an app database",
        "tags": [
          "apps"
        ]
      },
      "put": {
        "operationId": "put-apps-by-appID-database",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Attach an app database",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/deploy": {
      "post": {
        "operationId": "post-apps-by-appID-deploy",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Deploy an app",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/deploys": {
      "get": {
        "operationId": "get-apps-by-appID-deploys",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List deploys",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/domains": {
      "get": {
        "operationId": "get-apps-by-appID-domains",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List domains",
        "tags": [
          "apps"
        ]
      },
      "post": {
        "operationId": "post-apps-by-appID-domains",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create domain",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/domains/{domain}": {
      "delete": {
        "operationId": "delete-apps-by-appID-domains-by-domain",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete domain",
        "tags": [
          "apps"
        ]
      },
      "get": {
        "operationId": "get-apps-by-appID-domains-by-domain",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get domain",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/domains/{domain}/verify": {
      "post": {
        "operationId": "post-apps-by-appID-domains-by-domain-verify",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Verify domain",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/env": {
      "get": {
        "operationId": "get-apps-by-appID-env",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get app environment",
        "tags": [
          "apps"
        ]
      },
      "patch": {
        "operationId": "patch-apps-by-appID-env",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Merge app environment",
        "tags": [
          "apps"
        ]
      },
      "put": {
        "operationId": "put-apps-by-appID-env",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Replace app environment",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/env/{key}": {
      "delete": {
        "operationId": "delete-apps-by-appID-env-by-key",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete env",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/expiry": {
      "delete": {
        "operationId": "delete-apps-by-appID-expiry",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Clear app expiry",
        "tags": [
          "apps"
        ]
      },
      "put": {
        "operationId": "put-apps-by-appID-expiry",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Set app expiry",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/fork": {
      "post": {
        "operationId": "post-apps-by-appID-fork",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Fork an app",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/logs": {
      "get": {
        "operationId": "get-apps-by-appID-logs",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get app logs",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/members": {
      "get": {
        "operationId": "get-apps-by-appID-members",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List members",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/members/{ordinal}/migrate": {
      "post": {
        "operationId": "post-apps-by-appID-members-by-ordinal-migrate",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ordinal",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Migrate member",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/metrics/{path}": {
      "get": {
        "operationId": "get-apps-by-appID-metrics-by-path",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Query app metrics",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/previews": {
      "get": {
        "operationId": "get-apps-by-appID-previews",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List previews",
        "tags": [
          "apps"
        ]
      },
      "post": {
        "operationId": "post-apps-by-appID-previews",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create preview",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/previews/{ref}": {
      "delete": {
        "operationId": "delete-apps-by-appID-previews-by-ref",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete preview",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/previews/{ref}/deploy": {
      "post": {
        "operationId": "post-apps-by-appID-previews-by-ref-deploy",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Deploy preview",
        "tags": [
          "apps"
        ]
      }
    },
    "/apps/{appID}/rollback": {
      "post": {
        "operationId": "post-apps-by-appID-rollback",
        "parameters": [
          {
            "in": "path",
            "name": "appID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Roll back an app",
        "tags": [
          "apps"
        ]
      }
    },
    "/builds": {
      "post": {
        "operationId": "post-builds",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create build",
        "tags": [
          "builds"
        ]
      }
    },
    "/builds/{buildID}": {
      "get": {
        "operationId": "get-builds-by-buildID",
        "parameters": [
          {
            "in": "path",
            "name": "buildID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get build",
        "tags": [
          "builds"
        ]
      }
    },
    "/builds/{buildID}/logs": {
      "get": {
        "operationId": "get-builds-by-buildID-logs",
        "parameters": [
          {
            "in": "path",
            "name": "buildID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get logs",
        "tags": [
          "builds"
        ]
      }
    },
    "/databases": {
      "get": {
        "operationId": "get-databases",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List databases",
        "tags": [
          "data"
        ]
      },
      "post": {
        "operationId": "post-databases",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create database",
        "tags": [
          "data"
        ]
      }
    },
    "/databases/{name}": {
      "delete": {
        "operationId": "delete-databases-by-name",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete database",
        "tags": [
          "data"
        ]
      }
    },
    "/deploys/{deployID}": {
      "get": {
        "operationId": "get-deploys-by-deployID",
        "parameters": [
          {
            "in": "path",
            "name": "deployID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Get deploy",
        "tags": [
          "deploys"
        ]
      }
    },
    "/domains": {
      "get": {
        "operationId": "get-domains",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List domains",
        "tags": [
          "domains"
        ]
      },
      "post": {
        "operationId": "post-domains",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Create domain",
        "tags": [
          "domains"
        ]
      }
    },
    "/domains/search": {
      "get": {
        "operationId": "get-domains-search",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Search domains",
        "tags": [
          "domains"
        ]
      }
    },
    "/domains/{domain}/autorenew": {
      "post": {
        "operationId": "post-domains-by-domain-autorenew",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Set auto-renew for domain",
        "tags": [
          "domains"
        ]
      }
    },
    "/domains/{domain}/renew": {
      "post": {
        "operationId": "post-domains-by-domain-renew",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Renew domain",
        "tags": [
          "domains"
        ]
      }
    },
    "/eval": {
      "post": {
        "operationId": "post-eval",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Evaluate one-shot code",
        "tags": [
          "sandboxes"
        ]
      }
    },
    "/events": {
      "get": {
        "operationId": "get-events",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List or follow events",
        "tags": [
          "events"
        ]
      }
    },
    "/health": {
      "get": {
        "operationId": "get-health",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [],
        "summary": "Check API health",
        "tags": [
          "system"
        ]
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "get-openapi-json",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [],
        "summary": "Get the OpenAPI document",
        "tags": [
          "system"
        ]
      }
    },
    "/runtimes": {
      "get": {
        "operationId": "get-runtimes",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List runtimes",
        "tags": [
          "sandboxes"
        ]
      }
    },
    "/sandbox/exec": {
      "post": {
        "operationId": "post-sandbox-exec",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Run a sandbox command",
        "tags": [
          "sandboxes"
        ]
      }
    },
    "/volumes": {
      "get": {
        "operationId": "get-volumes",
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "List volumes",
        "tags": [
          "data"
        ]
      }
    },
    "/volumes/{ref}": {
      "delete": {
        "operationId": "delete-volumes-by-ref",
        "parameters": [
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "description": "Success"
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "JSON error"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Delete volume",
        "tags": [
          "data"
        ]
      }
    }
  },
  "servers": [
    {
      "url": "/api"
    }
  ],
  "tags": [
    {
      "name": "account"
    },
    {
      "name": "apps"
    },
    {
      "name": "deploys"
    },
    {
      "name": "builds"
    },
    {
      "name": "data"
    },
    {
      "name": "domains"
    },
    {
      "name": "sandboxes"
    },
    {
      "name": "events"
    },
    {
      "name": "system"
    }
  ]
}