{ "swagger": "2.0", "info": { "title": "headscale/v1/headscale.proto", "version": "version not set" }, "tags": [ { "name": "HeadscaleService" } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "paths": { "/api/v1/debug/machine": { "post": { "summary": "--- Machine start ---", "operationId": "HeadscaleService_DebugCreateMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1DebugCreateMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1DebugCreateMachineRequest" } } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine": { "get": { "operationId": "HeadscaleService_ListMachines", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ListMachinesResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "namespace", "in": "query", "required": false, "type": "string" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/register": { "post": { "operationId": "HeadscaleService_RegisterMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1RegisterMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/{machineId}": { "get": { "operationId": "HeadscaleService_GetMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1GetMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" } ], "tags": [ "HeadscaleService" ] }, "delete": { "operationId": "HeadscaleService_DeleteMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1DeleteMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/{machineId}/expire": { "post": { "operationId": "HeadscaleService_ExpireMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ExpireMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/{machineId}/routes": { "get": { "summary": "--- Route start ---", "operationId": "HeadscaleService_GetMachineRoute", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1GetMachineRouteResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" } ], "tags": [ "HeadscaleService" ] }, "post": { "operationId": "HeadscaleService_EnableMachineRoutes", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1EnableMachineRoutesResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/{machineId}/share/{namespace}": { "post": { "operationId": "HeadscaleService_ShareMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ShareMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" }, { "name": "namespace", "in": "path", "required": true, "type": "string" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/machine/{machineId}/unshare/{namespace}": { "post": { "operationId": "HeadscaleService_UnshareMachine", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1UnshareMachineResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "machineId", "in": "path", "required": true, "type": "string", "format": "uint64" }, { "name": "namespace", "in": "path", "required": true, "type": "string" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/namespace": { "get": { "operationId": "HeadscaleService_ListNamespaces", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ListNamespacesResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "tags": [ "HeadscaleService" ] }, "post": { "operationId": "HeadscaleService_CreateNamespace", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1CreateNamespaceResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1CreateNamespaceRequest" } } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/namespace/{name}": { "get": { "summary": "--- Namespace start ---", "operationId": "HeadscaleService_GetNamespace", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1GetNamespaceResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "name", "in": "path", "required": true, "type": "string" } ], "tags": [ "HeadscaleService" ] }, "delete": { "operationId": "HeadscaleService_DeleteNamespace", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1DeleteNamespaceResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "name", "in": "path", "required": true, "type": "string" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/namespace/{oldName}/rename/{newName}": { "post": { "operationId": "HeadscaleService_RenameNamespace", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1RenameNamespaceResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "oldName", "in": "path", "required": true, "type": "string" }, { "name": "newName", "in": "path", "required": true, "type": "string" } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/preauthkey": { "get": { "operationId": "HeadscaleService_ListPreAuthKeys", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ListPreAuthKeysResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "namespace", "in": "query", "required": false, "type": "string" } ], "tags": [ "HeadscaleService" ] }, "post": { "summary": "--- PreAuthKeys start ---", "operationId": "HeadscaleService_CreatePreAuthKey", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1CreatePreAuthKeyResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1CreatePreAuthKeyRequest" } } ], "tags": [ "HeadscaleService" ] } }, "/api/v1/preauthkey/expire": { "post": { "operationId": "HeadscaleService_ExpirePreAuthKey", "responses": { "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/v1ExpirePreAuthKeyResponse" } }, "default": { "description": "An unexpected error response.", "schema": { "$ref": "#/definitions/rpcStatus" } } }, "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/v1ExpirePreAuthKeyRequest" } } ], "tags": [ "HeadscaleService" ] } } }, "definitions": { "protobufAny": { "type": "object", "properties": { "@type": { "type": "string" } }, "additionalProperties": {} }, "rpcStatus": { "type": "object", "properties": { "code": { "type": "integer", "format": "int32" }, "message": { "type": "string" }, "details": { "type": "array", "items": { "$ref": "#/definitions/protobufAny" } } } }, "v1CreateNamespaceRequest": { "type": "object", "properties": { "name": { "type": "string" } } }, "v1CreateNamespaceResponse": { "type": "object", "properties": { "namespace": { "$ref": "#/definitions/v1Namespace" } } }, "v1CreatePreAuthKeyRequest": { "type": "object", "properties": { "namespace": { "type": "string" }, "reusable": { "type": "boolean" }, "ephemeral": { "type": "boolean" }, "expiration": { "type": "string", "format": "date-time" } } }, "v1CreatePreAuthKeyResponse": { "type": "object", "properties": { "preAuthKey": { "$ref": "#/definitions/v1PreAuthKey" } } }, "v1DebugCreateMachineRequest": { "type": "object", "properties": { "namespace": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "routes": { "type": "array", "items": { "type": "string" } } } }, "v1DebugCreateMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } }, "v1DeleteMachineResponse": { "type": "object" }, "v1DeleteNamespaceResponse": { "type": "object" }, "v1EnableMachineRoutesResponse": { "type": "object", "properties": { "routes": { "$ref": "#/definitions/v1Routes" } } }, "v1ExpireMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } }, "v1ExpirePreAuthKeyRequest": { "type": "object", "properties": { "namespace": { "type": "string" }, "key": { "type": "string" } } }, "v1ExpirePreAuthKeyResponse": { "type": "object" }, "v1GetMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } }, "v1GetMachineRouteResponse": { "type": "object", "properties": { "routes": { "$ref": "#/definitions/v1Routes" } } }, "v1GetNamespaceResponse": { "type": "object", "properties": { "namespace": { "$ref": "#/definitions/v1Namespace" } } }, "v1ListMachinesResponse": { "type": "object", "properties": { "machines": { "type": "array", "items": { "$ref": "#/definitions/v1Machine" } } } }, "v1ListNamespacesResponse": { "type": "object", "properties": { "namespaces": { "type": "array", "items": { "$ref": "#/definitions/v1Namespace" } } } }, "v1ListPreAuthKeysResponse": { "type": "object", "properties": { "preAuthKeys": { "type": "array", "items": { "$ref": "#/definitions/v1PreAuthKey" } } } }, "v1Machine": { "type": "object", "properties": { "id": { "type": "string", "format": "uint64" }, "machineKey": { "type": "string" }, "nodeKey": { "type": "string" }, "discoKey": { "type": "string" }, "ipAddress": { "type": "string" }, "name": { "type": "string" }, "namespace": { "$ref": "#/definitions/v1Namespace" }, "registered": { "type": "boolean" }, "registerMethod": { "$ref": "#/definitions/v1RegisterMethod" }, "lastSeen": { "type": "string", "format": "date-time" }, "lastSuccessfulUpdate": { "type": "string", "format": "date-time" }, "expiry": { "type": "string", "format": "date-time" }, "preAuthKey": { "$ref": "#/definitions/v1PreAuthKey" }, "createdAt": { "type": "string", "format": "date-time" } } }, "v1Namespace": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" } } }, "v1PreAuthKey": { "type": "object", "properties": { "namespace": { "type": "string" }, "id": { "type": "string" }, "key": { "type": "string" }, "reusable": { "type": "boolean" }, "ephemeral": { "type": "boolean" }, "used": { "type": "boolean" }, "expiration": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" } } }, "v1RegisterMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } }, "v1RegisterMethod": { "type": "string", "enum": [ "REGISTER_METHOD_UNSPECIFIED", "REGISTER_METHOD_AUTH_KEY", "REGISTER_METHOD_CLI", "REGISTER_METHOD_OIDC" ], "default": "REGISTER_METHOD_UNSPECIFIED" }, "v1RenameNamespaceResponse": { "type": "object", "properties": { "namespace": { "$ref": "#/definitions/v1Namespace" } } }, "v1Routes": { "type": "object", "properties": { "advertisedRoutes": { "type": "array", "items": { "type": "string" } }, "enabledRoutes": { "type": "array", "items": { "type": "string" } } } }, "v1ShareMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } }, "v1UnshareMachineResponse": { "type": "object", "properties": { "machine": { "$ref": "#/definitions/v1Machine" } } } } }