{
  "components": {
    "schemas": {
      "Error": {
        "properties": {
          "error": {
            "properties": {
              "code": {
                "type": "string"
              },
              "fields": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "message": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "personalToken": {
        "bearerFormat": "tgwp_ opaque token",
        "description": "Use Authorization: Bearer \u003ctoken\u003e. Valid personal tokens do not require cookies or X-CSRF-Token. Never put tokens in URLs.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "externalDocs": {
    "description": "Quick start, permissions, examples and endpoint catalog (RU/EN).",
    "url": "https://tgproxypanel.com/en/api/"
  },
  "info": {
    "description": "Personal API tokens automate your own installed panel. Create a token in Settings → API tokens. The bearer secret is shown once. Expired or revoked tokens return 401; missing scopes or insufficient current account roles return 403. Administrator management, passwords, TOTP, backups, personal token management and subscription service credentials require browser sessions and are not included in this automation contract.",
    "title": "TGProxy Panel management API",
    "version": "1"
  },
  "openapi": "3.0.3",
  "paths": {
    "/api/v1/alerts": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_alerts",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List alerts",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/alerts/resolve": {
      "post": {
        "description": "Requires scope `monitoring:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_alerts_resolve",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ids": {
                    "items": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Resolve alerts",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:write"
      }
    },
    "/api/v1/alerts/{id}/resolve": {
      "post": {
        "description": "Requires scope `monitoring:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_alerts_id_resolve",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Resolve alert",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:write"
      }
    },
    "/api/v1/audit": {
      "get": {
        "description": "Requires scope `audit:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_audit",
        "parameters": [
          {
            "description": "One-based page number.",
            "in": "query",
            "name": "page",
            "schema": {
              "default": 1,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Invalid values fall back to 50.",
            "in": "query",
            "name": "per_page",
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Action prefix.",
            "in": "query",
            "name": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Exact administrator username.",
            "in": "query",
            "name": "user",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List audit events",
        "tags": [
          "audit"
        ],
        "x-owner-only": false,
        "x-required-scope": "audit:read"
      }
    },
    "/api/v1/branding/profiles": {
      "get": {
        "description": "Requires scope `branding:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_branding_profiles",
        "parameters": [
          {
            "description": "1 requests profiles from the online node.",
            "in": "query",
            "name": "live",
            "schema": {
              "enum": [
                "0",
                "1"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List branding profiles",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:read"
      },
      "post": {
        "description": "Requires scope `branding:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_branding_profiles",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Create branding profile",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:write"
      }
    },
    "/api/v1/branding/profiles/{id}": {
      "delete": {
        "description": "Requires scope `branding:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_branding_profiles_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Delete branding profile",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:write"
      },
      "put": {
        "description": "Requires scope `branding:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_branding_profiles_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "accent_color": {
                    "type": "string"
                  },
                  "custom_css": {
                    "type": "string"
                  },
                  "footer_text": {
                    "type": "string"
                  },
                  "login_text": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "panel_name": {
                    "type": "string"
                  },
                  "primary_color": {
                    "type": "string"
                  },
                  "support_link": {
                    "type": "string"
                  },
                  "theme_default": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update branding profile",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:write"
      }
    },
    "/api/v1/branding/profiles/{id}/activate": {
      "post": {
        "description": "Requires scope `branding:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_branding_profiles_id_activate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Activate branding profile",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:write"
      }
    },
    "/api/v1/branding/profiles/{id}/upload": {
      "post": {
        "description": "Requires scope `branding:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_branding_profiles_id_upload",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Asset type.",
            "in": "query",
            "name": "kind",
            "required": true,
            "schema": {
              "enum": [
                "logo",
                "logo_dark",
                "favicon",
                "login_bg"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Upload branding asset",
        "tags": [
          "branding"
        ],
        "x-owner-only": false,
        "x-required-scope": "branding:write"
      }
    },
    "/api/v1/dashboard/summary": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_dashboard_summary",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get dashboard summary",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/dashboard/trends": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_dashboard_trends",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get dashboard trends",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/fleet/updates": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_fleet_updates",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List fleet updates",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      },
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_fleet_updates",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "node_ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "maxItems": 100,
                    "minItems": 1,
                    "type": "array"
                  }
                },
                "required": [
                  "node_ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Start fleet update",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/fleet/updates/{id}/stop": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_fleet_updates_id_stop",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Stop fleet update",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/keys": {
      "get": {
        "description": "Requires scope `users:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys",
        "parameters": [
          {
            "description": "One-based page number.",
            "in": "query",
            "name": "page",
            "schema": {
              "default": 1,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "Invalid values fall back to 50.",
            "in": "query",
            "name": "per_page",
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "User filter; node is a node UUID; type is PERSONAL or SHARED.",
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "User filter; node is a node UUID; type is PERSONAL or SHARED.",
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "User filter; node is a node UUID; type is PERSONAL or SHARED.",
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "User filter; node is a node UUID; type is PERSONAL or SHARED.",
            "in": "query",
            "name": "state",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "User filter; node is a node UUID; type is PERSONAL or SHARED.",
            "in": "query",
            "name": "node",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "properties": {
                          "carrier_mode": {
                            "type": "string"
                          },
                          "client_support": {
                            "additionalProperties": {
                              "type": "string"
                            },
                            "type": "object"
                          },
                          "created_at": {
                            "format": "date-time",
                            "type": "string"
                          },
                          "disabled_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "expires_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          },
                          "last_seen_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "limits": {},
                          "links": {
                            "items": {
                              "properties": {
                                "domain": {
                                  "type": "string"
                                },
                                "hostname": {
                                  "type": "string"
                                },
                                "kind": {
                                  "type": "string"
                                },
                                "node_id": {
                                  "format": "uuid",
                                  "type": "string"
                                },
                                "node_name": {
                                  "type": "string"
                                },
                                "tg": {
                                  "type": "string"
                                },
                                "tme": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "live": {
                            "properties": {
                              "connections": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "devices": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "devices_15m": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "ips": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "online": {
                                "type": "boolean"
                              }
                            },
                            "type": "object"
                          },
                          "nodes": {
                            "items": {
                              "properties": {
                                "hostname": {
                                  "type": "string"
                                },
                                "node_id": {
                                  "format": "uuid",
                                  "type": "string"
                                },
                                "node_name": {
                                  "type": "string"
                                },
                                "profile_sync": {
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array"
                          },
                          "note": {
                            "type": "string"
                          },
                          "owner_label": {
                            "type": "string"
                          },
                          "revoked_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "secret": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "sub_slug": {
                            "nullable": true,
                            "type": "string"
                          },
                          "subscription_active": {
                            "type": "boolean"
                          },
                          "subscription_legacy": {
                            "type": "boolean"
                          },
                          "subscription_short_url": {
                            "nullable": true,
                            "type": "string"
                          },
                          "subscription_url": {
                            "nullable": true,
                            "type": "string"
                          },
                          "telemt_limits": {},
                          "traffic_30d": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "type": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "page": {
                      "type": "integer"
                    },
                    "per_page": {
                      "type": "integer"
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List users",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:read"
      },
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "carrier_mode": {
                    "default": "https",
                    "enum": [
                      "https",
                      "https-lanes",
                      "websocket",
                      "websocket-lanes"
                    ],
                    "type": "string"
                  },
                  "expires_at": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "limits": {
                    "properties": {
                      "max_backend_dials_in_flight": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_pending_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_sessions": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "node_ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  },
                  "note": {
                    "type": "string"
                  },
                  "owner_label": {
                    "type": "string"
                  },
                  "sub_slug": {
                    "type": "string"
                  },
                  "telemt_limits": {
                    "properties": {
                      "data_quota_bytes": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "data_quota_period": {
                        "type": "string"
                      },
                      "max_tcp_conns": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_unique_ips": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_down_bps": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_up_bps": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": {
                    "enum": [
                      "PERSONAL",
                      "SHARED"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "label",
                  "type",
                  "node_ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Create user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/batch": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_batch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "carrier_mode": {
                    "default": "https",
                    "enum": [
                      "https",
                      "https-lanes",
                      "websocket",
                      "websocket-lanes"
                    ],
                    "type": "string"
                  },
                  "count": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "expires_at": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "limits": {
                    "properties": {
                      "max_backend_dials_in_flight": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_pending_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_sessions": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "node_ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  },
                  "note": {
                    "type": "string"
                  },
                  "owner_label": {
                    "type": "string"
                  },
                  "prefix": {
                    "type": "string"
                  },
                  "sub_slug": {
                    "type": "string"
                  },
                  "telemt_limits": {
                    "properties": {
                      "data_quota_bytes": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "data_quota_period": {
                        "type": "string"
                      },
                      "max_tcp_conns": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_unique_ips": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_down_bps": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_up_bps": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": {
                    "enum": [
                      "PERSONAL",
                      "SHARED"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "prefix",
                  "count",
                  "type",
                  "node_ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Create users in batch",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/bulk": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_bulk",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "action": {
                    "enum": [
                      "revoke",
                      "delete",
                      "disable",
                      "enable",
                      "extend"
                    ],
                    "type": "string"
                  },
                  "expires_at": {
                    "description": "Required for extend.",
                    "format": "date-time",
                    "type": "string"
                  },
                  "ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "maxItems": 500,
                    "minItems": 1,
                    "type": "array"
                  }
                },
                "required": [
                  "action",
                  "ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Perform bulk user action",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/import": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_import",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "carrier_mode": {
                    "default": "https",
                    "enum": [
                      "https",
                      "https-lanes",
                      "websocket",
                      "websocket-lanes"
                    ],
                    "type": "string"
                  },
                  "expires_at": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "items": {
                    "items": {
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "owner_label": {
                          "type": "string"
                        },
                        "secret": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "label",
                        "secret"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "limits": {
                    "properties": {
                      "max_backend_dials_in_flight": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_pending_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_sessions": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "node_ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  },
                  "note": {
                    "type": "string"
                  },
                  "owner_label": {
                    "type": "string"
                  },
                  "sub_slug": {
                    "type": "string"
                  },
                  "telemt_limits": {
                    "properties": {
                      "data_quota_bytes": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "data_quota_period": {
                        "type": "string"
                      },
                      "max_tcp_conns": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_unique_ips": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_down_bps": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_up_bps": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "type": {
                    "enum": [
                      "PERSONAL",
                      "SHARED"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "items",
                  "type",
                  "node_ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Import users",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/summary": {
      "get": {
        "description": "Requires scope `users:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_summary",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user summary",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:read"
      }
    },
    "/api/v1/keys/{id}": {
      "delete": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_keys_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Delete user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      },
      "get": {
        "description": "Requires scope `users:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:read"
      },
      "patch": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "patch_api_v1_keys_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "carrier_mode": {
                    "type": "string"
                  },
                  "clear_expiry": {
                    "description": "true removes the expiration; null expires_at alone preserves it.",
                    "type": "boolean"
                  },
                  "expires_at": {
                    "format": "date-time",
                    "nullable": true,
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "limits": {
                    "properties": {
                      "max_backend_dials_in_flight": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_pending_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_sessions": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_streams_per_session": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_sessions_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_burst": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "new_streams_per_minute": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "note": {
                    "type": "string"
                  },
                  "owner_label": {
                    "type": "string"
                  },
                  "sub_slug": {
                    "type": "string"
                  },
                  "telemt_limits": {
                    "properties": {
                      "data_quota_bytes": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "data_quota_period": {
                        "type": "string"
                      },
                      "max_tcp_conns": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "max_unique_ips": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_down_bps": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "rate_limit_up_bps": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/bindings": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_bindings",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "node_id": {
                    "format": "uuid",
                    "type": "string"
                  }
                },
                "required": [
                  "node_id"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Bind user to node",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/bindings/{node}": {
      "delete": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_keys_id_bindings_node",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "node",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Unbind user from node",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/disable": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_disable",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Disable user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/enable": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_enable",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Enable user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/links": {
      "get": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id_links",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user proxy links",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/presence": {
      "get": {
        "description": "Requires scope `users:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id_presence",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Series window, split into 96 buckets.",
            "in": "query",
            "name": "range",
            "schema": {
              "default": "24h",
              "enum": [
                "24h",
                "7d"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get people online for a user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:read"
      }
    },
    "/api/v1/keys/{id}/qr": {
      "get": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id_qr",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Required target node UUID.",
            "in": "query",
            "name": "node",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "WEB link or Fake-TLS link supported by the node.",
            "in": "query",
            "name": "kind",
            "schema": {
              "default": "web",
              "enum": [
                "web",
                "tls"
              ],
              "type": "string"
            }
          },
          {
            "description": "Optional Fake-TLS masking domain.",
            "in": "query",
            "name": "domain",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "QR image dimensions; invalid values fall back to 256.",
            "in": "query",
            "name": "size",
            "schema": {
              "default": 256,
              "maximum": 1024,
              "minimum": 128,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user proxy QR code",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/revoke": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_revoke",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Revoke user",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/rotate": {
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_rotate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "carrier_mode": {
                      "type": "string"
                    },
                    "client_support": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "type": "object"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "disabled_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "limits": {},
                    "links": {
                      "items": {
                        "properties": {
                          "domain": {
                            "type": "string"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "kind": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "tg": {
                            "type": "string"
                          },
                          "tme": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "live": {
                      "properties": {
                        "connections": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "devices_15m": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "ips": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "online": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    },
                    "nodes": {
                      "items": {
                        "properties": {
                          "hostname": {
                            "type": "string"
                          },
                          "node_id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "node_name": {
                            "type": "string"
                          },
                          "profile_sync": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "note": {
                      "type": "string"
                    },
                    "owner_label": {
                      "type": "string"
                    },
                    "revoked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "sub_slug": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_active": {
                      "type": "boolean"
                    },
                    "subscription_legacy": {
                      "type": "boolean"
                    },
                    "subscription_short_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "subscription_url": {
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_limits": {},
                    "traffic_30d": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "type": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Rotate user secret",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/stats": {
      "get": {
        "description": "Requires scope `users:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id_stats",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user statistics",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:read"
      }
    },
    "/api/v1/keys/{id}/subscription": {
      "delete": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_keys_id_subscription",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Revoke user subscription",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      },
      "post": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_keys_id_subscription",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "qr_data_uri": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Issue user subscription",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/keys/{id}/subscription/qr": {
      "get": {
        "description": "Requires scope `users:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_keys_id_subscription_qr",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "QR image dimensions; invalid values fall back to 256.",
            "in": "query",
            "name": "size",
            "schema": {
              "default": 256,
              "maximum": 1024,
              "minimum": 128,
              "type": "integer"
            }
          },
          {
            "description": "1 uses the short subscription slug when configured.",
            "in": "query",
            "name": "short",
            "schema": {
              "enum": [
                "0",
                "1"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "image/png": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get user subscription QR code",
        "tags": [
          "users"
        ],
        "x-owner-only": false,
        "x-required-scope": "users:write"
      }
    },
    "/api/v1/monitoring/nodes/{id}/series": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_monitoring_nodes_id_series",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node monitoring series",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/monitoring/overview": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_monitoring_overview",
        "parameters": [
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Aggregation step in seconds; default chosen from range span.",
            "in": "query",
            "name": "step",
            "schema": {
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get monitoring overview",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/monitoring/web/carriers": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_monitoring_web_carriers",
        "parameters": [
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get fleet web carriers",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/nodes": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "items": {
                      "items": {
                        "properties": {
                          "acme_email": {
                            "type": "string"
                          },
                          "ad_tag": {
                            "type": "string"
                          },
                          "agent_version": {
                            "type": "string"
                          },
                          "classic_port": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "connections": {
                            "format": "int64",
                            "nullable": true,
                            "type": "integer"
                          },
                          "created_at": {
                            "format": "date-time",
                            "type": "string"
                          },
                          "dirty": {
                            "type": "boolean"
                          },
                          "dirty_since": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "engine": {
                            "type": "string"
                          },
                          "health": {
                            "additionalProperties": {},
                            "type": "object"
                          },
                          "hostname": {
                            "type": "string"
                          },
                          "id": {
                            "format": "uuid",
                            "type": "string"
                          },
                          "last_apply_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "last_check": {},
                          "last_seen_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "max_profiles": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          },
                          "online": {
                            "type": "boolean"
                          },
                          "people_online": {
                            "format": "int64",
                            "nullable": true,
                            "type": "integer"
                          },
                          "profile_count": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "public_ip": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "telemt_build": {
                            "type": "string"
                          },
                          "telemt_capabilities": {},
                          "telemt_capabilities_checked_at": {
                            "format": "date-time",
                            "nullable": true,
                            "type": "string"
                          },
                          "telemt_update_available": {
                            "type": "string"
                          },
                          "telemt_version": {
                            "type": "string"
                          },
                          "tls_domain": {
                            "type": "string"
                          },
                          "tls_domains": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "tproxy_version": {
                            "type": "string"
                          },
                          "web_capacity": {
                            "format": "int64",
                            "nullable": true,
                            "type": "integer"
                          },
                          "web_capacity_supported": {
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List nodes",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      },
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "acme_email": {
                    "type": "string"
                  },
                  "classic_port": {
                    "default": 8443,
                    "maximum": 65535,
                    "minimum": 1024,
                    "type": "integer"
                  },
                  "engine": {
                    "default": "telemt",
                    "enum": [
                      "telemt",
                      "tproxy"
                    ],
                    "type": "string"
                  },
                  "hostname": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "public_ip": {
                    "type": "string"
                  },
                  "tls_domain": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "hostname",
                  "acme_email"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "expires_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "install_command": {
                      "type": "string"
                    },
                    "node": {
                      "properties": {
                        "acme_email": {
                          "type": "string"
                        },
                        "ad_tag": {
                          "type": "string"
                        },
                        "agent_version": {
                          "type": "string"
                        },
                        "classic_port": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "connections": {
                          "format": "int64",
                          "nullable": true,
                          "type": "integer"
                        },
                        "created_at": {
                          "format": "date-time",
                          "type": "string"
                        },
                        "dirty": {
                          "type": "boolean"
                        },
                        "dirty_since": {
                          "format": "date-time",
                          "nullable": true,
                          "type": "string"
                        },
                        "engine": {
                          "type": "string"
                        },
                        "health": {
                          "additionalProperties": {},
                          "type": "object"
                        },
                        "hostname": {
                          "type": "string"
                        },
                        "id": {
                          "format": "uuid",
                          "type": "string"
                        },
                        "last_apply_at": {
                          "format": "date-time",
                          "nullable": true,
                          "type": "string"
                        },
                        "last_check": {},
                        "last_seen_at": {
                          "format": "date-time",
                          "nullable": true,
                          "type": "string"
                        },
                        "max_profiles": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "name": {
                          "type": "string"
                        },
                        "online": {
                          "type": "boolean"
                        },
                        "people_online": {
                          "format": "int64",
                          "nullable": true,
                          "type": "integer"
                        },
                        "profile_count": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "public_ip": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string"
                        },
                        "telemt_build": {
                          "type": "string"
                        },
                        "telemt_capabilities": {},
                        "telemt_capabilities_checked_at": {
                          "format": "date-time",
                          "nullable": true,
                          "type": "string"
                        },
                        "telemt_update_available": {
                          "type": "string"
                        },
                        "telemt_version": {
                          "type": "string"
                        },
                        "tls_domain": {
                          "type": "string"
                        },
                        "tls_domains": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "tproxy_version": {
                          "type": "string"
                        },
                        "web_capacity": {
                          "format": "int64",
                          "nullable": true,
                          "type": "integer"
                        },
                        "web_capacity_supported": {
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Create node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/order": {
      "put": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_nodes_order",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ids": {
                    "items": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "ids"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Reorder nodes",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/preflight/dns": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_preflight_dns",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "hostname": {
                    "type": "string"
                  },
                  "public_ip": {
                    "type": "string"
                  }
                },
                "required": [
                  "hostname"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Check node DNS",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}": {
      "delete": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_nodes_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Delete node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      },
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "acme_email": {
                      "type": "string"
                    },
                    "ad_tag": {
                      "type": "string"
                    },
                    "agent_version": {
                      "type": "string"
                    },
                    "classic_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "connections": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "dirty": {
                      "type": "boolean"
                    },
                    "dirty_since": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "health": {
                      "additionalProperties": {},
                      "type": "object"
                    },
                    "hostname": {
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "last_apply_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "last_check": {},
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "max_profiles": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "name": {
                      "type": "string"
                    },
                    "online": {
                      "type": "boolean"
                    },
                    "people_online": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "profile_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "public_ip": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "telemt_build": {
                      "type": "string"
                    },
                    "telemt_capabilities": {},
                    "telemt_capabilities_checked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_update_available": {
                      "type": "string"
                    },
                    "telemt_version": {
                      "type": "string"
                    },
                    "tls_domain": {
                      "type": "string"
                    },
                    "tls_domains": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "tproxy_version": {
                      "type": "string"
                    },
                    "web_capacity": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "web_capacity_supported": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      },
      "patch": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "patch_api_v1_nodes_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "acme_email": {
                    "nullable": true,
                    "type": "string"
                  },
                  "ad_tag": {
                    "nullable": true,
                    "type": "string"
                  },
                  "classic_port": {
                    "format": "int64",
                    "nullable": true,
                    "type": "integer"
                  },
                  "max_profiles": {
                    "format": "int64",
                    "nullable": true,
                    "type": "integer"
                  },
                  "name": {
                    "nullable": true,
                    "type": "string"
                  },
                  "public_ip": {
                    "nullable": true,
                    "type": "string"
                  },
                  "tls_domain": {
                    "nullable": true,
                    "type": "string"
                  },
                  "tls_domains": {
                    "items": {
                      "type": "string"
                    },
                    "nullable": true,
                    "type": "array"
                  },
                  "web_capacity": {
                    "description": "Simultaneous WEB sessions the telemt node admits; each preset also sets the matching [web.limits] and server.max_connections. Applying a change restarts telemt. Requires agent \u003e=2.17.4 and Telemt \u003e=3.5.14.",
                    "enum": [
                      128,
                      256,
                      512,
                      1024,
                      2048
                    ],
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "acme_email": {
                      "type": "string"
                    },
                    "ad_tag": {
                      "type": "string"
                    },
                    "agent_version": {
                      "type": "string"
                    },
                    "classic_port": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "connections": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "created_at": {
                      "format": "date-time",
                      "type": "string"
                    },
                    "dirty": {
                      "type": "boolean"
                    },
                    "dirty_since": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "health": {
                      "additionalProperties": {},
                      "type": "object"
                    },
                    "hostname": {
                      "type": "string"
                    },
                    "id": {
                      "format": "uuid",
                      "type": "string"
                    },
                    "last_apply_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "last_check": {},
                    "last_seen_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "max_profiles": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "name": {
                      "type": "string"
                    },
                    "online": {
                      "type": "boolean"
                    },
                    "people_online": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "profile_count": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "public_ip": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "telemt_build": {
                      "type": "string"
                    },
                    "telemt_capabilities": {},
                    "telemt_capabilities_checked_at": {
                      "format": "date-time",
                      "nullable": true,
                      "type": "string"
                    },
                    "telemt_update_available": {
                      "type": "string"
                    },
                    "telemt_version": {
                      "type": "string"
                    },
                    "tls_domain": {
                      "type": "string"
                    },
                    "tls_domains": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "tproxy_version": {
                      "type": "string"
                    },
                    "web_capacity": {
                      "format": "int64",
                      "nullable": true,
                      "type": "integer"
                    },
                    "web_capacity_supported": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/apply": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_apply",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "queued": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Apply node configuration",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/blocklist": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_blocklist",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node blocklist",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      },
      "put": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_nodes_id_blocklist",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "entries": {
                    "items": {
                      "properties": {
                        "note": {
                          "type": "string"
                        },
                        "prefix": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "prefix"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "revision": {
                    "format": "int64",
                    "nullable": true,
                    "type": "integer"
                  }
                },
                "required": [
                  "entries"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update node blocklist",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/check": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_check",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Check node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/diagnostics": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_diagnostics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Maximum history entries.",
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List node diagnostics",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/diagnostics/web": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_diagnostics_web",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Run node web diagnostics",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/health": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_health",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node health",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/install-command": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_install_command",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "command": {
                      "type": "string"
                    },
                    "expires_at": {
                      "format": "date-time",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Issue node install command",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/jobs": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_jobs",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Maximum history entries.",
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List node apply jobs",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/logs": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_logs",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Comma-separated systemd service names; defaults to telemt or tproxy-server for the node engine.",
            "in": "query",
            "name": "services",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Initial log lines; invalid values fall back to 200.",
            "in": "query",
            "name": "lines",
            "schema": {
              "default": 200,
              "maximum": 2000,
              "minimum": 1,
              "type": "integer"
            }
          },
          {
            "description": "1 streams new lines as server-sent events.",
            "in": "query",
            "name": "follow",
            "schema": {
              "enum": [
                "0",
                "1"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Stream node logs",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/metrics": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_metrics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node metrics",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/probes": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_probes",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List node probes",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/profiles": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_profiles",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "1 requests profiles from the online node.",
            "in": "query",
            "name": "live",
            "schema": {
              "enum": [
                "0",
                "1"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List node profiles",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/registration-secret": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_registration_secret",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address": {
                      "type": "string"
                    },
                    "secret": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node registration secret",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/reliability": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_reliability",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node reliability",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      },
      "put": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_nodes_id_reliability",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "automatic_failover": {
                    "type": "boolean"
                  },
                  "cooldown_seconds": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "egress": {
                    "type": "string"
                  },
                  "failure_threshold": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "maintenance": {
                    "type": "boolean"
                  },
                  "max_actions_hour": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "recovery": {
                    "type": "string"
                  },
                  "reserve_socks_address": {
                    "type": "string"
                  },
                  "restore_primary": {
                    "type": "boolean"
                  },
                  "socks_address": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update node reliability",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/restart": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_restart",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Restart node",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/site": {
      "get": {
        "description": "Requires scope `sites:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_site",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node site",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:read"
      },
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_site",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "template_id": {
                    "format": "uuid",
                    "type": "string"
                  }
                },
                "required": [
                  "template_id"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Assign node site",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/nodes/{id}/site/preview": {
      "get": {
        "description": "Requires scope `sites:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_site_preview",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Preview node site",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:read"
      }
    },
    "/api/v1/nodes/{id}/site/upstream": {
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_site_upstream",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "origin": {
                    "type": "string"
                  }
                },
                "required": [
                  "origin"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Assign node upstream site",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/nodes/{id}/stats": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_stats",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node statistics",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/telemt-update": {
      "get": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_telemt_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Maximum history entries.",
            "in": "query",
            "name": "limit",
            "schema": {
              "default": 20,
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List node update jobs",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      },
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_telemt_update",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "drain_timeout_secs": {
                    "format": "int64",
                    "type": "integer"
                  },
                  "require_drain": {
                    "nullable": true,
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update node telemt",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/web-policy": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_web_policy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "advanced_supported": {
                      "type": "boolean"
                    },
                    "applied_base_path": {
                      "type": "string"
                    },
                    "default": {
                      "properties": {
                        "base_path": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier": {
                          "type": "string"
                        },
                        "carrier_learning": {
                          "type": "boolean"
                        },
                        "carrier_method": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier_negotiation_aggressiveness": {
                          "type": "string"
                        },
                        "carriers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "conveyor": {
                          "nullable": true,
                          "type": "boolean"
                        },
                        "decoy_resolve": {
                          "nullable": true,
                          "type": "string"
                        },
                        "overload": {
                          "properties": {
                            "connection_capacity_action": {
                              "type": "string"
                            },
                            "preset": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "preset": {
                          "type": "string"
                        },
                        "timeouts": {
                          "properties": {
                            "bridge_request_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "bridge_retry_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_health_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_learning_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_negotiation_deadlines_secs": {
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "carrier_probe_coalesce_ms": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "overridden": {
                      "type": "boolean"
                    },
                    "policy": {
                      "properties": {
                        "base_path": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier": {
                          "type": "string"
                        },
                        "carrier_learning": {
                          "type": "boolean"
                        },
                        "carrier_method": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier_negotiation_aggressiveness": {
                          "type": "string"
                        },
                        "carriers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "conveyor": {
                          "nullable": true,
                          "type": "boolean"
                        },
                        "decoy_resolve": {
                          "nullable": true,
                          "type": "string"
                        },
                        "overload": {
                          "properties": {
                            "connection_capacity_action": {
                              "type": "string"
                            },
                            "preset": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "preset": {
                          "type": "string"
                        },
                        "timeouts": {
                          "properties": {
                            "bridge_request_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "bridge_retry_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_health_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_learning_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_negotiation_deadlines_secs": {
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "carrier_probe_coalesce_ms": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node web policy",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      },
      "put": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_nodes_id_web_policy",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Partial update: omitted fields preserve the current policy; validation uses the merged policy. Advanced fields require Telemt \u003e=3.5.14 and agent \u003e=2.17.0. Null leaves the corresponding engine setting unmanaged. Links use only the agent-confirmed applied path after successful reload.",
                "properties": {
                  "base_path": {
                    "description": "Canonical path without edge slashes; empty string explicitly selects root, null leaves it unmanaged. Update HTTPS routing and external probe base_path when changing it.",
                    "maxLength": 128,
                    "nullable": true,
                    "pattern": "^([A-Za-z0-9][A-Za-z0-9_-]*(/[A-Za-z0-9][A-Za-z0-9_-]*)*)?$",
                    "type": "string"
                  },
                  "carrier": {
                    "type": "string"
                  },
                  "carrier_learning": {
                    "type": "boolean"
                  },
                  "carrier_method": {
                    "description": "HTTP bridge carrier method; null leaves the engine setting unmanaged.",
                    "enum": [
                      "post",
                      "put",
                      null
                    ],
                    "nullable": true,
                    "type": "string"
                  },
                  "carrier_negotiation_aggressiveness": {
                    "type": "string"
                  },
                  "carriers": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "conveyor": {
                    "description": "HTTP request sequencing; explicit false disables it, null leaves it unmanaged.",
                    "nullable": true,
                    "type": "boolean"
                  },
                  "decoy_resolve": {
                    "description": "Startup resolves and pins validated private DNS addresses before activation; never requires a literal private/loopback IP. Null leaves it unmanaged.",
                    "enum": [
                      "never",
                      "startup",
                      null
                    ],
                    "nullable": true,
                    "type": "string"
                  },
                  "overload": {
                    "properties": {
                      "connection_capacity_action": {
                        "type": "string"
                      },
                      "preset": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "preset": {
                    "type": "string"
                  },
                  "timeouts": {
                    "properties": {
                      "bridge_request_secs": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "bridge_retry_secs": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "carrier_health_secs": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "carrier_learning_secs": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "carrier_negotiation_deadlines_secs": {
                        "items": {
                          "format": "int64",
                          "type": "integer"
                        },
                        "type": "array"
                      },
                      "carrier_probe_coalesce_ms": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "advanced_supported": {
                      "type": "boolean"
                    },
                    "applied_base_path": {
                      "type": "string"
                    },
                    "default": {
                      "properties": {
                        "base_path": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier": {
                          "type": "string"
                        },
                        "carrier_learning": {
                          "type": "boolean"
                        },
                        "carrier_method": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier_negotiation_aggressiveness": {
                          "type": "string"
                        },
                        "carriers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "conveyor": {
                          "nullable": true,
                          "type": "boolean"
                        },
                        "decoy_resolve": {
                          "nullable": true,
                          "type": "string"
                        },
                        "overload": {
                          "properties": {
                            "connection_capacity_action": {
                              "type": "string"
                            },
                            "preset": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "preset": {
                          "type": "string"
                        },
                        "timeouts": {
                          "properties": {
                            "bridge_request_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "bridge_retry_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_health_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_learning_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_negotiation_deadlines_secs": {
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "carrier_probe_coalesce_ms": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "overridden": {
                      "type": "boolean"
                    },
                    "policy": {
                      "properties": {
                        "base_path": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier": {
                          "type": "string"
                        },
                        "carrier_learning": {
                          "type": "boolean"
                        },
                        "carrier_method": {
                          "nullable": true,
                          "type": "string"
                        },
                        "carrier_negotiation_aggressiveness": {
                          "type": "string"
                        },
                        "carriers": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "conveyor": {
                          "nullable": true,
                          "type": "boolean"
                        },
                        "decoy_resolve": {
                          "nullable": true,
                          "type": "string"
                        },
                        "overload": {
                          "properties": {
                            "connection_capacity_action": {
                              "type": "string"
                            },
                            "preset": {
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "preset": {
                          "type": "string"
                        },
                        "timeouts": {
                          "properties": {
                            "bridge_request_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "bridge_retry_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_health_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_learning_secs": {
                              "format": "int64",
                              "type": "integer"
                            },
                            "carrier_negotiation_deadlines_secs": {
                              "items": {
                                "format": "int64",
                                "type": "integer"
                              },
                              "type": "array"
                            },
                            "carrier_probe_coalesce_ms": {
                              "format": "int64",
                              "type": "integer"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update node web policy",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/nodes/{id}/web/carriers": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_nodes_id_web_carriers",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          },
          {
            "description": "Range start in RFC3339; monitoring defaults to 24 hours ago, at most 31 days.",
            "in": "query",
            "name": "from",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Range end in RFC3339; monitoring defaults to now.",
            "in": "query",
            "name": "to",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get node web carriers",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    },
    "/api/v1/nodes/{id}/web/lifecycle": {
      "post": {
        "description": "Requires scope `nodes:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_nodes_id_web_lifecycle",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "action": {
                    "enum": [
                      "pause",
                      "drain",
                      "resume",
                      "reset_learning"
                    ],
                    "type": "string"
                  },
                  "timeout_secs": {
                    "default": 120,
                    "maximum": 3600,
                    "minimum": 1,
                    "type": "integer"
                  }
                },
                "required": [
                  "action"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Control node web lifecycle",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:write"
      }
    },
    "/api/v1/settings": {
      "get": {
        "description": "Requires scope `settings:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_settings",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get panel settings",
        "tags": [
          "settings"
        ],
        "x-owner-only": false,
        "x-required-scope": "settings:read"
      },
      "put": {
        "description": "Requires scope `settings:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes. Only owner accounts can call this operation.",
        "operationId": "put_api_v1_settings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "apply_interval": {
                    "format": "int64",
                    "nullable": true,
                    "type": "integer"
                  },
                  "backup_schedule": {
                    "nullable": true,
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "hour": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "keep": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  },
                  "offline_after": {
                    "format": "int64",
                    "nullable": true,
                    "type": "integer"
                  },
                  "subscription_page": {
                    "nullable": true,
                    "properties": {
                      "hidden_nodes": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "hide_support": {
                        "type": "boolean"
                      },
                      "intro_en": {
                        "type": "string"
                      },
                      "intro_ru": {
                        "type": "string"
                      },
                      "language": {
                        "type": "string"
                      },
                      "show_backup_domains": {
                        "type": "boolean"
                      },
                      "show_fake_tls": {
                        "type": "boolean"
                      },
                      "show_qr": {
                        "type": "boolean"
                      },
                      "show_status": {
                        "type": "boolean"
                      },
                      "show_web": {
                        "type": "boolean"
                      },
                      "support_label_en": {
                        "type": "string"
                      },
                      "support_label_ru": {
                        "type": "string"
                      },
                      "support_url": {
                        "type": "string"
                      },
                      "title_en": {
                        "type": "string"
                      },
                      "title_ru": {
                        "type": "string"
                      },
                      "tls_button_en": {
                        "type": "string"
                      },
                      "tls_button_ru": {
                        "type": "string"
                      },
                      "tls_note_en": {
                        "type": "string"
                      },
                      "tls_note_ru": {
                        "type": "string"
                      },
                      "web_button_en": {
                        "type": "string"
                      },
                      "web_button_ru": {
                        "type": "string"
                      },
                      "web_note_en": {
                        "type": "string"
                      },
                      "web_note_ru": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "telegram_alerts": {
                    "nullable": true,
                    "properties": {
                      "bot_token": {
                        "nullable": true,
                        "type": "string"
                      },
                      "chat_id": {
                        "type": "string"
                      },
                      "enabled": {
                        "type": "boolean"
                      },
                      "language": {
                        "nullable": true,
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update panel settings",
        "tags": [
          "settings"
        ],
        "x-owner-only": true,
        "x-required-scope": "settings:write"
      }
    },
    "/api/v1/settings/subscription-page/preview": {
      "get": {
        "description": "Requires scope `settings:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_settings_subscription_page_preview",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Preview subscription page",
        "tags": [
          "settings"
        ],
        "x-owner-only": false,
        "x-required-scope": "settings:read"
      }
    },
    "/api/v1/settings/telegram/test": {
      "post": {
        "description": "Requires scope `settings:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes. Only owner accounts can call this operation.",
        "operationId": "post_api_v1_settings_telegram_test",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "bot_token": {
                    "nullable": true,
                    "type": "string"
                  },
                  "chat_id": {
                    "nullable": true,
                    "type": "string"
                  },
                  "language": {
                    "nullable": true,
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Test Telegram notifications",
        "tags": [
          "settings"
        ],
        "x-owner-only": true,
        "x-required-scope": "settings:write"
      }
    },
    "/api/v1/site-templates": {
      "get": {
        "description": "Requires scope `sites:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_site_templates",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "List site templates",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:read"
      },
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_site_templates",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "assets": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Map of asset paths to base64-encoded content.",
                    "type": "object"
                  },
                  "html": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "html"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Create site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/site-templates/import": {
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_site_templates_import",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "description": "ZIP bundle",
                    "format": "binary",
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Import site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/site-templates/validate": {
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_site_templates_validate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "assets": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Map of asset paths to base64-encoded content.",
                    "type": "object"
                  },
                  "html": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "html"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Validate site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/site-templates/{id}": {
      "delete": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "delete_api_v1_site_templates_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Operation completed; no response body."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Delete site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      },
      "get": {
        "description": "Requires scope `sites:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_site_templates_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:read"
      },
      "put": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "put_api_v1_site_templates_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "assets": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Map of asset paths to base64-encoded content.",
                    "type": "object"
                  },
                  "html": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "html"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Update site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/site-templates/{id}/customize": {
      "post": {
        "description": "Requires scope `sites:write` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "post_api_v1_site_templates_id_customize",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "variables": {
                    "additionalProperties": {
                      "type": "string"
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Customize site template",
        "tags": [
          "sites"
        ],
        "x-owner-only": false,
        "x-required-scope": "sites:write"
      }
    },
    "/api/v1/status/public": {
      "get": {
        "description": "Requires scope `monitoring:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_status_public",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get public service status",
        "tags": [
          "monitoring"
        ],
        "x-owner-only": false,
        "x-required-scope": "monitoring:read"
      }
    },
    "/api/v1/status/update": {
      "get": {
        "description": "Requires scope `nodes:read` and the current account role allowed by this endpoint. Write scopes do not imply read scopes.",
        "operationId": "get_api_v1_status_update",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object"
                }
              }
            },
            "description": "Success. Read-only tokens omit proxy secrets and subscription URLs from user records."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Malformed request."
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing, invalid, expired or revoked API token."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Missing scope or insufficient current account role."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Resource not found."
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Operation conflicts with current state or unsupported capability."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Field validation failed; error.fields contains details."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "description": "Internal server error."
          }
        },
        "summary": "Get panel update status",
        "tags": [
          "nodes"
        ],
        "x-owner-only": false,
        "x-required-scope": "nodes:read"
      }
    }
  },
  "security": [
    {
      "personalToken": []
    }
  ],
  "servers": [
    {
      "description": "Replace with your installed panel hostname; tgproxypanel.com hosts documentation only.",
      "url": "https://{panelHost}",
      "variables": {
        "panelHost": {
          "default": "panel.example.com"
        }
      }
    }
  ]
}
