// Code generated by go-swagger; DO NOT EDIT.

package rest_server_zrok

// 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": [
    "application/zrok.v1+json"
  ],
  "produces": [
    "application/zrok.v1+json"
  ],
  "schemes": [
    "http"
  ],
  "swagger": "2.0",
  "info": {
    "description": "zrok client access",
    "title": "zrok",
    "version": "0.3.0"
  },
  "basePath": "/api/v1",
  "paths": {
    "/access": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "access",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/accessRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "access created",
            "schema": {
              "$ref": "#/definitions/accessResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/detail/environment/{envZId}": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "getEnvironmentDetail",
        "parameters": [
          {
            "type": "string",
            "name": "envZId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/environmentShares"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/detail/share/{shrToken}": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "getShareDetail",
        "parameters": [
          {
            "type": "string",
            "name": "shrToken",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/share"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/disable": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "environment"
        ],
        "operationId": "disable",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/disableRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "environment disabled"
          },
          "401": {
            "description": "invalid environment"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/enable": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "environment"
        ],
        "operationId": "enable",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/enableRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "environment enabled",
            "schema": {
              "$ref": "#/definitions/enableResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "account not found"
          },
          "500": {
            "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"
            }
          },
          "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/frontends": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "listFrontends",
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/publicFrontendList"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "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"
          }
        }
      }
    },
    "/invite": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "invite",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/inviteRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "invitation created"
          },
          "400": {
            "description": "invitation not created (already exists)"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/invite/token/generate": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "inviteTokenGenerate",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/inviteTokenGenerateRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "invitation tokens created"
          },
          "400": {
            "description": "invitation tokens not created"
          },
          "401": {
            "description": "unauthorized"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/login": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "login",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/loginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "login successful",
            "schema": {
              "$ref": "#/definitions/loginResponse"
            }
          },
          "401": {
            "description": "invalid login"
          }
        }
      }
    },
    "/overview": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "overview",
        "responses": {
          "200": {
            "description": "overview returned",
            "schema": {
              "$ref": "#/definitions/environmentSharesList"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      }
    },
    "/register": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "register",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/registerRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "account created",
            "schema": {
              "$ref": "#/definitions/registerResponse"
            }
          },
          "404": {
            "description": "request not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/share": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "share",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/shareRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "share created",
            "schema": {
              "$ref": "#/definitions/shareResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      },
      "patch": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "updateShare",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/updateShareRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "share updated"
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/unaccess": {
      "delete": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "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": {
      "delete": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "unshare",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/unshareRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "share removed"
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      }
    },
    "/verify": {
      "post": {
        "tags": [
          "account"
        ],
        "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": {
            "description": "internal server error"
          }
        }
      }
    },
    "/version": {
      "get": {
        "tags": [
          "metadata"
        ],
        "operationId": "version",
        "responses": {
          "200": {
            "description": "current server version",
            "schema": {
              "$ref": "#/definitions/version"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "accessRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "accessResponse": {
      "type": "object",
      "properties": {
        "frontendToken": {
          "type": "string"
        }
      }
    },
    "authUser": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "createFrontendRequest": {
      "type": "object",
      "properties": {
        "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"
        }
      }
    },
    "enableRequest": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string"
        },
        "host": {
          "type": "string"
        }
      }
    },
    "enableResponse": {
      "type": "object",
      "properties": {
        "cfg": {
          "type": "string"
        },
        "identity": {
          "type": "string"
        }
      }
    },
    "environment": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "address": {
          "type": "string"
        },
        "createdAt": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "host": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "environmentShares": {
      "type": "object",
      "properties": {
        "environment": {
          "$ref": "#/definitions/environment"
        },
        "shares": {
          "$ref": "#/definitions/shares"
        }
      }
    },
    "environmentSharesList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/environmentShares"
      }
    },
    "environments": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/environment"
      }
    },
    "errorMessage": {
      "type": "string"
    },
    "inviteRequest": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "inviteTokenGenerateRequest": {
      "type": "object",
      "properties": {
        "tokens": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "loginRequest": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      }
    },
    "loginResponse": {
      "type": "string"
    },
    "principal": {
      "type": "object",
      "properties": {
        "admin": {
          "type": "boolean"
        },
        "email": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "limitless": {
          "type": "boolean"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "publicFrontend": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "integer"
        },
        "publicName": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "urlTemplate": {
          "type": "string"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "publicFrontendList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/publicFrontend"
      }
    },
    "registerRequest": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "registerResponse": {
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        }
      }
    },
    "share": {
      "type": "object",
      "properties": {
        "backendMode": {
          "type": "string"
        },
        "backendProxyEndpoint": {
          "type": "string"
        },
        "createdAt": {
          "type": "integer"
        },
        "frontendEndpoint": {
          "type": "string"
        },
        "frontendSelection": {
          "type": "string"
        },
        "metrics": {
          "$ref": "#/definitions/shareMetrics"
        },
        "reserved": {
          "type": "boolean"
        },
        "shareMode": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "shareMetrics": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "shareRequest": {
      "type": "object",
      "properties": {
        "authScheme": {
          "type": "string"
        },
        "authUsers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/authUser"
          }
        },
        "backendMode": {
          "type": "string",
          "enum": [
            "proxy",
            "web",
            "dav"
          ]
        },
        "backendProxyEndpoint": {
          "type": "string"
        },
        "envZId": {
          "type": "string"
        },
        "frontendSelection": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reserved": {
          "type": "boolean"
        },
        "shareMode": {
          "type": "string",
          "enum": [
            "public",
            "private"
          ]
        }
      }
    },
    "shareResponse": {
      "type": "object",
      "properties": {
        "frontendProxyEndpoints": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "shares": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/share"
      }
    },
    "unaccessRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "frontendToken": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "unshareRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "reserved": {
          "type": "boolean"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "updateFrontendRequest": {
      "type": "object",
      "properties": {
        "frontendToken": {
          "type": "string"
        },
        "publicName": {
          "type": "string"
        },
        "urlTemplate": {
          "type": "string"
        }
      }
    },
    "updateShareRequest": {
      "type": "object",
      "properties": {
        "backendProxyEndpoint": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "verifyRequest": {
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        }
      }
    },
    "verifyResponse": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        }
      }
    },
    "version": {
      "type": "string"
    }
  },
  "securityDefinitions": {
    "key": {
      "type": "apiKey",
      "name": "x-token",
      "in": "header"
    }
  }
}`))
	FlatSwaggerJSON = json.RawMessage([]byte(`{
  "consumes": [
    "application/zrok.v1+json"
  ],
  "produces": [
    "application/zrok.v1+json"
  ],
  "schemes": [
    "http"
  ],
  "swagger": "2.0",
  "info": {
    "description": "zrok client access",
    "title": "zrok",
    "version": "0.3.0"
  },
  "basePath": "/api/v1",
  "paths": {
    "/access": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "access",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/accessRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "access created",
            "schema": {
              "$ref": "#/definitions/accessResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/detail/environment/{envZId}": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "getEnvironmentDetail",
        "parameters": [
          {
            "type": "string",
            "name": "envZId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/environmentShares"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/detail/share/{shrToken}": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "getShareDetail",
        "parameters": [
          {
            "type": "string",
            "name": "shrToken",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/share"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/disable": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "environment"
        ],
        "operationId": "disable",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/disableRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "environment disabled"
          },
          "401": {
            "description": "invalid environment"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/enable": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "environment"
        ],
        "operationId": "enable",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/enableRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "environment enabled",
            "schema": {
              "$ref": "#/definitions/enableResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "account not found"
          },
          "500": {
            "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"
            }
          },
          "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"
          }
        }
      },
      "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"
          }
        }
      }
    },
    "/frontends": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "listFrontends",
        "responses": {
          "200": {
            "description": "ok",
            "schema": {
              "$ref": "#/definitions/publicFrontendList"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "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"
          }
        }
      }
    },
    "/invite": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "invite",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/inviteRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "invitation created"
          },
          "400": {
            "description": "invitation not created (already exists)"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/invite/token/generate": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "admin"
        ],
        "operationId": "inviteTokenGenerate",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/inviteTokenGenerateRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "invitation tokens created"
          },
          "400": {
            "description": "invitation tokens not created"
          },
          "401": {
            "description": "unauthorized"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/login": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "login",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/loginRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "login successful",
            "schema": {
              "$ref": "#/definitions/loginResponse"
            }
          },
          "401": {
            "description": "invalid login"
          }
        }
      }
    },
    "/overview": {
      "get": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "metadata"
        ],
        "operationId": "overview",
        "responses": {
          "200": {
            "description": "overview returned",
            "schema": {
              "$ref": "#/definitions/environmentSharesList"
            }
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      }
    },
    "/register": {
      "post": {
        "tags": [
          "account"
        ],
        "operationId": "register",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/registerRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "account created",
            "schema": {
              "$ref": "#/definitions/registerResponse"
            }
          },
          "404": {
            "description": "request not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/share": {
      "post": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "share",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/shareRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "share created",
            "schema": {
              "$ref": "#/definitions/shareResponse"
            }
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      },
      "patch": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "updateShare",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/updateShareRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "share updated"
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error"
          }
        }
      }
    },
    "/unaccess": {
      "delete": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "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": {
      "delete": {
        "security": [
          {
            "key": []
          }
        ],
        "tags": [
          "share"
        ],
        "operationId": "unshare",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/unshareRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "share removed"
          },
          "401": {
            "description": "unauthorized"
          },
          "404": {
            "description": "not found"
          },
          "500": {
            "description": "internal server error",
            "schema": {
              "$ref": "#/definitions/errorMessage"
            }
          }
        }
      }
    },
    "/verify": {
      "post": {
        "tags": [
          "account"
        ],
        "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": {
            "description": "internal server error"
          }
        }
      }
    },
    "/version": {
      "get": {
        "tags": [
          "metadata"
        ],
        "operationId": "version",
        "responses": {
          "200": {
            "description": "current server version",
            "schema": {
              "$ref": "#/definitions/version"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "accessRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "accessResponse": {
      "type": "object",
      "properties": {
        "frontendToken": {
          "type": "string"
        }
      }
    },
    "authUser": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        },
        "username": {
          "type": "string"
        }
      }
    },
    "createFrontendRequest": {
      "type": "object",
      "properties": {
        "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"
        }
      }
    },
    "enableRequest": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string"
        },
        "host": {
          "type": "string"
        }
      }
    },
    "enableResponse": {
      "type": "object",
      "properties": {
        "cfg": {
          "type": "string"
        },
        "identity": {
          "type": "string"
        }
      }
    },
    "environment": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "address": {
          "type": "string"
        },
        "createdAt": {
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "host": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "environmentShares": {
      "type": "object",
      "properties": {
        "environment": {
          "$ref": "#/definitions/environment"
        },
        "shares": {
          "$ref": "#/definitions/shares"
        }
      }
    },
    "environmentSharesList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/environmentShares"
      }
    },
    "environments": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/environment"
      }
    },
    "errorMessage": {
      "type": "string"
    },
    "inviteRequest": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "inviteTokenGenerateRequest": {
      "type": "object",
      "properties": {
        "tokens": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "loginRequest": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      }
    },
    "loginResponse": {
      "type": "string"
    },
    "principal": {
      "type": "object",
      "properties": {
        "admin": {
          "type": "boolean"
        },
        "email": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "limitless": {
          "type": "boolean"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "publicFrontend": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "integer"
        },
        "publicName": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "urlTemplate": {
          "type": "string"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "publicFrontendList": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/publicFrontend"
      }
    },
    "registerRequest": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "registerResponse": {
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        }
      }
    },
    "share": {
      "type": "object",
      "properties": {
        "backendMode": {
          "type": "string"
        },
        "backendProxyEndpoint": {
          "type": "string"
        },
        "createdAt": {
          "type": "integer"
        },
        "frontendEndpoint": {
          "type": "string"
        },
        "frontendSelection": {
          "type": "string"
        },
        "metrics": {
          "$ref": "#/definitions/shareMetrics"
        },
        "reserved": {
          "type": "boolean"
        },
        "shareMode": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "updatedAt": {
          "type": "integer"
        },
        "zId": {
          "type": "string"
        }
      }
    },
    "shareMetrics": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "shareRequest": {
      "type": "object",
      "properties": {
        "authScheme": {
          "type": "string"
        },
        "authUsers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/authUser"
          }
        },
        "backendMode": {
          "type": "string",
          "enum": [
            "proxy",
            "web",
            "dav"
          ]
        },
        "backendProxyEndpoint": {
          "type": "string"
        },
        "envZId": {
          "type": "string"
        },
        "frontendSelection": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "reserved": {
          "type": "boolean"
        },
        "shareMode": {
          "type": "string",
          "enum": [
            "public",
            "private"
          ]
        }
      }
    },
    "shareResponse": {
      "type": "object",
      "properties": {
        "frontendProxyEndpoints": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "shares": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/share"
      }
    },
    "unaccessRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "frontendToken": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "unshareRequest": {
      "type": "object",
      "properties": {
        "envZId": {
          "type": "string"
        },
        "reserved": {
          "type": "boolean"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "updateFrontendRequest": {
      "type": "object",
      "properties": {
        "frontendToken": {
          "type": "string"
        },
        "publicName": {
          "type": "string"
        },
        "urlTemplate": {
          "type": "string"
        }
      }
    },
    "updateShareRequest": {
      "type": "object",
      "properties": {
        "backendProxyEndpoint": {
          "type": "string"
        },
        "shrToken": {
          "type": "string"
        }
      }
    },
    "verifyRequest": {
      "type": "object",
      "properties": {
        "token": {
          "type": "string"
        }
      }
    },
    "verifyResponse": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        }
      }
    },
    "version": {
      "type": "string"
    }
  },
  "securityDefinitions": {
    "key": {
      "type": "apiKey",
      "name": "x-token",
      "in": "header"
    }
  }
}`))
}