{ "openapi": "3.0.0", "info": { "title": "Warpgate Web Admin", "version": "v0.19.1-30-g35acb1d6-modified" }, "servers": [ { "url": "/@warpgate/admin/api" } ], "tags": [], "paths": { "/sessions": { "get": { "parameters": [ { "name": "offset", "schema": { "type": "integer", "format": "uint64" }, "in": "query", "required": false, "deprecated": false, "explode": true }, { "name": "limit", "schema": { "type": "integer", "format": "uint64" }, "in": "query", "required": false, "deprecated": false, "explode": true }, { "name": "active_only", "schema": { "type": "boolean" }, "in": "query", "required": false, "deprecated": false, "explode": true }, { "name": "logged_in_only", "schema": { "type": "boolean" }, "in": "query", "required": false, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/PaginatedResponse_SessionSnapshot" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_sessions" }, "delete": { "responses": { "201": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "close_all_sessions" } }, "/sessions/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/SessionSnapshot" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_session" } }, "/sessions/{id}/recordings": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Recording" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_session_recordings" } }, "/sessions/{id}/close": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "201": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "close_session" } }, "/recordings/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Recording" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_recording" } }, "/roles": { "get": { "parameters": [ { "name": "search", "schema": { "type": "string" }, "in": "query", "required": false, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Role" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_roles" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/RoleDataRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Role" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_role" } }, "/role/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Role" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_role" }, "put": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/RoleDataRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Role" } } } }, "403": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_role" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "403": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_role" } }, "/role/{id}/targets": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Target" } } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_role_targets" } }, "/role/{id}/users": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/User" } } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_role_users" } }, "/tickets": { "get": { "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Ticket" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_tickets" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/CreateTicketRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TicketAndSecret" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_ticket" } }, "/tickets/{id}": { "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_ticket" } }, "/ssh/known-hosts": { "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/AddSshKnownHostRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/SSHKnownHost" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "add_ssh_known_host" }, "get": { "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SSHKnownHost" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ssh_known_hosts" } }, "/ssh/known-hosts/{id}": { "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_ssh_known_host" } }, "/ssh/own-keys": { "get": { "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SSHKey" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ssh_own_keys" } }, "/logs": { "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/GetLogsRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LogEntry" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_logs" } }, "/targets": { "get": { "parameters": [ { "name": "search", "schema": { "type": "string" }, "in": "query", "required": false, "deprecated": false, "explode": true }, { "name": "group_id", "schema": { "type": "string", "format": "uuid" }, "in": "query", "required": false, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Target" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_targets" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetDataRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Target" } } } }, "409": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_target" } }, "/targets/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Target" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_target" }, "put": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetDataRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/Target" } } } }, "400": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_target" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "403": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_target" } }, "/targets/{id}/known-ssh-host-keys": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SSHKnownHost" } } } } }, "400": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ssh_target_known_ssh_host_keys" } }, "/targets/{id}/roles": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Role" } } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_target_roles" } }, "/targets/{id}/roles/{role_id}": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "role_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "201": { "description": "" }, "409": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "add_target_role" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "role_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "403": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_target_role" } }, "/target-groups": { "get": { "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TargetGroup" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "list_target_groups" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetGroupDataRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetGroup" } } } }, "409": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_target_group" } }, "/target-groups/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetGroup" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_target_group" }, "put": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetGroupDataRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TargetGroup" } } } }, "400": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_target_group" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_target_group" } }, "/users": { "get": { "parameters": [ { "name": "search", "schema": { "type": "string" }, "in": "query", "required": false, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/User" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_users" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/CreateUserRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/User" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_user" } }, "/users/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_user" }, "put": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/UserDataRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_user" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_user" } }, "/users/{id}/ldap-link/unlink": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "" }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "unlink_user_from_ldap" } }, "/users/{id}/ldap-link/auto-link": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/User" } } } }, "404": { "description": "" }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "auto_link_user_to_ldap" } }, "/users/{id}/roles": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Role" } } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_user_roles" } }, "/users/{id}/roles/{role_id}": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "role_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "201": { "description": "" }, "409": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "add_user_role" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "role_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_user_role" } }, "/users/{user_id}/credentials/passwords": { "get": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExistingPasswordCredential" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_password_credentials" }, "post": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewPasswordCredential" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingPasswordCredential" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_password_credential" } }, "/users/{user_id}/credentials/passwords/{id}": { "delete": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_password_credential" } }, "/users/{user_id}/credentials/sso": { "get": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExistingSsoCredential" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_sso_credentials" }, "post": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewSsoCredential" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingSsoCredential" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_sso_credential" } }, "/users/{user_id}/credentials/sso/{id}": { "put": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewSsoCredential" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingSsoCredential" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_sso_credential" }, "delete": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_sso_credential" } }, "/users/{user_id}/credentials/public-keys": { "get": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExistingPublicKeyCredential" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_public_key_credentials" }, "post": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewPublicKeyCredential" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingPublicKeyCredential" } } } }, "403": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_public_key_credential" } }, "/users/{user_id}/credentials/public-keys/{id}": { "put": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewPublicKeyCredential" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingPublicKeyCredential" } } } }, "404": { "description": "" }, "403": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_public_key_credential" }, "delete": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" }, "403": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_public_key_credential" } }, "/users/{user_id}/credentials/otp": { "get": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ExistingOtpCredential" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_otp_credentials" }, "post": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/NewOtpCredential" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ExistingOtpCredential" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_otp_credential" } }, "/users/{user_id}/credentials/otp/{id}": { "delete": { "parameters": [ { "name": "user_id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true }, { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_otp_credential" } }, "/ldap-servers": { "get": { "parameters": [ { "name": "search", "schema": { "type": "string" }, "in": "query", "required": false, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LdapServerResponse" } } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ldap_servers" }, "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/CreateLdapServerRequest" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/LdapServerResponse" } } } }, "409": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "create_ldap_server" } }, "/ldap-servers/test": { "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TestLdapServerRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/TestLdapServerResponse" } } } }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "test_ldap_server_connection" } }, "/ldap-servers/{id}": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/LdapServerResponse" } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ldap_server" }, "put": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/UpdateLdapServerRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/LdapServerResponse" } } } }, "404": { "description": "" }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_ldap_server" }, "delete": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "204": { "description": "" }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "delete_ldap_server" } }, "/ldap-servers/{id}/users": { "get": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LdapUserResponse" } } } } }, "404": { "description": "" }, "400": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_ldap_users" } }, "/ldap-servers/{id}/import-users": { "post": { "parameters": [ { "name": "id", "schema": { "type": "string", "format": "uuid" }, "in": "path", "required": true, "deprecated": false, "explode": true } ], "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ImportLdapUsersRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "404": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "import_ldap_users" } }, "/parameters": { "get": { "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ParameterValues" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "get_parameters" }, "put": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/ParameterUpdate" } } }, "required": true }, "responses": { "201": { "description": "" } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "update_parameters" } }, "/ssh/check-host-key": { "post": { "requestBody": { "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/CheckSshHostKeyRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json; charset=utf-8": { "schema": { "$ref": "#/components/schemas/CheckSshHostKeyResponseBody" } } } }, "500": { "description": "", "content": { "text/plain; charset=utf-8": { "schema": { "type": "string" } } } } }, "security": [ { "TokenSecurityScheme": [] }, { "CookieSecurityScheme": [] } ], "operationId": "check_ssh_host_key" } } }, "components": { "schemas": { "AddSshKnownHostRequest": { "type": "object", "title": "AddSshKnownHostRequest", "required": [ "host", "port", "key_type", "key_base64" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "key_type": { "type": "string" }, "key_base64": { "type": "string" } } }, "BootstrapThemeColor": { "type": "string", "enum": [ "Primary", "Secondary", "Success", "Danger", "Warning", "Info", "Light", "Dark" ] }, "CheckSshHostKeyRequest": { "type": "object", "title": "CheckSshHostKeyRequest", "required": [ "host", "port" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "uint16" } } }, "CheckSshHostKeyResponseBody": { "type": "object", "title": "CheckSshHostKeyResponseBody", "required": [ "remote_key_type", "remote_key_base64" ], "properties": { "remote_key_type": { "type": "string" }, "remote_key_base64": { "type": "string" } } }, "CreateLdapServerRequest": { "type": "object", "title": "CreateLdapServerRequest", "required": [ "name", "host", "bind_dn", "bind_password" ], "properties": { "name": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "integer", "format": "int32", "default": 389 }, "bind_dn": { "type": "string" }, "bind_password": { "type": "string" }, "user_filter": { "type": "string", "default": "(objectClass=person)" }, "tls_mode": { "default": "Preferred", "allOf": [ { "$ref": "#/components/schemas/TlsMode" }, { "default": "Preferred" } ] }, "tls_verify": { "type": "boolean", "default": true }, "enabled": { "type": "boolean", "default": true }, "auto_link_sso_users": { "type": "boolean", "default": false }, "description": { "type": "string" }, "username_attribute": { "default": "Cn", "allOf": [ { "$ref": "#/components/schemas/LdapUsernameAttribute" }, { "default": "Cn" } ] }, "ssh_key_attribute": { "type": "string", "default": "sshPublicKey" }, "uuid_attribute": { "type": "string", "default": "" } } }, "CreateTicketRequest": { "type": "object", "title": "CreateTicketRequest", "required": [ "username", "target_name" ], "properties": { "username": { "type": "string" }, "target_name": { "type": "string" }, "expiry": { "type": "string", "format": "date-time" }, "number_of_uses": { "type": "integer", "format": "int16" }, "description": { "type": "string" } } }, "CreateUserRequest": { "type": "object", "title": "CreateUserRequest", "required": [ "username" ], "properties": { "username": { "type": "string" }, "description": { "type": "string" } } }, "CredentialKind": { "type": "string", "enum": [ "Password", "PublicKey", "Totp", "Sso", "WebUserApproval" ] }, "ExistingOtpCredential": { "type": "object", "title": "ExistingOtpCredential", "required": [ "id" ], "properties": { "id": { "type": "string", "format": "uuid" } } }, "ExistingPasswordCredential": { "type": "object", "title": "ExistingPasswordCredential", "required": [ "id" ], "properties": { "id": { "type": "string", "format": "uuid" } } }, "ExistingPublicKeyCredential": { "type": "object", "title": "ExistingPublicKeyCredential", "required": [ "id", "label", "openssh_public_key" ], "properties": { "id": { "type": "string", "format": "uuid" }, "label": { "type": "string" }, "date_added": { "type": "string", "format": "date-time" }, "last_used": { "type": "string", "format": "date-time" }, "openssh_public_key": { "type": "string" } } }, "ExistingSsoCredential": { "type": "object", "title": "ExistingSsoCredential", "required": [ "id", "email" ], "properties": { "id": { "type": "string", "format": "uuid" }, "provider": { "type": "string" }, "email": { "type": "string" } } }, "GetLogsRequest": { "type": "object", "title": "GetLogsRequest", "properties": { "before": { "type": "string", "format": "date-time" }, "after": { "type": "string", "format": "date-time" }, "limit": { "type": "integer", "format": "uint64" }, "session_id": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "search": { "type": "string" } } }, "ImportLdapUsersRequest": { "type": "object", "title": "ImportLdapUsersRequest", "required": [ "dns" ], "properties": { "dns": { "type": "array", "items": { "type": "string" } } } }, "LdapServerResponse": { "type": "object", "title": "LdapServerResponse", "required": [ "id", "name", "host", "port", "bind_dn", "user_filter", "base_dns", "tls_mode", "tls_verify", "enabled", "auto_link_sso_users", "description", "username_attribute", "ssh_key_attribute", "uuid_attribute" ], "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "bind_dn": { "type": "string" }, "user_filter": { "type": "string" }, "base_dns": { "type": "array", "items": { "type": "string" } }, "tls_mode": { "$ref": "#/components/schemas/TlsMode" }, "tls_verify": { "type": "boolean" }, "enabled": { "type": "boolean" }, "auto_link_sso_users": { "type": "boolean" }, "description": { "type": "string" }, "username_attribute": { "$ref": "#/components/schemas/LdapUsernameAttribute" }, "ssh_key_attribute": { "type": "string" }, "uuid_attribute": { "type": "string" } } }, "LdapUserResponse": { "type": "object", "title": "LdapUserResponse", "required": [ "username", "dn" ], "properties": { "username": { "type": "string" }, "email": { "type": "string" }, "display_name": { "type": "string" }, "dn": { "type": "string" } } }, "LdapUsernameAttribute": { "type": "string", "enum": [ "Cn", "Uid", "Email", "UserPrincipalName", "SamAccountName" ] }, "LogEntry": { "type": "object", "title": "LogEntry", "required": [ "id", "text", "values", "timestamp", "session_id" ], "properties": { "id": { "type": "string", "format": "uuid" }, "text": { "type": "string" }, "values": {}, "timestamp": { "type": "string", "format": "date-time" }, "session_id": { "type": "string", "format": "uuid" }, "username": { "type": "string" } } }, "NewOtpCredential": { "type": "object", "title": "NewOtpCredential", "required": [ "secret_key" ], "properties": { "secret_key": { "type": "array", "items": { "type": "integer", "format": "uint8" } } } }, "NewPasswordCredential": { "type": "object", "title": "NewPasswordCredential", "required": [ "password" ], "properties": { "password": { "type": "string" } } }, "NewPublicKeyCredential": { "type": "object", "title": "NewPublicKeyCredential", "required": [ "label", "openssh_public_key" ], "properties": { "label": { "type": "string" }, "openssh_public_key": { "type": "string" } } }, "NewSsoCredential": { "type": "object", "title": "NewSsoCredential", "required": [ "email" ], "properties": { "provider": { "type": "string" }, "email": { "type": "string" } } }, "PaginatedResponse_SessionSnapshot": { "type": "object", "title": "PaginatedResponse_SessionSnapshot", "required": [ "items", "offset", "total" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/SessionSnapshot" } }, "offset": { "type": "integer", "format": "uint64" }, "total": { "type": "integer", "format": "uint64" } } }, "ParameterUpdate": { "type": "object", "title": "ParameterUpdate", "required": [ "allow_own_credential_management" ], "properties": { "allow_own_credential_management": { "type": "boolean" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "uint32" }, "ssh_client_auth_publickey": { "type": "boolean" }, "ssh_client_auth_password": { "type": "boolean" }, "ssh_client_auth_keyboard_interactive": { "type": "boolean" } } }, "ParameterValues": { "type": "object", "title": "ParameterValues", "required": [ "allow_own_credential_management", "ssh_client_auth_publickey", "ssh_client_auth_password", "ssh_client_auth_keyboard_interactive" ], "properties": { "allow_own_credential_management": { "type": "boolean" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "uint32" }, "ssh_client_auth_publickey": { "type": "boolean" }, "ssh_client_auth_password": { "type": "boolean" }, "ssh_client_auth_keyboard_interactive": { "type": "boolean" } } }, "Recording": { "type": "object", "title": "Recording", "required": [ "id", "name", "started", "session_id", "kind" ], "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "started": { "type": "string", "format": "date-time" }, "ended": { "type": "string", "format": "date-time" }, "session_id": { "type": "string", "format": "uuid" }, "kind": { "$ref": "#/components/schemas/RecordingKind" } } }, "RecordingKind": { "type": "string", "enum": [ "Terminal", "Traffic" ] }, "Role": { "type": "object", "title": "Role", "required": [ "id", "name", "description" ], "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "RoleDataRequest": { "type": "object", "title": "RoleDataRequest", "required": [ "name" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" } } }, "SSHKey": { "type": "object", "title": "SSHKey", "required": [ "kind", "public_key_base64" ], "properties": { "kind": { "type": "string" }, "public_key_base64": { "type": "string" } } }, "SSHKnownHost": { "type": "object", "title": "SSHKnownHost", "required": [ "id", "host", "port", "key_type", "key_base64" ], "properties": { "id": { "type": "string", "format": "uuid" }, "host": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "key_type": { "type": "string" }, "key_base64": { "type": "string" } } }, "SSHTargetAuth": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/SSHTargetAuth_SshTargetPasswordAuth" }, { "$ref": "#/components/schemas/SSHTargetAuth_SshTargetPublicKeyAuth" } ], "discriminator": { "propertyName": "kind", "mapping": { "Password": "#/components/schemas/SSHTargetAuth_SshTargetPasswordAuth", "PublicKey": "#/components/schemas/SSHTargetAuth_SshTargetPublicKeyAuth" } } }, "SSHTargetAuth_SshTargetPasswordAuth": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "Password" ], "example": "Password" } } }, { "$ref": "#/components/schemas/SshTargetPasswordAuth" } ] }, "SSHTargetAuth_SshTargetPublicKeyAuth": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "PublicKey" ], "example": "PublicKey" } } }, { "$ref": "#/components/schemas/SshTargetPublicKeyAuth" } ] }, "SessionSnapshot": { "type": "object", "title": "SessionSnapshot", "required": [ "id", "started", "protocol" ], "properties": { "id": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "target": { "$ref": "#/components/schemas/Target" }, "started": { "type": "string", "format": "date-time" }, "ended": { "type": "string", "format": "date-time" }, "ticket_id": { "type": "string", "format": "uuid" }, "protocol": { "type": "string" } } }, "SshTargetPasswordAuth": { "type": "object", "title": "SshTargetPasswordAuth", "required": [ "password" ], "properties": { "password": { "type": "string" } } }, "SshTargetPublicKeyAuth": { "type": "object", "title": "SshTargetPublicKeyAuth" }, "Target": { "type": "object", "title": "Target", "required": [ "id", "name", "description", "allow_roles", "options" ], "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" }, "allow_roles": { "type": "array", "items": { "type": "string" } }, "options": { "$ref": "#/components/schemas/TargetOptions" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "uint32" }, "group_id": { "type": "string", "format": "uuid" } } }, "TargetDataRequest": { "type": "object", "title": "TargetDataRequest", "required": [ "name", "options" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "options": { "$ref": "#/components/schemas/TargetOptions" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "uint32" }, "group_id": { "type": "string", "format": "uuid" } } }, "TargetGroup": { "type": "object", "title": "TargetGroup", "required": [ "id", "name", "description" ], "properties": { "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" }, "color": { "$ref": "#/components/schemas/BootstrapThemeColor" } } }, "TargetGroupDataRequest": { "type": "object", "title": "TargetGroupDataRequest", "required": [ "name" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "color": { "$ref": "#/components/schemas/BootstrapThemeColor" } } }, "TargetHTTPOptions": { "type": "object", "title": "TargetHTTPOptions", "required": [ "url", "tls" ], "properties": { "url": { "type": "string" }, "tls": { "$ref": "#/components/schemas/Tls" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "external_host": { "type": "string" } } }, "TargetMySqlOptions": { "type": "object", "title": "TargetMySqlOptions", "required": [ "host", "port", "username", "tls" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "uint16" }, "username": { "type": "string" }, "password": { "type": "string" }, "tls": { "$ref": "#/components/schemas/Tls" }, "default_database_name": { "type": "string" } } }, "TargetOptions": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/TargetOptions_TargetSSHOptions" }, { "$ref": "#/components/schemas/TargetOptions_TargetHTTPOptions" }, { "$ref": "#/components/schemas/TargetOptions_TargetMySqlOptions" }, { "$ref": "#/components/schemas/TargetOptions_TargetPostgresOptions" }, { "$ref": "#/components/schemas/TargetOptions_TargetWebAdminOptions" } ], "discriminator": { "propertyName": "kind", "mapping": { "Ssh": "#/components/schemas/TargetOptions_TargetSSHOptions", "Http": "#/components/schemas/TargetOptions_TargetHTTPOptions", "MySql": "#/components/schemas/TargetOptions_TargetMySqlOptions", "Postgres": "#/components/schemas/TargetOptions_TargetPostgresOptions", "WebAdmin": "#/components/schemas/TargetOptions_TargetWebAdminOptions" } } }, "TargetOptions_TargetHTTPOptions": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "Http" ], "example": "Http" } } }, { "$ref": "#/components/schemas/TargetHTTPOptions" } ] }, "TargetOptions_TargetMySqlOptions": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "MySql" ], "example": "MySql" } } }, { "$ref": "#/components/schemas/TargetMySqlOptions" } ] }, "TargetOptions_TargetPostgresOptions": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "Postgres" ], "example": "Postgres" } } }, { "$ref": "#/components/schemas/TargetPostgresOptions" } ] }, "TargetOptions_TargetSSHOptions": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "Ssh" ], "example": "Ssh" } } }, { "$ref": "#/components/schemas/TargetSSHOptions" } ] }, "TargetOptions_TargetWebAdminOptions": { "allOf": [ { "type": "object", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "WebAdmin" ], "example": "WebAdmin" } } }, { "$ref": "#/components/schemas/TargetWebAdminOptions" } ] }, "TargetPostgresOptions": { "type": "object", "title": "TargetPostgresOptions", "required": [ "host", "port", "username", "tls" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "uint16" }, "username": { "type": "string" }, "password": { "type": "string" }, "tls": { "$ref": "#/components/schemas/Tls" }, "idle_timeout": { "type": "string" }, "default_database_name": { "type": "string" } } }, "TargetSSHOptions": { "type": "object", "title": "TargetSSHOptions", "required": [ "host", "port", "username", "auth" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "uint16" }, "username": { "type": "string" }, "allow_insecure_algos": { "type": "boolean" }, "auth": { "$ref": "#/components/schemas/SSHTargetAuth" } } }, "TargetWebAdminOptions": { "type": "object", "title": "TargetWebAdminOptions" }, "TestLdapServerRequest": { "type": "object", "title": "TestLdapServerRequest", "required": [ "host", "port", "bind_dn", "bind_password", "tls_mode", "tls_verify" ], "properties": { "host": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "bind_dn": { "type": "string" }, "bind_password": { "type": "string" }, "tls_mode": { "$ref": "#/components/schemas/TlsMode" }, "tls_verify": { "type": "boolean" } } }, "TestLdapServerResponse": { "type": "object", "title": "TestLdapServerResponse", "required": [ "success", "message" ], "properties": { "success": { "type": "boolean" }, "message": { "type": "string" }, "base_dns": { "type": "array", "items": { "type": "string" } } } }, "Ticket": { "type": "object", "title": "Ticket", "required": [ "id", "username", "description", "target", "created" ], "properties": { "id": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "description": { "type": "string" }, "target": { "type": "string" }, "uses_left": { "type": "integer", "format": "int16" }, "expiry": { "type": "string", "format": "date-time" }, "created": { "type": "string", "format": "date-time" } } }, "TicketAndSecret": { "type": "object", "title": "TicketAndSecret", "required": [ "ticket", "secret" ], "properties": { "ticket": { "$ref": "#/components/schemas/Ticket" }, "secret": { "type": "string" } } }, "Tls": { "type": "object", "title": "Tls", "required": [ "mode", "verify" ], "properties": { "mode": { "$ref": "#/components/schemas/TlsMode" }, "verify": { "type": "boolean" } } }, "TlsMode": { "type": "string", "enum": [ "Disabled", "Preferred", "Required" ] }, "UpdateLdapServerRequest": { "type": "object", "title": "UpdateLdapServerRequest", "required": [ "name", "host", "port", "bind_dn", "user_filter", "tls_mode", "tls_verify", "enabled", "auto_link_sso_users", "username_attribute", "ssh_key_attribute", "uuid_attribute" ], "properties": { "name": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "integer", "format": "int32" }, "bind_dn": { "type": "string" }, "bind_password": { "type": "string" }, "user_filter": { "type": "string" }, "tls_mode": { "$ref": "#/components/schemas/TlsMode" }, "tls_verify": { "type": "boolean" }, "enabled": { "type": "boolean" }, "auto_link_sso_users": { "type": "boolean" }, "description": { "type": "string" }, "username_attribute": { "$ref": "#/components/schemas/LdapUsernameAttribute" }, "ssh_key_attribute": { "type": "string" }, "uuid_attribute": { "type": "string" } } }, "User": { "type": "object", "title": "User", "required": [ "id", "username", "description" ], "properties": { "id": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "description": { "type": "string" }, "credential_policy": { "$ref": "#/components/schemas/UserRequireCredentialsPolicy" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "int64" }, "ldap_server_id": { "type": "string", "format": "uuid" } } }, "UserDataRequest": { "type": "object", "title": "UserDataRequest", "required": [ "username" ], "properties": { "username": { "type": "string" }, "credential_policy": { "$ref": "#/components/schemas/UserRequireCredentialsPolicy" }, "description": { "type": "string" }, "rate_limit_bytes_per_second": { "type": "integer", "format": "uint32" } } }, "UserRequireCredentialsPolicy": { "type": "object", "title": "UserRequireCredentialsPolicy", "properties": { "http": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialKind" } }, "ssh": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialKind" } }, "mysql": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialKind" } }, "postgres": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialKind" } } } } }, "securitySchemes": { "CookieSecurityScheme": { "type": "apiKey", "name": "warpgate-http-session", "in": "cookie" }, "TokenSecurityScheme": { "type": "apiKey", "name": "X-Warpgate-Token", "in": "header" } } } }