zrok/rest_server_zrok/embedded_spec.go

3721 lines
76 KiB
Go
Raw Normal View History

2022-07-22 16:52:36 +02:00
// Code generated by go-swagger; DO NOT EDIT.
package rest_server_zrok
2022-07-22 16:52:36 +02:00
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"encoding/json"
)
var (
// SwaggerJSON embedded version of the swagger document used at generation time
SwaggerJSON json.RawMessage
// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
FlatSwaggerJSON json.RawMessage
)
func init() {
SwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
2022-07-22 17:45:37 +02:00
"application/zrok.v1+json"
2022-07-22 16:52:36 +02:00
],
"produces": [
2022-07-22 17:45:37 +02:00
"application/zrok.v1+json"
2022-07-22 16:52:36 +02:00
],
"schemes": [
"http"
],
"swagger": "2.0",
"info": {
"description": "zrok client access",
"title": "zrok",
2024-09-18 18:15:35 +02:00
"version": "1.0.0"
2022-07-22 16:52:36 +02:00
},
"basePath": "/api/v1",
2022-07-22 16:52:36 +02:00
"paths": {
2022-11-23 18:12:11 +01:00
"/access": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-11-23 18:12:11 +01:00
],
"operationId": "access",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/accessRequest"
}
}
],
"responses": {
"201": {
"description": "access created",
"schema": {
"$ref": "#/definitions/accessResponse"
}
2022-11-23 18:12:11 +01:00
},
"401": {
"description": "unauthorized"
},
2022-11-23 18:24:35 +01:00
"404": {
"description": "not found"
},
2022-11-23 18:12:11 +01:00
"500": {
"description": "internal server error"
}
}
}
},
"/account": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createAccount",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "created",
"schema": {
"properties": {
"token": {
"type": "string"
}
}
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
"/changePassword": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"account"
],
"operationId": "changePassword",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/changePasswordRequest"
}
}
],
"responses": {
"200": {
"description": "changed password"
},
"400": {
"description": "password not changed"
},
"401": {
"description": "unauthorized"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
"500": {
"description": "internal server error"
}
}
}
},
"/configuration": {
"get": {
"tags": [
"metadata"
],
"operationId": "configuration",
"responses": {
"200": {
"description": "current configuration",
"schema": {
"$ref": "#/definitions/configuration"
}
}
}
}
},
"/detail/account": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getAccountDetail",
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/environments"
}
},
"500": {
"description": "internal server error"
}
}
}
},
2022-12-22 20:56:19 +01:00
"/detail/environment/{envZId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getEnvironmentDetail",
"parameters": [
{
2022-12-22 20:56:19 +01:00
"type": "string",
"name": "envZId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/environmentAndResources"
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
2023-05-17 19:53:18 +02:00
"/detail/frontend/{feId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getFrontendDetail",
"parameters": [
{
"type": "integer",
"name": "feId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/frontend"
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/detail/share/{shrToken}": {
2022-12-22 21:09:37 +01:00
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getShareDetail",
2022-12-22 21:09:37 +01:00
"parameters": [
{
"type": "string",
"name": "shrToken",
2022-12-22 21:09:37 +01:00
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/share"
2022-12-22 21:09:37 +01:00
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/disable": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
2022-11-30 17:43:00 +01:00
"environment"
],
"operationId": "disable",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/disableRequest"
}
}
],
"responses": {
"200": {
"description": "environment disabled"
},
"401": {
"description": "invalid environment"
},
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
}
}
}
},
2022-07-25 23:05:44 +02:00
"/enable": {
"post": {
"security": [
{
"key": []
}
],
2022-07-25 23:05:44 +02:00
"tags": [
2022-11-30 17:43:00 +01:00
"environment"
2022-07-25 23:05:44 +02:00
],
"operationId": "enable",
2022-08-03 20:25:27 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/enableRequest"
}
}
],
2022-07-25 23:05:44 +02:00
"responses": {
"201": {
"description": "environment enabled",
"schema": {
"$ref": "#/definitions/enableResponse"
}
},
2022-07-27 20:50:46 +02:00
"401": {
2022-11-30 17:43:00 +01:00
"description": "unauthorized"
2022-07-27 20:50:46 +02:00
},
"404": {
"description": "account not found"
},
2022-07-25 23:05:44 +02:00
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
}
}
}
},
"/frontend": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/createFrontendRequest"
}
}
],
"responses": {
"201": {
"description": "frontend created",
"schema": {
"$ref": "#/definitions/createFrontendResponse"
}
},
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
},
"delete": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "deleteFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/deleteFrontendRequest"
}
}
],
"responses": {
"200": {
"description": "frontend deleted"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
2022-12-02 16:46:53 +01:00
},
"patch": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "updateFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateFrontendRequest"
}
}
],
"responses": {
"200": {
"description": "frontend updated"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-12-02 15:30:06 +01:00
"/frontends": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "listFrontends",
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/publicFrontendList"
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
"/grants": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "grants",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"email": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "ok"
},
"401": {
"description": "unauthorized"
},
2024-09-05 19:34:07 +02:00
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/identity": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createIdentity",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"name": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "created",
"schema": {
"properties": {
"cfg": {
"type": "string"
},
"identity": {
"type": "string"
}
}
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-11-30 17:43:00 +01:00
"/invite": {
"post": {
"tags": [
"account"
],
"operationId": "invite",
"parameters": [
{
"name": "body",
"in": "body",
2022-07-27 19:38:35 +02:00
"schema": {
2022-11-30 17:43:00 +01:00
"$ref": "#/definitions/inviteRequest"
2022-07-27 19:38:35 +02:00
}
2022-07-25 23:05:44 +02:00
}
2022-11-30 17:43:00 +01:00
],
"responses": {
"201": {
"description": "invitation created"
},
"400": {
"description": "invitation not created (already exists)",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-11-30 17:43:00 +01:00
},
"401": {
"description": "unauthorized"
},
2022-11-30 17:43:00 +01:00
"500": {
"description": "internal server error"
}
2022-07-25 23:05:44 +02:00
}
}
},
2023-01-10 19:26:22 +01:00
"/invite/token/generate": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
2023-01-10 19:26:22 +01:00
"operationId": "inviteTokenGenerate",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
2023-01-10 19:26:22 +01:00
"$ref": "#/definitions/inviteTokenGenerateRequest"
}
}
],
"responses": {
"201": {
"description": "invitation tokens created"
},
"400": {
"description": "invitation tokens not created"
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-08-02 19:23:31 +02:00
"/login": {
"post": {
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-08-02 19:23:31 +02:00
],
"operationId": "login",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/loginRequest"
}
}
],
"responses": {
"200": {
"description": "login successful",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"401": {
"description": "invalid login"
}
}
}
},
"/metrics/account": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getAccountMetrics",
2023-05-09 17:36:53 +02:00
"parameters": [
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "account metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
2023-05-09 20:16:01 +02:00
},
"400": {
"description": "bad request"
},
"500": {
"description": "internal server error"
}
}
}
},
"/metrics/environment/{envId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getEnvironmentMetrics",
"parameters": [
{
"type": "string",
"name": "envId",
"in": "path",
"required": true
2023-05-09 17:36:53 +02:00
},
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "environment metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
},
2023-05-09 22:36:50 +02:00
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
2023-05-09 22:36:50 +02:00
},
"500": {
"description": "internal server error"
}
}
}
},
"/metrics/share/{shrToken}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getShareMetrics",
"parameters": [
{
"type": "string",
"name": "shrToken",
"in": "path",
"required": true
2023-05-09 17:36:53 +02:00
},
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "share metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
},
2023-05-09 22:36:50 +02:00
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
2023-05-09 22:36:50 +02:00
},
"500": {
"description": "internal server error"
}
}
}
},
2022-08-03 20:36:40 +02:00
"/overview": {
"get": {
2022-08-03 20:58:11 +02:00
"security": [
{
"key": []
}
],
2022-08-03 20:36:40 +02:00
"tags": [
"metadata"
],
"operationId": "overview",
"responses": {
"200": {
"description": "overview returned",
"schema": {
"$ref": "#/definitions/overview"
2022-08-03 20:36:40 +02:00
}
},
"500": {
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
}
}
}
},
2024-02-20 17:40:11 +01:00
"/regenerateToken": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"account"
],
"operationId": "regenerateToken",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"emailAddress": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "regenerate account token",
"schema": {
"properties": {
"token": {
"type": "string"
}
}
}
},
"404": {
"description": "account not found"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-09-20 19:42:34 +02:00
"/register": {
"post": {
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-09-20 19:42:34 +02:00
],
"operationId": "register",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/registerRequest"
}
}
],
"responses": {
"200": {
"description": "account created",
"schema": {
"$ref": "#/definitions/registerResponse"
}
2022-09-20 19:42:34 +02:00
},
"404": {
"description": "request not found"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
2022-09-20 19:42:34 +02:00
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
2022-09-20 19:42:34 +02:00
}
}
}
},
2023-01-18 20:05:10 +01:00
"/resetPassword": {
"post": {
"tags": [
"account"
],
"operationId": "resetPassword",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/resetPasswordRequest"
}
}
],
"responses": {
"200": {
"description": "password reset"
},
"404": {
"description": "request not found"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
2023-01-18 20:05:10 +01:00
"500": {
"description": "internal server error"
}
}
}
},
"/resetPasswordRequest": {
"post": {
"tags": [
"account"
],
"operationId": "resetPasswordRequest",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"emailAddress": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "forgot password request created"
},
"400": {
"description": "forgot password request not created"
},
"500": {
"description": "internal server error"
}
}
}
},
"/share": {
2022-07-26 21:38:35 +02:00
"post": {
"security": [
{
"key": []
}
],
2022-07-26 21:38:35 +02:00
"tags": [
"share"
2022-07-26 21:38:35 +02:00
],
"operationId": "share",
2022-07-26 21:38:35 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/shareRequest"
2022-07-26 21:38:35 +02:00
}
}
],
"responses": {
"201": {
"description": "share created",
2022-07-26 21:38:35 +02:00
"schema": {
"$ref": "#/definitions/shareResponse"
2022-07-26 21:38:35 +02:00
}
2022-07-27 19:17:47 +02:00
},
2022-08-01 21:44:26 +02:00
"401": {
"description": "unauthorized"
2022-08-01 21:44:26 +02:00
},
"404": {
"description": "not found"
},
"409": {
"description": "conflict"
},
"422": {
2023-09-21 18:57:14 +02:00
"description": "unprocessable"
},
2022-07-27 19:17:47 +02:00
"500": {
2022-07-27 19:38:35 +02:00
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-07-26 21:38:35 +02:00
}
}
2022-12-02 19:21:05 +01:00
},
"patch": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-12-02 19:21:05 +01:00
],
"operationId": "updateShare",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateShareRequest"
}
}
],
"responses": {
"200": {
"description": "share updated"
2022-12-02 19:21:05 +01:00
},
"400": {
"description": "bad request"
},
2022-12-02 19:21:05 +01:00
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
2022-07-26 21:38:35 +02:00
}
},
2022-11-23 18:12:11 +01:00
"/unaccess": {
"delete": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-11-23 18:12:11 +01:00
],
"operationId": "unaccess",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/unaccessRequest"
}
}
],
"responses": {
"200": {
"description": "access removed"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/unshare": {
2022-07-27 17:35:28 +02:00
"delete": {
"security": [
{
"key": []
}
],
2022-07-27 17:35:28 +02:00
"tags": [
"share"
2022-07-27 17:35:28 +02:00
],
"operationId": "unshare",
2022-07-27 17:35:28 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/unshareRequest"
2022-07-27 17:35:28 +02:00
}
}
],
"responses": {
"200": {
"description": "share removed"
},
"401": {
"description": "unauthorized"
2022-07-27 17:35:28 +02:00
},
2022-08-01 21:44:26 +02:00
"404": {
"description": "not found"
2022-08-01 21:44:26 +02:00
},
2022-07-27 17:35:28 +02:00
"500": {
2022-07-27 19:38:35 +02:00
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-07-27 17:35:28 +02:00
}
}
}
},
2022-09-19 21:58:52 +02:00
"/verify": {
2022-09-19 22:26:54 +02:00
"post": {
2022-09-19 21:58:52 +02:00
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-09-19 21:58:52 +02:00
],
"operationId": "verify",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/verifyRequest"
}
}
],
"responses": {
"200": {
"description": "token ready",
"schema": {
"$ref": "#/definitions/verifyResponse"
}
},
"404": {
"description": "token not found"
},
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
2022-09-19 21:58:52 +02:00
}
}
}
},
2022-07-25 17:51:23 +02:00
"/version": {
"get": {
"tags": [
"metadata"
],
"operationId": "version",
"responses": {
"200": {
2022-09-19 21:58:52 +02:00
"description": "current server version",
2022-07-25 17:51:23 +02:00
"schema": {
"$ref": "#/definitions/version"
}
}
}
}
2022-07-22 16:52:36 +02:00
}
},
"definitions": {
2022-11-23 18:12:11 +01:00
"accessRequest": {
"type": "object",
"properties": {
"envZId": {
2022-11-23 18:12:11 +01:00
"type": "string"
},
"shrToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
}
}
},
"accessResponse": {
"type": "object",
"properties": {
2023-05-01 18:19:06 +02:00
"backendMode": {
"type": "string"
},
"frontendToken": {
"type": "string"
}
}
},
"authUser": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"changePasswordRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"newPassword": {
"type": "string"
},
"oldPassword": {
"type": "string"
}
}
},
"configuration": {
"type": "object",
"properties": {
"inviteTokenContact": {
"type": "string"
},
"invitesOpen": {
"type": "boolean"
},
"passwordRequirements": {
"$ref": "#/definitions/passwordRequirements"
},
"requiresInviteToken": {
"type": "boolean"
},
"touLink": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"createFrontendRequest": {
"type": "object",
"properties": {
"permissionMode": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"public_name": {
"type": "string"
},
"url_template": {
"type": "string"
},
"zId": {
"type": "string"
}
}
},
"createFrontendResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"deleteFrontendRequest": {
"type": "object",
"properties": {
"frontendToken": {
"type": "string"
}
}
},
"disableRequest": {
"type": "object",
"properties": {
"identity": {
"type": "string"
}
}
},
2022-08-03 20:25:27 +02:00
"enableRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"host": {
"type": "string"
}
}
},
2022-07-25 22:42:06 +02:00
"enableResponse": {
"type": "object",
"properties": {
"cfg": {
"type": "string"
},
2022-07-25 22:42:06 +02:00
"identity": {
"type": "string"
}
}
},
2022-08-03 17:54:11 +02:00
"environment": {
"type": "object",
"properties": {
"activity": {
"$ref": "#/definitions/sparkData"
},
2022-08-03 19:48:17 +02:00
"address": {
"type": "string"
},
"createdAt": {
"type": "integer"
},
2022-08-03 19:48:17 +02:00
"description": {
"type": "string"
},
"host": {
"type": "string"
},
"limited": {
"type": "boolean"
},
"updatedAt": {
"type": "integer"
},
2022-10-19 18:35:29 +02:00
"zId": {
"type": "string"
}
}
},
"environmentAndResources": {
2022-08-03 20:36:40 +02:00
"type": "object",
"properties": {
"environment": {
"$ref": "#/definitions/environment"
},
"frontends": {
"$ref": "#/definitions/frontends"
},
"shares": {
"$ref": "#/definitions/shares"
2022-08-03 20:36:40 +02:00
}
}
},
2022-08-03 17:54:11 +02:00
"environments": {
"type": "array",
"items": {
"$ref": "#/definitions/environment"
}
},
"errorMessage": {
"type": "string"
},
"frontend": {
"type": "object",
"properties": {
"createdAt": {
"type": "integer"
},
"id": {
"type": "integer"
},
"shrToken": {
"type": "string"
},
"token": {
"type": "string"
},
"updatedAt": {
"type": "integer"
},
"zId": {
"type": "string"
}
}
},
"frontends": {
"type": "array",
"items": {
"$ref": "#/definitions/frontend"
}
},
2022-11-30 17:43:00 +01:00
"inviteRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
2023-01-09 20:23:02 +01:00
},
"token": {
"type": "string"
2022-11-30 17:43:00 +01:00
}
}
},
2023-01-10 19:26:22 +01:00
"inviteTokenGenerateRequest": {
"type": "object",
"properties": {
"tokens": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
2022-08-02 19:23:31 +02:00
"loginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"loginResponse": {
"type": "string"
},
"metrics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"period": {
"type": "number"
},
"samples": {
"type": "array",
"items": {
"$ref": "#/definitions/metricsSample"
}
},
"scope": {
"type": "string"
}
}
},
"metricsSample": {
"type": "object",
"properties": {
"rx": {
"type": "number"
},
"timestamp": {
"type": "number"
},
"tx": {
"type": "number"
}
}
},
"overview": {
"type": "object",
"properties": {
"accountLimited": {
"type": "boolean"
},
"environments": {
"type": "array",
"items": {
"$ref": "#/definitions/environmentAndResources"
}
}
}
},
"passwordRequirements": {
"type": "object",
"properties": {
"length": {
"type": "integer"
},
"requireCapital": {
"type": "boolean"
},
"requireNumeric": {
"type": "boolean"
},
"requireSpecial": {
"type": "boolean"
},
"validSpecialCharacters": {
"type": "string"
}
}
},
"principal": {
2022-07-28 18:12:50 +02:00
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
2022-09-09 16:20:05 +02:00
"email": {
"type": "string"
},
2022-07-28 18:12:50 +02:00
"id": {
"type": "integer"
},
2023-01-13 19:16:10 +01:00
"limitless": {
"type": "boolean"
},
2022-07-28 18:12:50 +02:00
"token": {
"type": "string"
}
}
},
2022-12-02 15:30:06 +01:00
"publicFrontend": {
"type": "object",
"properties": {
2022-12-02 16:46:53 +01:00
"createdAt": {
2022-12-02 15:30:06 +01:00
"type": "integer"
},
2022-12-02 16:46:53 +01:00
"publicName": {
2022-12-02 15:30:06 +01:00
"type": "string"
},
"token": {
"type": "string"
},
2022-12-02 16:46:53 +01:00
"updatedAt": {
2022-12-02 15:30:06 +01:00
"type": "integer"
},
2022-12-02 16:46:53 +01:00
"urlTemplate": {
2022-12-02 15:30:06 +01:00
"type": "string"
},
"zId": {
"type": "string"
}
}
},
"publicFrontendList": {
"type": "array",
"items": {
"$ref": "#/definitions/publicFrontend"
}
},
2022-09-20 19:42:34 +02:00
"registerRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"registerResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
2023-01-18 20:05:10 +01:00
"resetPasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"share": {
2022-11-30 17:17:09 +01:00
"type": "object",
"properties": {
2023-05-11 21:41:21 +02:00
"activity": {
"$ref": "#/definitions/sparkData"
},
2022-11-30 17:17:09 +01:00
"backendMode": {
"type": "string"
},
"backendProxyEndpoint": {
"type": "string"
},
"createdAt": {
"type": "integer"
},
2022-11-30 17:17:09 +01:00
"frontendEndpoint": {
"type": "string"
},
"frontendSelection": {
"type": "string"
},
"limited": {
"type": "boolean"
},
2022-11-30 17:17:09 +01:00
"reserved": {
"type": "boolean"
},
"shareMode": {
"type": "string"
},
"token": {
"type": "string"
},
"updatedAt": {
"type": "integer"
},
2022-11-30 17:17:09 +01:00
"zId": {
"type": "string"
}
}
},
"shareRequest": {
2022-07-26 21:38:35 +02:00
"type": "object",
"properties": {
"accessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"authScheme": {
"type": "string"
},
"authUsers": {
"type": "array",
"items": {
"$ref": "#/definitions/authUser"
}
},
"backendMode": {
"type": "string",
"enum": [
"proxy",
"web",
2023-05-01 18:19:06 +02:00
"tcpTunnel",
2023-08-28 20:49:20 +02:00
"udpTunnel",
"caddy",
"drive",
"socks",
"vpn"
]
},
"backendProxyEndpoint": {
2022-07-26 21:38:35 +02:00
"type": "string"
},
"envZId": {
"type": "string"
},
"frontendSelection": {
"type": "array",
"items": {
"type": "string"
}
},
2023-09-05 16:55:55 +02:00
"oauthAuthorizationCheckInterval": {
"type": "string"
},
"oauthEmailDomains": {
"type": "array",
"items": {
"type": "string"
}
},
"oauthProvider": {
"type": "string",
"enum": [
2023-09-05 16:55:55 +02:00
"github",
"google"
]
},
"permissionMode": {
"type": "string",
"enum": [
"open",
"closed"
]
},
2022-11-30 19:45:57 +01:00
"reserved": {
"type": "boolean"
},
"shareMode": {
"type": "string",
"enum": [
"public",
"private"
]
},
"uniqueName": {
"type": "string"
2022-07-26 21:38:35 +02:00
}
}
},
"shareResponse": {
2022-07-26 21:38:35 +02:00
"type": "object",
"properties": {
"frontendProxyEndpoints": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
2022-07-26 21:38:35 +02:00
"type": "string"
}
}
},
"shares": {
"type": "array",
"items": {
"$ref": "#/definitions/share"
}
},
2023-05-11 21:21:10 +02:00
"sparkData": {
"type": "array",
"items": {
"$ref": "#/definitions/sparkDataSample"
}
},
"sparkDataSample": {
"type": "object",
"properties": {
"rx": {
"type": "number"
},
"tx": {
"type": "number"
}
}
},
2022-11-23 18:12:11 +01:00
"unaccessRequest": {
"type": "object",
"properties": {
"envZId": {
"type": "string"
},
"frontendToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
},
"shrToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
}
}
},
"unshareRequest": {
2022-07-27 17:35:28 +02:00
"type": "object",
"properties": {
"envZId": {
2022-07-27 17:35:28 +02:00
"type": "string"
2022-08-03 20:58:11 +02:00
},
2022-11-30 19:45:57 +01:00
"reserved": {
"type": "boolean"
},
"shrToken": {
2022-08-03 20:58:11 +02:00
"type": "string"
2022-07-27 17:35:28 +02:00
}
}
},
2022-12-02 16:46:53 +01:00
"updateFrontendRequest": {
"type": "object",
"properties": {
"frontendToken": {
"type": "string"
},
"publicName": {
"type": "string"
},
"urlTemplate": {
"type": "string"
}
}
},
2022-12-02 19:21:05 +01:00
"updateShareRequest": {
"type": "object",
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
2022-12-02 19:21:05 +01:00
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
2022-12-02 19:21:05 +01:00
"type": "string"
}
}
},
2022-09-19 21:58:52 +02:00
"verifyRequest": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"verifyResponse": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
}
},
2022-07-22 16:52:36 +02:00
"version": {
"type": "string"
}
},
"securityDefinitions": {
"key": {
"type": "apiKey",
"name": "x-token",
"in": "header"
2022-07-22 16:52:36 +02:00
}
}
}`))
FlatSwaggerJSON = json.RawMessage([]byte(`{
"consumes": [
2022-07-22 17:45:37 +02:00
"application/zrok.v1+json"
2022-07-22 16:52:36 +02:00
],
"produces": [
2022-07-22 17:45:37 +02:00
"application/zrok.v1+json"
2022-07-22 16:52:36 +02:00
],
"schemes": [
"http"
],
"swagger": "2.0",
"info": {
"description": "zrok client access",
"title": "zrok",
2024-09-18 18:15:35 +02:00
"version": "1.0.0"
2022-07-22 16:52:36 +02:00
},
"basePath": "/api/v1",
2022-07-22 16:52:36 +02:00
"paths": {
2022-11-23 18:12:11 +01:00
"/access": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-11-23 18:12:11 +01:00
],
"operationId": "access",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/accessRequest"
}
}
],
"responses": {
"201": {
"description": "access created",
"schema": {
"$ref": "#/definitions/accessResponse"
}
2022-11-23 18:12:11 +01:00
},
"401": {
"description": "unauthorized"
},
2022-11-23 18:24:35 +01:00
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/account": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createAccount",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "created",
"schema": {
"properties": {
"token": {
"type": "string"
}
}
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
"/changePassword": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"account"
],
"operationId": "changePassword",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/changePasswordRequest"
}
}
],
"responses": {
"200": {
"description": "changed password"
},
"400": {
"description": "password not changed"
},
"401": {
"description": "unauthorized"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
"500": {
"description": "internal server error"
}
}
}
},
"/configuration": {
"get": {
"tags": [
"metadata"
],
"operationId": "configuration",
"responses": {
"200": {
"description": "current configuration",
"schema": {
"$ref": "#/definitions/configuration"
}
}
}
}
},
"/detail/account": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getAccountDetail",
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/environments"
}
},
"500": {
"description": "internal server error"
}
}
}
},
2022-12-22 20:56:19 +01:00
"/detail/environment/{envZId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getEnvironmentDetail",
"parameters": [
{
2022-12-22 20:56:19 +01:00
"type": "string",
"name": "envZId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/environmentAndResources"
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
2022-12-22 21:09:37 +01:00
},
"500": {
"description": "internal server error"
}
}
}
},
2023-05-17 19:53:18 +02:00
"/detail/frontend/{feId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getFrontendDetail",
"parameters": [
{
"type": "integer",
"name": "feId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/frontend"
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
2022-12-22 21:09:37 +01:00
},
"500": {
"description": "internal server error"
}
}
}
},
"/detail/share/{shrToken}": {
2022-12-22 21:09:37 +01:00
"get": {
"security": [
{
"key": []
}
],
"tags": [
"metadata"
],
"operationId": "getShareDetail",
2022-12-22 21:09:37 +01:00
"parameters": [
{
"type": "string",
"name": "shrToken",
2022-12-22 21:09:37 +01:00
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/share"
2022-12-22 21:09:37 +01:00
}
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
2022-11-23 18:24:35 +01:00
},
2022-11-23 18:12:11 +01:00
"500": {
"description": "internal server error"
}
}
}
},
"/disable": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
2022-11-30 17:43:00 +01:00
"environment"
],
"operationId": "disable",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/disableRequest"
}
}
],
"responses": {
"200": {
"description": "environment disabled"
},
"401": {
"description": "invalid environment"
},
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
}
}
}
},
2022-07-25 23:05:44 +02:00
"/enable": {
"post": {
"security": [
{
"key": []
}
],
2022-07-25 23:05:44 +02:00
"tags": [
2022-11-30 17:43:00 +01:00
"environment"
2022-07-25 23:05:44 +02:00
],
"operationId": "enable",
2022-08-03 20:25:27 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/enableRequest"
}
}
],
2022-07-25 23:05:44 +02:00
"responses": {
"201": {
"description": "environment enabled",
"schema": {
"$ref": "#/definitions/enableResponse"
}
},
2022-07-27 20:50:46 +02:00
"401": {
2022-11-30 17:43:00 +01:00
"description": "unauthorized"
2022-07-27 20:50:46 +02:00
},
"404": {
"description": "account not found"
},
2022-07-25 23:05:44 +02:00
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
}
}
}
},
"/frontend": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/createFrontendRequest"
}
}
],
"responses": {
"201": {
"description": "frontend created",
"schema": {
"$ref": "#/definitions/createFrontendResponse"
}
},
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
},
"delete": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "deleteFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/deleteFrontendRequest"
}
}
],
"responses": {
"200": {
"description": "frontend deleted"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
2022-12-02 16:46:53 +01:00
},
"patch": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "updateFrontend",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateFrontendRequest"
}
}
],
"responses": {
"200": {
"description": "frontend updated"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-12-02 15:30:06 +01:00
"/frontends": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "listFrontends",
"responses": {
"200": {
"description": "ok",
"schema": {
"$ref": "#/definitions/publicFrontendList"
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
"/grants": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "grants",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"email": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "ok"
},
"401": {
"description": "unauthorized"
},
2024-09-05 19:34:07 +02:00
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/identity": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
"operationId": "createIdentity",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"name": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "created",
"schema": {
"properties": {
"cfg": {
"type": "string"
},
"identity": {
"type": "string"
}
}
}
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-11-30 17:43:00 +01:00
"/invite": {
"post": {
"tags": [
"account"
],
"operationId": "invite",
"parameters": [
{
"name": "body",
"in": "body",
2022-07-27 19:38:35 +02:00
"schema": {
2022-11-30 17:43:00 +01:00
"$ref": "#/definitions/inviteRequest"
2022-07-27 19:38:35 +02:00
}
2022-07-25 23:05:44 +02:00
}
2022-11-30 17:43:00 +01:00
],
"responses": {
"201": {
"description": "invitation created"
},
"400": {
"description": "invitation not created (already exists)",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-11-30 17:43:00 +01:00
},
"401": {
"description": "unauthorized"
},
2022-11-30 17:43:00 +01:00
"500": {
"description": "internal server error"
}
2022-07-25 23:05:44 +02:00
}
}
},
2023-01-10 19:26:22 +01:00
"/invite/token/generate": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"admin"
],
2023-01-10 19:26:22 +01:00
"operationId": "inviteTokenGenerate",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
2023-01-10 19:26:22 +01:00
"$ref": "#/definitions/inviteTokenGenerateRequest"
}
}
],
"responses": {
"201": {
"description": "invitation tokens created"
},
"400": {
"description": "invitation tokens not created"
},
"401": {
"description": "unauthorized"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-08-02 19:23:31 +02:00
"/login": {
"post": {
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-08-02 19:23:31 +02:00
],
"operationId": "login",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/loginRequest"
}
}
],
"responses": {
"200": {
"description": "login successful",
"schema": {
"$ref": "#/definitions/loginResponse"
}
},
"401": {
"description": "invalid login"
}
}
}
},
"/metrics/account": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getAccountMetrics",
2023-05-09 17:36:53 +02:00
"parameters": [
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "account metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
2023-05-09 20:16:01 +02:00
},
"400": {
"description": "bad request"
},
"500": {
"description": "internal server error"
}
}
}
},
"/metrics/environment/{envId}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getEnvironmentMetrics",
"parameters": [
{
"type": "string",
"name": "envId",
"in": "path",
"required": true
2023-05-09 17:36:53 +02:00
},
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "environment metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
},
2023-05-09 22:36:50 +02:00
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
2023-05-09 22:36:50 +02:00
},
"500": {
"description": "internal server error"
}
}
}
},
"/metrics/share/{shrToken}": {
"get": {
"security": [
{
"key": []
}
],
"tags": [
2023-05-09 20:16:01 +02:00
"metadata"
],
"operationId": "getShareMetrics",
"parameters": [
{
"type": "string",
"name": "shrToken",
"in": "path",
"required": true
2023-05-09 17:36:53 +02:00
},
{
2023-05-09 20:16:01 +02:00
"type": "string",
2023-05-09 17:36:53 +02:00
"name": "duration",
"in": "query"
}
],
"responses": {
"200": {
"description": "share metrics",
"schema": {
"$ref": "#/definitions/metrics"
}
},
2023-05-09 22:36:50 +02:00
"400": {
"description": "bad request"
},
"401": {
"description": "unauthorized"
2023-05-09 22:36:50 +02:00
},
"500": {
"description": "internal server error"
}
}
}
},
2022-08-03 20:36:40 +02:00
"/overview": {
"get": {
2022-08-03 20:58:11 +02:00
"security": [
{
"key": []
}
],
2022-08-03 20:36:40 +02:00
"tags": [
"metadata"
],
"operationId": "overview",
"responses": {
"200": {
"description": "overview returned",
"schema": {
"$ref": "#/definitions/overview"
2022-08-03 20:36:40 +02:00
}
},
"500": {
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
}
}
}
},
2024-02-20 17:40:11 +01:00
"/regenerateToken": {
"post": {
"security": [
{
"key": []
}
],
"tags": [
"account"
],
"operationId": "regenerateToken",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"emailAddress": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "regenerate account token",
"schema": {
"properties": {
"token": {
"type": "string"
}
}
}
},
"404": {
"description": "account not found"
},
"500": {
"description": "internal server error"
}
}
}
},
2022-09-20 19:42:34 +02:00
"/register": {
"post": {
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-09-20 19:42:34 +02:00
],
"operationId": "register",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/registerRequest"
}
}
],
"responses": {
"200": {
"description": "account created",
"schema": {
"$ref": "#/definitions/registerResponse"
}
2022-09-20 19:42:34 +02:00
},
"404": {
"description": "request not found"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
2022-09-20 19:42:34 +02:00
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
2022-09-20 19:42:34 +02:00
}
}
}
},
2023-01-18 20:05:10 +01:00
"/resetPassword": {
"post": {
"tags": [
"account"
],
"operationId": "resetPassword",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/resetPasswordRequest"
}
}
],
"responses": {
"200": {
"description": "password reset"
},
"404": {
"description": "request not found"
},
"422": {
"description": "password validation failure",
"schema": {
"$ref": "#/definitions/errorMessage"
}
},
2023-01-18 20:05:10 +01:00
"500": {
"description": "internal server error"
}
}
}
},
"/resetPasswordRequest": {
"post": {
"tags": [
"account"
],
"operationId": "resetPasswordRequest",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"properties": {
"emailAddress": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "forgot password request created"
},
"400": {
"description": "forgot password request not created"
},
"500": {
"description": "internal server error"
}
}
}
},
"/share": {
2022-07-26 21:38:35 +02:00
"post": {
"security": [
{
"key": []
}
],
2022-07-26 21:38:35 +02:00
"tags": [
"share"
2022-07-26 21:38:35 +02:00
],
"operationId": "share",
2022-07-26 21:38:35 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/shareRequest"
2022-07-26 21:38:35 +02:00
}
}
],
"responses": {
"201": {
"description": "share created",
2022-07-26 21:38:35 +02:00
"schema": {
"$ref": "#/definitions/shareResponse"
2022-07-26 21:38:35 +02:00
}
2022-07-27 19:17:47 +02:00
},
2022-08-01 21:44:26 +02:00
"401": {
"description": "unauthorized"
2022-08-01 21:44:26 +02:00
},
"404": {
"description": "not found"
},
"409": {
"description": "conflict"
},
"422": {
2023-09-21 18:57:14 +02:00
"description": "unprocessable"
},
2022-07-27 19:17:47 +02:00
"500": {
2022-07-27 19:38:35 +02:00
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-07-26 21:38:35 +02:00
}
}
2022-12-02 19:21:05 +01:00
},
"patch": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-12-02 19:21:05 +01:00
],
"operationId": "updateShare",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateShareRequest"
}
}
],
"responses": {
"200": {
"description": "share updated"
2022-12-02 19:21:05 +01:00
},
"400": {
"description": "bad request"
},
2022-12-02 19:21:05 +01:00
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
2022-07-26 21:38:35 +02:00
}
},
2022-11-23 18:12:11 +01:00
"/unaccess": {
"delete": {
"security": [
{
"key": []
}
],
"tags": [
"share"
2022-11-23 18:12:11 +01:00
],
"operationId": "unaccess",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/unaccessRequest"
}
}
],
"responses": {
"200": {
"description": "access removed"
},
"401": {
"description": "unauthorized"
},
"404": {
"description": "not found"
},
"500": {
"description": "internal server error"
}
}
}
},
"/unshare": {
2022-07-27 17:35:28 +02:00
"delete": {
"security": [
{
"key": []
}
],
2022-07-27 17:35:28 +02:00
"tags": [
"share"
2022-07-27 17:35:28 +02:00
],
"operationId": "unshare",
2022-07-27 17:35:28 +02:00
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/unshareRequest"
2022-07-27 17:35:28 +02:00
}
}
],
"responses": {
"200": {
"description": "share removed"
},
"401": {
"description": "unauthorized"
2022-07-27 17:35:28 +02:00
},
2022-08-01 21:44:26 +02:00
"404": {
"description": "not found"
2022-08-01 21:44:26 +02:00
},
2022-07-27 17:35:28 +02:00
"500": {
2022-07-27 19:38:35 +02:00
"description": "internal server error",
"schema": {
"$ref": "#/definitions/errorMessage"
}
2022-07-27 17:35:28 +02:00
}
}
}
},
2022-09-19 21:58:52 +02:00
"/verify": {
2022-09-19 22:26:54 +02:00
"post": {
2022-09-19 21:58:52 +02:00
"tags": [
2022-11-30 17:43:00 +01:00
"account"
2022-09-19 21:58:52 +02:00
],
"operationId": "verify",
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/verifyRequest"
}
}
],
"responses": {
"200": {
"description": "token ready",
"schema": {
"$ref": "#/definitions/verifyResponse"
}
},
"404": {
"description": "token not found"
},
"500": {
2022-11-30 17:43:00 +01:00
"description": "internal server error"
2022-09-19 21:58:52 +02:00
}
}
}
},
2022-07-25 17:51:23 +02:00
"/version": {
"get": {
"tags": [
"metadata"
],
"operationId": "version",
"responses": {
"200": {
2022-09-19 21:58:52 +02:00
"description": "current server version",
2022-07-25 17:51:23 +02:00
"schema": {
"$ref": "#/definitions/version"
}
}
}
}
2022-07-22 16:52:36 +02:00
}
},
"definitions": {
2022-11-23 18:12:11 +01:00
"accessRequest": {
"type": "object",
"properties": {
"envZId": {
2022-11-23 18:12:11 +01:00
"type": "string"
},
"shrToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
}
}
},
"accessResponse": {
"type": "object",
"properties": {
2023-05-01 18:19:06 +02:00
"backendMode": {
"type": "string"
},
"frontendToken": {
"type": "string"
}
}
},
"authUser": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"changePasswordRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"newPassword": {
"type": "string"
},
"oldPassword": {
"type": "string"
}
}
},
"configuration": {
"type": "object",
"properties": {
"inviteTokenContact": {
"type": "string"
},
"invitesOpen": {
"type": "boolean"
},
"passwordRequirements": {
"$ref": "#/definitions/passwordRequirements"
},
"requiresInviteToken": {
"type": "boolean"
},
"touLink": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"createFrontendRequest": {
"type": "object",
"properties": {
"permissionMode": {
"type": "string",
"enum": [
"open",
"closed"
]
},
"public_name": {
"type": "string"
},
"url_template": {
"type": "string"
},
"zId": {
"type": "string"
}
}
},
"createFrontendResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"deleteFrontendRequest": {
"type": "object",
"properties": {
"frontendToken": {
"type": "string"
}
}
},
"disableRequest": {
"type": "object",
"properties": {
"identity": {
"type": "string"
}
}
},
2022-08-03 20:25:27 +02:00
"enableRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"host": {
"type": "string"
}
}
},
2022-07-25 22:42:06 +02:00
"enableResponse": {
"type": "object",
"properties": {
"cfg": {
"type": "string"
},
2022-07-25 22:42:06 +02:00
"identity": {
"type": "string"
}
}
},
2022-08-03 17:54:11 +02:00
"environment": {
"type": "object",
"properties": {
"activity": {
"$ref": "#/definitions/sparkData"
},
2022-08-03 19:48:17 +02:00
"address": {
"type": "string"
},
"createdAt": {
"type": "integer"
},
2022-08-03 19:48:17 +02:00
"description": {
"type": "string"
},
"host": {
"type": "string"
},
"limited": {
"type": "boolean"
},
"updatedAt": {
"type": "integer"
},
2022-10-19 18:35:29 +02:00
"zId": {
"type": "string"
}
}
},
"environmentAndResources": {
2022-08-03 20:36:40 +02:00
"type": "object",
"properties": {
"environment": {
"$ref": "#/definitions/environment"
},
"frontends": {
"$ref": "#/definitions/frontends"
},
"shares": {
"$ref": "#/definitions/shares"
2022-08-03 20:36:40 +02:00
}
}
},
2022-08-03 17:54:11 +02:00
"environments": {
"type": "array",
"items": {
"$ref": "#/definitions/environment"
}
},
"errorMessage": {
"type": "string"
},
"frontend": {
"type": "object",
"properties": {
"createdAt": {
"type": "integer"
},
"id": {
"type": "integer"
},
"shrToken": {
"type": "string"
},
"token": {
"type": "string"
},
"updatedAt": {
"type": "integer"
},
"zId": {
"type": "string"
}
}
},
"frontends": {
"type": "array",
"items": {
"$ref": "#/definitions/frontend"
}
},
2022-11-30 17:43:00 +01:00
"inviteRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
2023-01-09 20:23:02 +01:00
},
"token": {
"type": "string"
2022-11-30 17:43:00 +01:00
}
}
},
2023-01-10 19:26:22 +01:00
"inviteTokenGenerateRequest": {
"type": "object",
"properties": {
"tokens": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
2022-08-02 19:23:31 +02:00
"loginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"loginResponse": {
"type": "string"
},
"metrics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"period": {
"type": "number"
},
"samples": {
"type": "array",
"items": {
"$ref": "#/definitions/metricsSample"
}
},
"scope": {
"type": "string"
}
}
},
"metricsSample": {
"type": "object",
"properties": {
"rx": {
"type": "number"
},
"timestamp": {
"type": "number"
},
"tx": {
"type": "number"
}
}
},
"overview": {
"type": "object",
"properties": {
"accountLimited": {
"type": "boolean"
},
"environments": {
"type": "array",
"items": {
"$ref": "#/definitions/environmentAndResources"
}
}
}
},
"passwordRequirements": {
"type": "object",
"properties": {
"length": {
"type": "integer"
},
"requireCapital": {
"type": "boolean"
},
"requireNumeric": {
"type": "boolean"
},
"requireSpecial": {
"type": "boolean"
},
"validSpecialCharacters": {
"type": "string"
}
}
},
"principal": {
2022-07-28 18:12:50 +02:00
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
2022-09-09 16:20:05 +02:00
"email": {
"type": "string"
},
2022-07-28 18:12:50 +02:00
"id": {
"type": "integer"
},
2023-01-13 19:16:10 +01:00
"limitless": {
"type": "boolean"
},
2022-07-28 18:12:50 +02:00
"token": {
"type": "string"
}
}
},
2022-12-02 15:30:06 +01:00
"publicFrontend": {
"type": "object",
"properties": {
2022-12-02 16:46:53 +01:00
"createdAt": {
2022-12-02 15:30:06 +01:00
"type": "integer"
},
2022-12-02 16:46:53 +01:00
"publicName": {
2022-12-02 15:30:06 +01:00
"type": "string"
},
"token": {
"type": "string"
},
2022-12-02 16:46:53 +01:00
"updatedAt": {
2022-12-02 15:30:06 +01:00
"type": "integer"
},
2022-12-02 16:46:53 +01:00
"urlTemplate": {
2022-12-02 15:30:06 +01:00
"type": "string"
},
"zId": {
"type": "string"
}
}
},
"publicFrontendList": {
"type": "array",
"items": {
"$ref": "#/definitions/publicFrontend"
}
},
2022-09-20 19:42:34 +02:00
"registerRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"registerResponse": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
2023-01-18 20:05:10 +01:00
"resetPasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"share": {
2022-11-30 17:17:09 +01:00
"type": "object",
"properties": {
2023-05-11 21:41:21 +02:00
"activity": {
"$ref": "#/definitions/sparkData"
},
2022-11-30 17:17:09 +01:00
"backendMode": {
"type": "string"
},
"backendProxyEndpoint": {
"type": "string"
},
"createdAt": {
"type": "integer"
},
2022-11-30 17:17:09 +01:00
"frontendEndpoint": {
"type": "string"
},
"frontendSelection": {
"type": "string"
},
"limited": {
"type": "boolean"
},
2022-11-30 17:17:09 +01:00
"reserved": {
"type": "boolean"
},
"shareMode": {
"type": "string"
},
"token": {
"type": "string"
},
"updatedAt": {
"type": "integer"
},
2022-11-30 17:17:09 +01:00
"zId": {
"type": "string"
}
}
},
"shareRequest": {
2022-07-26 21:38:35 +02:00
"type": "object",
"properties": {
"accessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"authScheme": {
"type": "string"
},
"authUsers": {
"type": "array",
"items": {
"$ref": "#/definitions/authUser"
}
},
"backendMode": {
"type": "string",
"enum": [
"proxy",
"web",
2023-05-01 18:19:06 +02:00
"tcpTunnel",
2023-08-28 20:49:20 +02:00
"udpTunnel",
"caddy",
"drive",
"socks",
"vpn"
]
},
"backendProxyEndpoint": {
2022-07-26 21:38:35 +02:00
"type": "string"
},
"envZId": {
"type": "string"
},
"frontendSelection": {
"type": "array",
"items": {
"type": "string"
}
},
2023-09-05 16:55:55 +02:00
"oauthAuthorizationCheckInterval": {
"type": "string"
},
"oauthEmailDomains": {
"type": "array",
"items": {
"type": "string"
}
},
"oauthProvider": {
"type": "string",
"enum": [
2023-09-05 16:55:55 +02:00
"github",
"google"
]
},
"permissionMode": {
"type": "string",
"enum": [
"open",
"closed"
]
},
2022-11-30 19:45:57 +01:00
"reserved": {
"type": "boolean"
},
"shareMode": {
"type": "string",
"enum": [
"public",
"private"
]
},
"uniqueName": {
"type": "string"
2022-07-26 21:38:35 +02:00
}
}
},
"shareResponse": {
2022-07-26 21:38:35 +02:00
"type": "object",
"properties": {
"frontendProxyEndpoints": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
2022-07-26 21:38:35 +02:00
"type": "string"
}
}
},
"shares": {
"type": "array",
"items": {
"$ref": "#/definitions/share"
}
},
2023-05-11 21:21:10 +02:00
"sparkData": {
"type": "array",
"items": {
"$ref": "#/definitions/sparkDataSample"
}
},
"sparkDataSample": {
"type": "object",
"properties": {
"rx": {
"type": "number"
},
"tx": {
"type": "number"
}
}
},
2022-11-23 18:12:11 +01:00
"unaccessRequest": {
"type": "object",
"properties": {
"envZId": {
"type": "string"
},
"frontendToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
},
"shrToken": {
2022-11-23 18:12:11 +01:00
"type": "string"
}
}
},
"unshareRequest": {
2022-07-27 17:35:28 +02:00
"type": "object",
"properties": {
"envZId": {
2022-07-27 17:35:28 +02:00
"type": "string"
2022-08-03 20:58:11 +02:00
},
2022-11-30 19:45:57 +01:00
"reserved": {
"type": "boolean"
},
"shrToken": {
2022-08-03 20:58:11 +02:00
"type": "string"
2022-07-27 17:35:28 +02:00
}
}
},
2022-12-02 16:46:53 +01:00
"updateFrontendRequest": {
"type": "object",
"properties": {
"frontendToken": {
"type": "string"
},
"publicName": {
"type": "string"
},
"urlTemplate": {
"type": "string"
}
}
},
2022-12-02 19:21:05 +01:00
"updateShareRequest": {
"type": "object",
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
2022-12-02 19:21:05 +01:00
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
2022-12-02 19:21:05 +01:00
"type": "string"
}
}
},
2022-09-19 21:58:52 +02:00
"verifyRequest": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
}
},
"verifyResponse": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
}
},
2022-07-22 16:52:36 +02:00
"version": {
"type": "string"
}
},
"securityDefinitions": {
"key": {
"type": "apiKey",
"name": "x-token",
"in": "header"
2022-07-22 16:52:36 +02:00
}
}
}`))
}