{
  "openapi": "3.0.0",
  "info": {
    "title": "Nexterm API",
    "description": "API documentation for Nexterm",
    "termsOfService": "",
    "version": "1.2.2-BETA"
  },
  "servers": [
    {
      "url": "/api",
      "description": "Production API server"
    },
    {
      "url": "http://localhost:6989/api",
      "description": "Development API server"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "session",
        "description": "Enter your session token to authenticate API requests"
      }
    },
    "schemas": {
      "Register": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "minLength": 3,
            "maxLength": 15,
            "pattern": "^[a-zA-Z0-9]+$",
            "description": "Username (3-15 characters, alphanumeric characters only)"
          },
          "password": {
            "type": "string",
            "minLength": 3,
            "maxLength": 150,
            "description": "Password (3-150 characters)"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "First name (1-50 characters)"
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Last name (1-50 characters)"
          }
        },
        "description": "Register request schema",
        "required": [
          "username",
          "password",
          "firstName",
          "lastName"
        ]
      },
      "TotpSetup": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Code"
          }
        },
        "description": "TotpSetup request schema",
        "required": [
          "code"
        ]
      },
      "PasswordChange": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "minLength": 3,
            "maxLength": 150,
            "description": "Password (3-150 characters)"
          }
        },
        "description": "PasswordChange request schema",
        "required": [
          "password"
        ]
      },
      "UpdateName": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "First name (1-50 characters)"
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Last name (1-50 characters)"
          }
        },
        "description": "UpdateName request schema"
      },
      "UpdateSessionSync": {
        "type": "object",
        "properties": {
          "sessionSync": {
            "type": "string",
            "enum": [
              "across_devices",
              "same_browser",
              "same_tab"
            ],
            "description": "Session sync (allowed values: across_devices, same_browser, same_tab)"
          }
        },
        "description": "UpdateSessionSync request schema",
        "required": [
          "sessionSync"
        ]
      },
      "UpdateAISettings": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Enabled"
          },
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "openai_codex",
              "anthropic",
              "google",
              "groq",
              "mistral",
              "deepseek",
              "xai",
              "openrouter",
              "openai_compatible",
              "ollama"
            ],
            "nullable": true,
            "description": "Provider (allowed values: openai, openai_codex, anthropic, google, groq, mistral, deepseek, xai, openrouter, openai_compatible, ollama)"
          },
          "model": {
            "type": "string",
            "maxLength": 100,
            "nullable": true,
            "description": "Model (maximum 100 characters)"
          },
          "apiKey": {
            "type": "string",
            "nullable": true,
            "description": "Api key"
          },
          "apiUrl": {
            "type": "string",
            "nullable": true,
            "description": "Api url"
          },
          "authMethod": {
            "type": "string",
            "enum": [
              "api_key",
              "subscription"
            ],
            "description": "Auth method (allowed values: api_key, subscription)"
          },
          "requireConfirmation": {
            "type": "boolean",
            "description": "Require confirmation"
          }
        },
        "description": "UpdateAISettings request schema"
      },
      "GenerateCommand": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "Session id"
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Prompt (1-2000 characters)"
          },
          "shell": {
            "type": "string",
            "maxLength": 100,
            "nullable": true,
            "description": "Shell (maximum 100 characters)"
          },
          "rejected": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 2000,
              "description": "Rejected item (maximum 2000 characters)"
            },
            "description": "Rejected"
          }
        },
        "description": "GenerateCommand request schema",
        "required": [
          "sessionId",
          "prompt"
        ]
      },
      "OauthExchange": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code"
          },
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "openai_codex",
              "anthropic",
              "google",
              "groq",
              "mistral",
              "deepseek",
              "xai",
              "openrouter",
              "openai_compatible",
              "ollama"
            ],
            "description": "Provider (allowed values: openai, openai_codex, anthropic, google, groq, mistral, deepseek, xai, openrouter, openai_compatible, ollama)"
          }
        },
        "description": "OauthExchange request schema",
        "required": [
          "code"
        ]
      },
      "GetAuditLogs": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Organization id"
          },
          "action": {
            "type": "string",
            "maxLength": 100,
            "description": "Action (maximum 100 characters)"
          },
          "resource": {
            "type": "string",
            "maxLength": 50,
            "description": "Resource (maximum 50 characters)"
          },
          "startDate": {
            "type": "string",
            "description": "Start date"
          },
          "endDate": {
            "type": "string",
            "description": "End date"
          },
          "limit": {
            "type": "integer",
            "default": 50,
            "minimum": 1,
            "maximum": 1000,
            "description": "Limit (between 1 and 1000, default: 50)"
          },
          "offset": {
            "type": "integer",
            "default": 0,
            "minimum": 0,
            "description": "Offset (minimum value 0, default: 0)"
          }
        },
        "description": "GetAuditLogs request schema"
      },
      "UpdateOrganizationAuditSettings": {
        "type": "object",
        "properties": {
          "requireConnectionReason": {
            "type": "boolean",
            "description": "Require connection reason"
          },
          "enableFileOperationAudit": {
            "type": "boolean",
            "description": "Enable file operation audit"
          },
          "enableServerConnectionAudit": {
            "type": "boolean",
            "description": "Enable server connection audit"
          },
          "enableIdentityManagementAudit": {
            "type": "boolean",
            "description": "Enable identity management audit"
          },
          "enableIdentityCredentialsAccessAudit": {
            "type": "boolean",
            "description": "Enable identity credentials access audit"
          },
          "enableServerManagementAudit": {
            "type": "boolean",
            "description": "Enable server management audit"
          },
          "enableFolderManagementAudit": {
            "type": "boolean",
            "description": "Enable folder management audit"
          },
          "enableScriptExecutionAudit": {
            "type": "boolean",
            "description": "Enable script execution audit"
          },
          "enableAIOperationAudit": {
            "type": "boolean",
            "description": "Enable a i operation audit"
          },
          "enableSessionRecording": {
            "type": "boolean",
            "description": "Enable session recording"
          },
          "recordingRetentionDays": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3650,
            "description": "Recording retention days (between 1 and 3650)"
          }
        },
        "description": "UpdateOrganizationAuditSettings request schema"
      },
      "Login": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "maxLength": 255,
            "description": "Username (maximum 255 characters)"
          },
          "password": {
            "type": "string",
            "maxLength": 255,
            "description": "Password (maximum 255 characters)"
          },
          "code": {
            "type": "integer",
            "description": "Code"
          }
        },
        "description": "Login request schema",
        "required": [
          "username",
          "password"
        ]
      },
      "Token": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Token"
          }
        },
        "description": "Token request schema",
        "required": [
          "token"
        ]
      },
      "CreateDeviceCode": {
        "type": "object",
        "properties": {
          "clientType": {
            "type": "string",
            "enum": [
              "mobile",
              "connector",
              "web"
            ],
            "description": "Client type (allowed values: mobile, connector, web)"
          }
        },
        "description": "CreateDeviceCode request schema",
        "required": [
          "clientType"
        ]
      },
      "AuthorizeDeviceCode": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code"
          }
        },
        "description": "AuthorizeDeviceCode request schema",
        "required": [
          "code"
        ]
      },
      "PollDeviceCode": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Token"
          }
        },
        "description": "PollDeviceCode request schema",
        "required": [
          "token"
        ]
      },
      "GetDeviceCodeInfo": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code"
          }
        },
        "description": "GetDeviceCodeInfo request schema",
        "required": [
          "code"
        ]
      },
      "CheckLinkStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code"
          }
        },
        "description": "CheckLinkStatus request schema",
        "required": [
          "code"
        ]
      },
      "CreateEngine": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name (minimum 1 characters)"
          }
        },
        "description": "CreateEngine request schema",
        "required": [
          "name"
        ]
      },
      "FolderCreation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "parentId": {
            "type": "integer",
            "nullable": true,
            "description": "Parent id"
          },
          "organizationId": {
            "type": "integer",
            "nullable": true,
            "description": "Organization id"
          }
        },
        "description": "FolderCreation request schema",
        "required": [
          "name"
        ]
      },
      "FolderEdit": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "parentId": {
            "type": "integer",
            "nullable": true,
            "description": "Parent id"
          },
          "organizationId": {
            "type": "integer",
            "nullable": true,
            "description": "Organization id"
          }
        },
        "description": "FolderEdit request schema"
      },
      "CreateIdentity": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "username": {
            "type": "string",
            "maxLength": 255,
            "description": "Username (maximum 255 characters)"
          },
          "type": {
            "type": "string",
            "enum": [
              "password",
              "ssh",
              "both",
              "password-only"
            ],
            "description": "Type (allowed values: password, ssh, both, password-only)"
          },
          "password": {
            "type": "string",
            "description": "Password"
          },
          "sshKey": {
            "type": "string",
            "description": "Ssh key"
          },
          "passphrase": {
            "type": "string",
            "description": "Passphrase"
          },
          "organizationId": {
            "type": "integer",
            "description": "Organization id"
          }
        },
        "description": "CreateIdentity request schema",
        "required": [
          "name",
          "type"
        ]
      },
      "UpdateIdentity": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "username": {
            "type": "string",
            "maxLength": 255,
            "description": "Username (maximum 255 characters)"
          },
          "type": {
            "type": "string",
            "enum": [
              "password",
              "ssh",
              "both",
              "password-only"
            ],
            "description": "Type (allowed values: password, ssh, both, password-only)"
          },
          "password": {
            "type": "string",
            "description": "Password"
          },
          "sshKey": {
            "type": "string",
            "description": "Ssh key"
          },
          "passphrase": {
            "type": "string",
            "description": "Passphrase"
          },
          "organizationId": {
            "type": "integer",
            "description": "Organization id"
          }
        },
        "description": "UpdateIdentity request schema"
      },
      "MoveIdentity": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "integer",
            "description": "Organization id"
          }
        },
        "description": "MoveIdentity request schema",
        "required": [
          "organizationId"
        ]
      },
      "UpdateKeymap": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 50,
            "description": "Key (maximum 50 characters)"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled"
          }
        },
        "description": "UpdateKeymap request schema"
      },
      "LdapProvider": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "host": {
            "type": "string",
            "description": "Host"
          },
          "port": {
            "type": "integer",
            "default": 389,
            "minimum": 1,
            "maximum": 65535,
            "description": "Port (between 1 and 65535, default: 389)"
          },
          "bindDN": {
            "type": "string",
            "description": "Bind d n"
          },
          "bindPassword": {
            "type": "string",
            "nullable": true,
            "description": "Bind password"
          },
          "baseDN": {
            "type": "string",
            "description": "Base d n"
          },
          "userSearchFilter": {
            "type": "string",
            "default": "(uid={{username}})",
            "description": "User search filter (default: \"(uid={{username}})\")"
          },
          "usernameAttribute": {
            "type": "string",
            "default": "uid",
            "description": "Username attribute (default: \"uid\")"
          },
          "firstNameAttribute": {
            "type": "string",
            "default": "givenName",
            "description": "First name attribute (default: \"givenName\")"
          },
          "lastNameAttribute": {
            "type": "string",
            "default": "sn",
            "description": "Last name attribute (default: \"sn\")"
          },
          "enabled": {
            "type": "boolean",
            "default": false,
            "description": "Enabled (default: false)"
          },
          "useTLS": {
            "type": "boolean",
            "default": false,
            "description": "Use t l s (default: false)"
          }
        },
        "description": "LdapProvider request schema",
        "required": [
          "name",
          "host",
          "bindDN",
          "baseDN"
        ]
      },
      "LdapProviderUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "host": {
            "type": "string",
            "description": "Host"
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535,
            "description": "Port (between 1 and 65535)"
          },
          "bindDN": {
            "type": "string",
            "description": "Bind d n"
          },
          "bindPassword": {
            "type": "string",
            "nullable": true,
            "description": "Bind password"
          },
          "baseDN": {
            "type": "string",
            "description": "Base d n"
          },
          "userSearchFilter": {
            "type": "string",
            "description": "User search filter"
          },
          "usernameAttribute": {
            "type": "string",
            "description": "Username attribute"
          },
          "firstNameAttribute": {
            "type": "string",
            "description": "First name attribute"
          },
          "lastNameAttribute": {
            "type": "string",
            "description": "Last name attribute"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled"
          },
          "useTLS": {
            "type": "boolean",
            "description": "Use t l s"
          }
        },
        "description": "LdapProviderUpdate request schema"
      },
      "UpdateMonitoringSettings": {
        "type": "object",
        "properties": {
          "statusCheckerEnabled": {
            "type": "boolean",
            "description": "Status checker enabled"
          },
          "statusInterval": {
            "type": "integer",
            "minimum": 10,
            "maximum": 300,
            "description": "Status interval (between 10 and 300)"
          },
          "monitoringEnabled": {
            "type": "boolean",
            "description": "Monitoring enabled"
          },
          "monitoringInterval": {
            "type": "integer",
            "minimum": 30,
            "maximum": 600,
            "description": "Monitoring interval (between 30 and 600)"
          },
          "dataRetentionHours": {
            "type": "integer",
            "minimum": 1,
            "maximum": 24,
            "description": "Data retention hours (between 1 and 24)"
          },
          "connectionTimeout": {
            "type": "integer",
            "minimum": 5,
            "maximum": 120,
            "description": "Connection timeout (between 5 and 120)"
          },
          "batchSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Batch size (between 1 and 50)"
          }
        },
        "description": "UpdateMonitoringSettings request schema"
      },
      "OidcProvider": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "issuer": {
            "type": "string",
            "description": "Issuer"
          },
          "clientId": {
            "type": "string",
            "description": "Client id"
          },
          "clientSecret": {
            "type": "string",
            "nullable": true,
            "description": "Client secret"
          },
          "redirectUri": {
            "type": "string",
            "description": "Redirect uri"
          },
          "endSessionEndpoint": {
            "type": "string",
            "nullable": true,
            "description": "End session endpoint"
          },
          "scope": {
            "type": "string",
            "default": "openid profile",
            "description": "Scope (default: \"openid profile\")"
          },
          "enabled": {
            "type": "boolean",
            "default": false,
            "description": "Enabled (default: false)"
          },
          "firstNameAttribute": {
            "type": "string",
            "default": "given_name",
            "description": "First name attribute (default: \"given_name\")"
          },
          "lastNameAttribute": {
            "type": "string",
            "default": "family_name",
            "description": "Last name attribute (default: \"family_name\")"
          },
          "usernameAttribute": {
            "type": "string",
            "default": "preferred_username",
            "description": "Username attribute (default: \"preferred_username\")"
          },
          "isInternal": {
            "type": "boolean",
            "default": false,
            "description": "Is internal (default: false)"
          },
          "groupsAttribute": {
            "type": "string",
            "nullable": true,
            "description": "Groups attribute"
          },
          "requiredGroup": {
            "type": "string",
            "nullable": true,
            "description": "Required group"
          },
          "groupMappings": {
            "type": "array",
            "default": [],
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "description": "Value (1-200 characters)"
                },
                "organizationId": {
                  "type": "integer",
                  "description": "Organization id"
                },
                "role": {
                  "type": "string",
                  "default": "member",
                  "enum": [
                    "owner",
                    "member"
                  ],
                  "description": "Role (allowed values: owner, member, default: \"member\")"
                }
              },
              "description": "Group mappings item"
            },
            "description": "Group mappings (default: [])"
          }
        },
        "description": "OidcProvider request schema",
        "required": [
          "name",
          "issuer",
          "clientId",
          "redirectUri"
        ]
      },
      "OidcProviderUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "issuer": {
            "type": "string",
            "description": "Issuer"
          },
          "clientId": {
            "type": "string",
            "description": "Client id"
          },
          "clientSecret": {
            "type": "string",
            "nullable": true,
            "description": "Client secret"
          },
          "redirectUri": {
            "type": "string",
            "description": "Redirect uri"
          },
          "endSessionEndpoint": {
            "type": "string",
            "nullable": true,
            "description": "End session endpoint"
          },
          "scope": {
            "type": "string",
            "description": "Scope"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled"
          },
          "firstNameAttribute": {
            "type": "string",
            "description": "First name attribute"
          },
          "lastNameAttribute": {
            "type": "string",
            "description": "Last name attribute"
          },
          "usernameAttribute": {
            "type": "string",
            "description": "Username attribute"
          },
          "isInternal": {
            "type": "boolean",
            "description": "Is internal"
          },
          "allowRegistration": {
            "type": "boolean",
            "description": "Allow registration"
          },
          "groupsAttribute": {
            "type": "string",
            "nullable": true,
            "description": "Groups attribute"
          },
          "requiredGroup": {
            "type": "string",
            "nullable": true,
            "description": "Required group"
          },
          "groupMappings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "value": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "description": "Value (1-200 characters)"
                },
                "organizationId": {
                  "type": "integer",
                  "description": "Organization id"
                },
                "role": {
                  "type": "string",
                  "default": "member",
                  "enum": [
                    "owner",
                    "member"
                  ],
                  "description": "Role (allowed values: owner, member, default: \"member\")"
                }
              },
              "description": "Group mappings item"
            },
            "description": "Group mappings"
          }
        },
        "description": "OidcProviderUpdate request schema"
      },
      "CreateOrganizationSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Name (1-100 characters)"
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "nullable": true,
            "description": "Description (maximum 500 characters)"
          }
        },
        "description": "CreateOrganizationSchema request schema",
        "required": [
          "name"
        ]
      },
      "UpdateOrganizationSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Name (1-100 characters)"
          },
          "description": {
            "type": "string",
            "maxLength": 500,
            "nullable": true,
            "description": "Description (maximum 500 characters)"
          }
        },
        "description": "UpdateOrganizationSchema request schema"
      },
      "InviteUserSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Username"
          }
        },
        "description": "InviteUserSchema request schema",
        "required": [
          "username"
        ]
      },
      "RespondToInvitationSchema": {
        "type": "object",
        "properties": {
          "accept": {
            "type": "boolean",
            "description": "Accept"
          }
        },
        "description": "RespondToInvitationSchema request schema",
        "required": [
          "accept"
        ]
      },
      "UpdateSessionSettingsSchema": {
        "type": "object",
        "properties": {
          "enableLiveSessionSharing": {
            "type": "boolean",
            "description": "Enable live session sharing"
          }
        },
        "description": "UpdateSessionSettingsSchema request schema"
      },
      "PasskeyRename": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          }
        },
        "description": "PasskeyRename request schema",
        "required": [
          "name"
        ]
      },
      "PasskeyRegistration": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "description": "Response"
          },
          "name": {
            "type": "string",
            "default": "Passkey",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters, default: \"Passkey\")"
          },
          "origin": {
            "type": "string",
            "description": "Origin"
          }
        },
        "description": "PasskeyRegistration request schema",
        "required": [
          "response",
          "origin"
        ]
      },
      "PasskeyAuthentication": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "description": "Response"
          },
          "origin": {
            "type": "string",
            "description": "Origin"
          }
        },
        "description": "PasskeyAuthentication request schema",
        "required": [
          "response",
          "origin"
        ]
      },
      "PasskeyAuthOptions": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "minLength": 3,
            "maxLength": 15,
            "pattern": "^[a-zA-Z0-9]+$",
            "description": "Username (3-15 characters, alphanumeric characters only)"
          },
          "origin": {
            "type": "string",
            "description": "Origin"
          }
        },
        "description": "PasskeyAuthOptions request schema",
        "required": [
          "origin"
        ]
      },
      "CreateGroup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "color": {
            "type": "string",
            "description": "Color"
          }
        },
        "description": "CreateGroup request schema",
        "required": [
          "name"
        ]
      },
      "UpdateGroup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Name (1-50 characters)"
          },
          "color": {
            "type": "string",
            "description": "Color"
          },
          "sortOrder": {
            "type": "integer",
            "minimum": 0,
            "description": "Sort order (minimum value 0)"
          }
        },
        "description": "UpdateGroup request schema"
      },
      "SetPermissions": {
        "type": "object",
        "properties": {
          "permissions": {
            "type": "object",
            "description": "Permissions"
          }
        },
        "description": "SetPermissions request schema",
        "required": [
          "permissions"
        ]
      },
      "AddMember": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "integer",
            "description": "Account id"
          }
        },
        "description": "AddMember request schema",
        "required": [
          "accountId"
        ]
      },
      "SetGroups": {
        "type": "object",
        "properties": {
          "groupIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "description": "Group ids item"
            },
            "description": "Group ids"
          }
        },
        "description": "SetGroups request schema",
        "required": [
          "groupIds"
        ]
      },
      "ReorderGroups": {
        "type": "object",
        "properties": {
          "order": {
            "type": "array",
            "items": {
              "type": "integer",
              "description": "Order item"
            },
            "description": "Order"
          }
        },
        "description": "ReorderGroups request schema",
        "required": [
          "order"
        ]
      },
      "Preferences": {
        "type": "object",
        "properties": {
          "terminal": {
            "type": "object",
            "properties": {
              "fontFamily": {
                "type": "string",
                "maxLength": 200,
                "description": "Font family (maximum 200 characters)"
              },
              "fontSize": {
                "type": "integer",
                "minimum": 10,
                "maximum": 32,
                "description": "Font size (between 10 and 32)"
              },
              "cursorStyle": {
                "type": "string",
                "enum": [
                  "block",
                  "underline",
                  "bar"
                ],
                "description": "Cursor style (allowed values: block, underline, bar)"
              },
              "cursorBlink": {
                "type": "boolean",
                "description": "Cursor blink"
              },
              "smartCopyPaste": {
                "type": "boolean",
                "description": "Smart copy paste"
              },
              "autoReconnect": {
                "type": "boolean",
                "description": "Auto reconnect"
              },
              "copyPasteBehavior": {
                "type": "string",
                "enum": [
                  "none",
                  "smart",
                  "keyboard",
                  "mouse",
                  "mouseKeyboard"
                ],
                "description": "Copy paste behavior (allowed values: none, smart, keyboard, mouse, mouseKeyboard)"
              },
              "passwordPromptDetection": {
                "type": "boolean",
                "description": "Password prompt detection"
              },
              "theme": {
                "type": "string",
                "maxLength": 50,
                "description": "Theme (maximum 50 characters)"
              }
            },
            "description": "Terminal"
          },
          "theme": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "light",
                  "dark",
                  "auto",
                  "oled"
                ],
                "description": "Mode (allowed values: light, dark, auto, oled)"
              },
              "accentColor": {
                "type": "string",
                "description": "Accent color"
              },
              "uiScale": {
                "type": "number",
                "minimum": 0.7,
                "maximum": 1.3,
                "description": "Ui scale (between 0.7 and 1.3)"
              }
            },
            "description": "Theme"
          },
          "files": {
            "type": "object",
            "properties": {
              "showThumbnails": {
                "type": "boolean",
                "description": "Show thumbnails"
              },
              "defaultViewMode": {
                "type": "string",
                "enum": [
                  "list",
                  "grid"
                ],
                "description": "Default view mode (allowed values: list, grid)"
              },
              "showHiddenFiles": {
                "type": "boolean",
                "description": "Show hidden files"
              },
              "confirmBeforeDelete": {
                "type": "boolean",
                "description": "Confirm before delete"
              },
              "dragDropAction": {
                "type": "string",
                "enum": [
                  "ask",
                  "copy",
                  "move"
                ],
                "description": "Drag drop action (allowed values: ask, copy, move)"
              }
            },
            "description": "Files"
          },
          "general": {
            "type": "object",
            "properties": {
              "language": {
                "type": "string",
                "maxLength": 10,
                "description": "Language (maximum 10 characters)"
              },
              "sidebarCollapsed": {
                "type": "boolean",
                "description": "Sidebar collapsed"
              }
            },
            "description": "General"
          }
        },
        "description": "Preferences request schema"
      },
      "CreatePVEServer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name"
          },
          "folderId": {
            "type": "number",
            "nullable": true,
            "description": "Folder id"
          },
          "organizationId": {
            "type": "number",
            "nullable": true,
            "description": "Organization id"
          },
          "ip": {
            "type": "string",
            "description": "Ip"
          },
          "port": {
            "type": "number",
            "description": "Port"
          },
          "username": {
            "type": "string",
            "description": "Username"
          },
          "password": {
            "type": "string",
            "description": "Password"
          },
          "monitoringEnabled": {
            "type": "boolean",
            "description": "Monitoring enabled"
          }
        },
        "description": "CreatePVEServer request schema",
        "required": [
          "name",
          "ip",
          "port",
          "username",
          "password"
        ]
      },
      "UpdatePVEServer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name"
          },
          "folderId": {
            "type": "number",
            "description": "Folder id"
          },
          "organizationId": {
            "type": "number",
            "nullable": true,
            "description": "Organization id"
          },
          "ip": {
            "type": "string",
            "description": "Ip"
          },
          "port": {
            "type": "number",
            "description": "Port"
          },
          "username": {
            "type": "string",
            "description": "Username"
          },
          "password": {
            "type": "string",
            "description": "Password"
          },
          "monitoringEnabled": {
            "type": "boolean",
            "description": "Monitoring enabled"
          }
        },
        "description": "UpdatePVEServer request schema"
      },
      "ScriptCreation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "Content (minimum 1 characters)"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description"
          },
          "organizationId": {
            "type": "integer",
            "nullable": true,
            "description": "Organization id"
          },
          "osFilter": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Os filter item"
            },
            "description": "Os filter"
          }
        },
        "description": "ScriptCreation request schema",
        "required": [
          "name",
          "content"
        ]
      },
      "ScriptEdit": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "Content (minimum 1 characters)"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description"
          },
          "osFilter": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Os filter item"
            },
            "description": "Os filter"
          }
        },
        "description": "ScriptEdit request schema"
      },
      "ScriptReposition": {
        "type": "object",
        "properties": {
          "targetId": {
            "type": "integer",
            "description": "Target id"
          }
        },
        "description": "ScriptReposition request schema",
        "required": [
          "targetId"
        ]
      },
      "CreateServer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name"
          },
          "folderId": {
            "type": "number",
            "nullable": true,
            "description": "Folder id"
          },
          "organizationId": {
            "type": "number",
            "nullable": true,
            "description": "Organization id"
          },
          "icon": {
            "type": "string",
            "description": "Icon"
          },
          "type": {
            "type": "string",
            "default": "server",
            "enum": [
              "server"
            ],
            "description": "Type (allowed values: server, default: \"server\")"
          },
          "renderer": {
            "type": "string",
            "description": "Renderer"
          },
          "identities": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Identities item"
            },
            "description": "Identities"
          },
          "config": {
            "type": "object",
            "properties": {
              "protocol": {
                "type": "string",
                "enum": [
                  "ssh",
                  "telnet",
                  "rdp",
                  "vnc",
                  "sftp",
                  "ftp",
                  "ftps",
                  "demo"
                ],
                "description": "Protocol (allowed values: ssh, telnet, rdp, vnc, sftp, ftp, ftps, demo)"
              },
              "ip": {
                "type": "string",
                "description": "Ip"
              },
              "port": {
                "type": "string",
                "description": "Port"
              },
              "keyboardLayout": {
                "type": "string",
                "description": "Keyboard layout"
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "Monitoring enabled"
              },
              "nodeName": {
                "type": "string",
                "description": "Node name"
              },
              "vmid": {
                "type": "string",
                "description": "Vmid"
              },
              "rdpSecurity": {
                "type": "string",
                "enum": [
                  "any",
                  "nla",
                  "tls",
                  "rdp",
                  "vmconnect"
                ],
                "description": "Rdp security (allowed values: any, nla, tls, rdp, vmconnect)"
              },
              "jumpHosts": {
                "type": "array",
                "items": {
                  "type": "number",
                  "description": "Jump hosts item"
                },
                "description": "Jump hosts"
              },
              "macAddress": {
                "type": "string",
                "description": "Mac address"
              },
              "wakeOnLanEnabled": {
                "type": "boolean",
                "description": "Wake on lan enabled"
              },
              "wolBroadcastAddress": {
                "type": "string",
                "description": "Wol broadcast address"
              }
            },
            "description": "Config"
          }
        },
        "description": "CreateServer request schema",
        "required": [
          "name",
          "config"
        ]
      },
      "UpdateServer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name"
          },
          "folderId": {
            "type": "number",
            "nullable": true,
            "description": "Folder id"
          },
          "organizationId": {
            "type": "number",
            "nullable": true,
            "description": "Organization id"
          },
          "icon": {
            "type": "string",
            "description": "Icon"
          },
          "type": {
            "type": "string",
            "enum": [
              "server",
              "pve-shell",
              "pve-lxc",
              "pve-qemu"
            ],
            "description": "Type (allowed values: server, pve-shell, pve-lxc, pve-qemu)"
          },
          "renderer": {
            "type": "string",
            "description": "Renderer"
          },
          "identities": {
            "type": "array",
            "items": {
              "type": "number",
              "description": "Identities item"
            },
            "description": "Identities"
          },
          "config": {
            "type": "object",
            "properties": {
              "protocol": {
                "type": "string",
                "enum": [
                  "ssh",
                  "telnet",
                  "rdp",
                  "vnc",
                  "sftp",
                  "ftp",
                  "ftps",
                  "demo"
                ],
                "description": "Protocol (allowed values: ssh, telnet, rdp, vnc, sftp, ftp, ftps, demo)"
              },
              "ip": {
                "type": "string",
                "description": "Ip"
              },
              "port": {
                "type": "string",
                "description": "Port"
              },
              "keyboardLayout": {
                "type": "string",
                "description": "Keyboard layout"
              },
              "monitoringEnabled": {
                "type": "boolean",
                "description": "Monitoring enabled"
              },
              "nodeName": {
                "type": "string",
                "description": "Node name"
              },
              "vmid": {
                "type": "string",
                "description": "Vmid"
              },
              "rdpSecurity": {
                "type": "string",
                "enum": [
                  "any",
                  "nla",
                  "tls",
                  "rdp",
                  "vmconnect"
                ],
                "description": "Rdp security (allowed values: any, nla, tls, rdp, vmconnect)"
              },
              "jumpHosts": {
                "type": "array",
                "items": {
                  "type": "number",
                  "description": "Jump hosts item"
                },
                "description": "Jump hosts"
              },
              "macAddress": {
                "type": "string",
                "description": "Mac address"
              },
              "wakeOnLanEnabled": {
                "type": "boolean",
                "description": "Wake on lan enabled"
              },
              "wolBroadcastAddress": {
                "type": "string",
                "description": "Wol broadcast address"
              }
            },
            "description": "Config"
          }
        },
        "description": "UpdateServer request schema"
      },
      "RepositionServer": {
        "type": "object",
        "properties": {
          "targetId": {
            "type": "number",
            "nullable": true,
            "description": "Target id"
          },
          "placement": {
            "type": "string",
            "enum": [
              "before",
              "after"
            ],
            "description": "Placement (allowed values: before, after)"
          },
          "folderId": {
            "type": "number",
            "nullable": true,
            "description": "Folder id"
          },
          "organizationId": {
            "type": "number",
            "nullable": true,
            "description": "Organization id"
          }
        },
        "description": "RepositionServer request schema",
        "required": [
          "placement"
        ]
      },
      "CreateSession": {
        "type": "object",
        "properties": {
          "entryId": {
            "type": "number",
            "description": "Entry id"
          },
          "identityId": {
            "type": "number",
            "nullable": true,
            "description": "Identity id"
          },
          "connectionReason": {
            "type": "string",
            "nullable": true,
            "description": "Connection reason"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "description": "Type"
          },
          "tabId": {
            "type": "string",
            "nullable": true,
            "description": "Tab id"
          },
          "browserId": {
            "type": "string",
            "nullable": true,
            "description": "Browser id"
          },
          "displayDpi": {
            "type": "integer",
            "minimum": 96,
            "maximum": 384,
            "description": "Display dpi (between 96 and 384)"
          },
          "scriptId": {
            "type": "number",
            "nullable": true,
            "description": "Script id"
          },
          "startPath": {
            "type": "string",
            "nullable": true,
            "description": "Start path"
          },
          "directIdentity": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "maxLength": 255,
                "description": "Username (maximum 255 characters)"
              },
              "type": {
                "type": "string",
                "enum": [
                  "password",
                  "ssh",
                  "both",
                  "password-only"
                ],
                "description": "Type (allowed values: password, ssh, both, password-only)"
              },
              "password": {
                "type": "string",
                "description": "Password"
              },
              "sshKey": {
                "type": "string",
                "description": "Ssh key"
              },
              "passphrase": {
                "type": "string",
                "description": "Passphrase"
              }
            },
            "description": "Direct identity"
          }
        },
        "description": "CreateSession request schema",
        "required": [
          "entryId"
        ]
      },
      "ReconnectSession": {
        "type": "object",
        "properties": {
          "entryId": {
            "type": "number",
            "description": "Entry id"
          },
          "identityId": {
            "type": "number",
            "nullable": true,
            "description": "Identity id"
          },
          "connectionReason": {
            "type": "string",
            "nullable": true,
            "description": "Connection reason"
          },
          "type": {
            "type": "string",
            "nullable": true,
            "description": "Type"
          },
          "tabId": {
            "type": "string",
            "nullable": true,
            "description": "Tab id"
          },
          "browserId": {
            "type": "string",
            "nullable": true,
            "description": "Browser id"
          },
          "displayDpi": {
            "type": "integer",
            "minimum": 96,
            "maximum": 384,
            "description": "Display dpi (between 96 and 384)"
          },
          "scriptId": {
            "type": "number",
            "nullable": true,
            "description": "Script id"
          },
          "startPath": {
            "type": "string",
            "nullable": true,
            "description": "Start path"
          },
          "directIdentity": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "maxLength": 255,
                "description": "Username (maximum 255 characters)"
              },
              "type": {
                "type": "string",
                "enum": [
                  "password",
                  "ssh",
                  "both",
                  "password-only"
                ],
                "description": "Type (allowed values: password, ssh, both, password-only)"
              },
              "password": {
                "type": "string",
                "description": "Password"
              },
              "sshKey": {
                "type": "string",
                "description": "Ssh key"
              },
              "passphrase": {
                "type": "string",
                "description": "Passphrase"
              }
            },
            "description": "Direct identity"
          },
          "connectionGeneration": {
            "type": "integer",
            "minimum": 0,
            "description": "Connection generation (minimum value 0)"
          }
        },
        "description": "ReconnectSession request schema",
        "required": [
          "entryId",
          "connectionGeneration"
        ]
      },
      "SessionId": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id"
          }
        },
        "description": "SessionId request schema",
        "required": [
          "id"
        ]
      },
      "ResumeSession": {
        "type": "object",
        "properties": {
          "tabId": {
            "type": "string",
            "nullable": true,
            "description": "Tab id"
          },
          "browserId": {
            "type": "string",
            "nullable": true,
            "description": "Browser id"
          }
        },
        "description": "ResumeSession request schema"
      },
      "DuplicateSession": {
        "type": "object",
        "properties": {
          "tabId": {
            "type": "string",
            "nullable": true,
            "description": "Tab id"
          },
          "browserId": {
            "type": "string",
            "nullable": true,
            "description": "Browser id"
          }
        },
        "description": "DuplicateSession request schema"
      },
      "SnippetCreation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "command": {
            "type": "string",
            "minLength": 1,
            "description": "Command (minimum 1 characters)"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description"
          },
          "organizationId": {
            "type": "integer",
            "nullable": true,
            "description": "Organization id"
          },
          "osFilter": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Os filter item"
            },
            "description": "Os filter"
          }
        },
        "description": "SnippetCreation request schema",
        "required": [
          "name",
          "command"
        ]
      },
      "SnippetEdit": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "command": {
            "type": "string",
            "minLength": 1,
            "description": "Command (minimum 1 characters)"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description"
          },
          "osFilter": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "description": "Os filter item"
            },
            "description": "Os filter"
          }
        },
        "description": "SnippetEdit request schema"
      },
      "SnippetReposition": {
        "type": "object",
        "properties": {
          "targetId": {
            "type": "integer",
            "description": "Target id"
          }
        },
        "description": "SnippetReposition request schema",
        "required": [
          "targetId"
        ]
      },
      "SourceCreation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "url": {
            "type": "string",
            "description": "Url"
          }
        },
        "description": "SourceCreation request schema",
        "required": [
          "name",
          "url"
        ]
      },
      "SourceUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "url": {
            "type": "string",
            "description": "Url"
          },
          "enabled": {
            "type": "boolean",
            "description": "Enabled"
          }
        },
        "description": "SourceUpdate request schema"
      },
      "ValidateUrl": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Url"
          }
        },
        "description": "ValidateUrl request schema",
        "required": [
          "url"
        ]
      },
      "ThemeCreation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "css": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100000,
            "description": "Css (1-100000 characters)"
          },
          "description": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "description": "Description (maximum 1000 characters)"
          }
        },
        "description": "ThemeCreation request schema",
        "required": [
          "name",
          "css"
        ]
      },
      "ThemeUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name (1-255 characters)"
          },
          "css": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100000,
            "description": "Css (1-100000 characters)"
          },
          "description": {
            "type": "string",
            "maxLength": 1000,
            "nullable": true,
            "description": "Description (maximum 1000 characters)"
          }
        },
        "description": "ThemeUpdate request schema"
      },
      "ActiveTheme": {
        "type": "object",
        "properties": {
          "themeId": {
            "type": "integer",
            "nullable": true,
            "description": "Theme id"
          }
        },
        "description": "ActiveTheme request schema",
        "required": [
          "themeId"
        ]
      },
      "CreateUser": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "minLength": 3,
            "maxLength": 15,
            "pattern": "^[a-zA-Z0-9]+$",
            "description": "Username (3-15 characters, alphanumeric characters only)"
          },
          "password": {
            "type": "string",
            "minLength": 3,
            "maxLength": 150,
            "description": "Password (3-150 characters)"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "First name (1-50 characters)"
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "description": "Last name (1-50 characters)"
          }
        },
        "description": "CreateUser request schema",
        "required": [
          "username",
          "password",
          "firstName",
          "lastName"
        ]
      }
    }
  },
  "paths": {
    "/account/search": {
      "get": {
        "deprecated": false,
        "summary": "Search Users",
        "description": "Search for users by username, first name, or last name. Returns limited user info for autocomplete purposes. Requires at least 3 characters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of matching users (max 5)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "Search term (min 3 characters)",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/me": {
      "get": {
        "deprecated": false,
        "summary": "Get Current User Information",
        "description": "Retrieves the authenticated user's profile information including username, TOTP status, name, and role.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "User profile information",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/me/avatar": {
      "post": {
        "deprecated": false,
        "summary": "Upload Profile Picture",
        "description": "Uploads a profile picture for the authenticated user. The body must be the raw image bytes in the WebP format, cropped and resized by the client.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Profile picture successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "The image is missing, too large or not a WebP image",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string"
              }
            }
          },
          "description": "Raw WebP image data",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Remove Profile Picture",
        "description": "Removes the authenticated user's profile picture, falling back to the generated letter avatar.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Profile picture successfully removed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/{accountId}/avatar": {
      "get": {
        "deprecated": false,
        "summary": "Get Profile Picture",
        "description": "Returns the profile picture of the requested account as a WebP image. Authenticated through a session token in the query string so the URL can be used directly as an image source.",
        "security": [],
        "responses": {
          "200": {
            "description": "The profile picture",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "401": {
            "description": "Token is missing or invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "The account has no profile picture",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Id of the account",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "token",
            "in": "query",
            "description": "Session token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/password": {
      "patch": {
        "deprecated": false,
        "summary": "Update Password",
        "description": "Updates the authenticated user's password. Requires current authentication.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Password successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordChange"
              }
            }
          },
          "description": "New password information",
          "required": true
        }
      }
    },
    "/account/name": {
      "patch": {
        "deprecated": false,
        "summary": "Update User Name",
        "description": "Updates the authenticated user's first name and last name.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Name successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateName"
              }
            }
          },
          "description": "Name information containing firstName and lastName",
          "required": true
        }
      }
    },
    "/account/register": {
      "post": {
        "deprecated": false,
        "summary": "Register New Account",
        "description": "Creates a new user account. During first-time setup the first admin account is created. Afterwards, registration is only permitted when an administrator has enabled self-registration for the internal authentication provider.",
        "security": [],
        "responses": {
          "200": {
            "description": "Account creation successful or error information",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Register"
              }
            }
          },
          "description": "User registration information including username, password, and name details",
          "required": true
        }
      }
    },
    "/account/totp/secret": {
      "get": {
        "deprecated": false,
        "summary": "Get TOTP Secret",
        "description": "Retrieves the TOTP secret and QR code URL for setting up two-factor authentication. Used for configuring authenticator apps.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "TOTP secret and setup URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/totp/enable": {
      "post": {
        "deprecated": false,
        "summary": "Enable TOTP",
        "description": "Enables two-factor authentication for the user account by verifying a TOTP code from their authenticator app.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "TOTP successfully enabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or expired TOTP code",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TotpSetup"
              }
            }
          },
          "description": "TOTP verification code",
          "required": true
        }
      }
    },
    "/account/totp/disable": {
      "post": {
        "deprecated": false,
        "summary": "Disable TOTP",
        "description": "Disables two-factor authentication for the user account. Removes the requirement for TOTP codes during login.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "TOTP successfully disabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/session-sync": {
      "patch": {
        "deprecated": false,
        "summary": "Update Session Synchronization",
        "description": "Updates the session synchronization mode for the user account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Session sync mode successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSessionSync"
              }
            }
          },
          "description": "Session sync mode",
          "required": true
        }
      }
    },
    "/account/me/preferences": {
      "patch": {
        "deprecated": false,
        "summary": "Update User Preferences",
        "description": "Updates the user's preferences (terminal settings, theme, file settings). Performs a deep merge with existing preferences.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Preferences successfully updated with the merged result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Preferences object with terminal, theme, and/or files properties",
          "required": true
        }
      }
    },
    "/ai": {
      "get": {
        "deprecated": false,
        "summary": "Get AI Settings",
        "description": "Retrieves the current AI assistant configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "AI configuration settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update AI Settings",
        "description": "Updates the AI assistant configuration. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated AI settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAISettings"
              }
            }
          },
          "description": "Updated AI configuration settings",
          "required": true
        }
      }
    },
    "/ai/test": {
      "post": {
        "deprecated": false,
        "summary": "Test AI Connection",
        "description": "Verifies connectivity to the configured AI provider. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Connection test successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Connection test failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ]
      }
    },
    "/ai/command": {
      "post": {
        "deprecated": false,
        "summary": "Generate a Terminal Command",
        "description": "Turns a natural language request into shell command suggestions for the given session, without executing any of them.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The generated command suggestions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "AI assistant is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Access denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Session not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateCommand"
              }
            }
          },
          "description": "The request and the target session",
          "required": true
        }
      }
    },
    "/ai/providers": {
      "get": {
        "deprecated": false,
        "summary": "List Supported AI Providers",
        "description": "Returns the available AI providers and the fields each one requires, for rendering the settings form.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Supported providers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ]
      }
    },
    "/ai/models": {
      "get": {
        "deprecated": false,
        "summary": "Get Available AI Models",
        "description": "Retrieves the list of models available from the configured provider. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of available AI models",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          },
          "400": {
            "description": "Failed to retrieve models",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ]
      }
    },
    "/ai/oauth/start": {
      "post": {
        "deprecated": false,
        "summary": "Start Subscription OAuth",
        "description": "Generates the authorization URL for connecting a provider subscription (e.g. Claude Pro/Max or ChatGPT Plus/Pro). Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Authorization URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthStart"
              }
            }
          },
          "description": "Optional provider id (defaults to the configured provider)",
          "required": false
        }
      }
    },
    "/ai/oauth/exchange": {
      "post": {
        "deprecated": false,
        "summary": "Complete Subscription OAuth",
        "description": "Exchanges the authorization code for tokens and stores the connected subscription. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Subscription connected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Exchange failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthExchange"
              }
            }
          },
          "description": "The authorization code and optional provider id",
          "required": true
        }
      }
    },
    "/ai/oauth/disconnect": {
      "post": {
        "deprecated": false,
        "summary": "Disconnect Subscription",
        "description": "Removes the stored subscription tokens. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Subscription disconnected",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "AI"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthStart"
              }
            }
          },
          "description": "Optional provider id (defaults to the configured provider)",
          "required": false
        }
      }
    },
    "/accounts/api-keys": {
      "get": {
        "deprecated": false,
        "summary": "List API Keys",
        "description": "Lists the API keys belonging to the authenticated account. The secret token is never returned after creation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of API keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ]
      },
      "post": {
        "deprecated": false,
        "summary": "Create API Key",
        "description": "Creates a new API key for the authenticated account. The plaintext token is only returned once in this response.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The created API key including the one-time token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "API key configuration (name, optional expiresAt)",
          "required": true
        }
      }
    },
    "/accounts/api-keys/{id}": {
      "delete": {
        "deprecated": false,
        "summary": "Delete API Key",
        "description": "Revokes (deletes) an API key belonging to the authenticated account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Deletion confirmation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "API key ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/audit/logs": {
      "get": {
        "deprecated": false,
        "summary": "Get Audit Logs",
        "description": "Retrieves audit logs with optional filtering by organization, action, resource, date range, and pagination support.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Audit logs matching the specified criteria",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filter parameters",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "organizationId",
            "in": "query",
            "description": "Filter by organization ID",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "action",
            "in": "query",
            "description": "Filter by specific action type",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource",
            "in": "query",
            "description": "Filter by resource type",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Filter logs from this date (ISO 8601 format)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Filter logs until this date (ISO 8601 format)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of logs to return (default: 50)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of logs to skip for pagination (default: 0)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Audit"
        ]
      }
    },
    "/audit/metadata": {
      "get": {
        "deprecated": false,
        "summary": "Get Audit Metadata",
        "description": "Retrieves metadata information about available audit log types, actions, and resources for filtering purposes.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Audit metadata including available actions and resource types",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Audit"
        ]
      }
    },
    "/audit/organizations/{id}/settings": {
      "get": {
        "deprecated": false,
        "summary": "Get Organization Audit Settings",
        "description": "Retrieves audit logging configuration settings for a specific organization, including retention policies and enabled audit features.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Organization audit settings configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found or access denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Audit"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Organization Audit Settings",
        "description": "Updates audit logging configuration settings for a specific organization, such as retention policies and audit feature toggles.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Audit settings successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid settings configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found or access denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Audit"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrganizationAuditSettings"
              }
            }
          },
          "description": "Updated audit settings configuration",
          "required": true
        }
      }
    },
    "/audit/{auditLogId}/recording": {
      "get": {
        "deprecated": false,
        "summary": "Download Session Recording",
        "description": "Downloads a session recording file for the specified audit log entry. Recordings are returned as gzip-compressed files in either Guacamole (.guac) or Asciicast (.cast) format depending on the session type.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Gzip-compressed session recording file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "403": {
            "description": "Access denied to the recording",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Recording not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "auditLogId",
            "in": "path",
            "description": "The unique identifier of the audit log entry containing the recording",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Audit"
        ]
      }
    },
    "/auth/login": {
      "post": {
        "deprecated": false,
        "summary": "User Authentication",
        "description": "Authenticates a user with username, password, and optional TOTP code. Returns a session token on success.",
        "security": [],
        "responses": {
          "200": {
            "description": "Session token and success message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Invalid credentials or TOTP code",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              }
            }
          },
          "description": "User credentials including username, password, and optional totp code",
          "required": true
        }
      }
    },
    "/auth/logout": {
      "post": {
        "deprecated": false,
        "summary": "User Logout",
        "description": "Destroys the user session associated with the provided token, logging the user out.",
        "security": [],
        "responses": {
          "200": {
            "description": "Logout success confirmation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Logout"
              }
            }
          },
          "description": "Session token to invalidate",
          "required": true
        }
      }
    },
    "/auth/passkey/options": {
      "post": {
        "deprecated": false,
        "summary": "Get Passkey Authentication Options",
        "description": "Retrieves WebAuthn authentication options for passkey-based login. Used to initiate the passkey authentication flow.",
        "security": [],
        "responses": {
          "200": {
            "description": "WebAuthn authentication options",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "User not found or passkey not configured",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasskeyAuthOptions"
              }
            }
          },
          "description": "Username and origin for passkey authentication",
          "required": true
        }
      }
    },
    "/auth/passkey/verify": {
      "post": {
        "deprecated": false,
        "summary": "Verify Passkey Authentication",
        "description": "Verifies the passkey authentication response and creates a new session on success.",
        "security": [],
        "responses": {
          "200": {
            "description": "Session token on successful verification",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Passkey verification failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasskeyVerify"
              }
            }
          },
          "description": "WebAuthn authentication response",
          "required": true
        }
      }
    },
    "/auth/device/create": {
      "post": {
        "deprecated": false,
        "summary": "Create Device Authorization Code",
        "description": "Creates a new device authorization code for mobile or connector app authentication. The code can be entered on the web interface to authorize the device. Rate limited to 10 requests per hour per IP.",
        "security": [],
        "responses": {
          "200": {
            "description": "Device code and token for polling",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Device Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceCodeCreate"
              }
            }
          },
          "description": "Client type (mobile or connector)",
          "required": true
        }
      }
    },
    "/auth/device/poll": {
      "post": {
        "deprecated": false,
        "summary": "Poll Device Authorization Status",
        "description": "Polls for the authorization status of a device code. Returns pending while waiting, authorized with session token when approved, or invalid if expired/not found.",
        "security": [],
        "responses": {
          "200": {
            "description": "Status (pending, authorized, or invalid) and session token if authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Device Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceCodePoll"
              }
            }
          },
          "description": "Device token received from create endpoint",
          "required": true
        }
      }
    },
    "/auth/device/info": {
      "post": {
        "deprecated": false,
        "summary": "Get Device Code Information",
        "description": "Retrieves information about a device code including client type, IP address, and user agent. Used to display device details before authorization.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Device information (clientType, ipAddress, userAgent)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Device code not found or expired",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Device Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceCodeInfo"
              }
            }
          },
          "description": "Device code to look up",
          "required": true
        }
      }
    },
    "/auth/device/authorize": {
      "post": {
        "deprecated": false,
        "summary": "Authorize Device Code",
        "description": "Authorizes a device code, linking it to the authenticated user's session. Once authorized, the device can retrieve the session token via polling.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Authorization success confirmation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Device code not found or expired",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Device Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceCodeAuthorize"
              }
            }
          },
          "description": "Device code to authorize",
          "required": true
        }
      }
    },
    "/auth/device/link/status": {
      "post": {
        "deprecated": false,
        "summary": "Check Device Link Status",
        "description": "Checks whether a device code created for QR linking has been claimed by the mobile app. Returns claimed when the phone has polled and received the session token.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Status (pending, authorized, claimed, or expired)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Device Authentication"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceCodeAuthorize"
              }
            }
          },
          "description": "Device code to check",
          "required": true
        }
      }
    },
    "/auth/providers": {
      "get": {
        "deprecated": false,
        "summary": "List Public Auth Providers",
        "description": "Retrieves all authentication providers for the login dialog. Returns enabled OIDC and LDAP providers along with internal auth status.",
        "security": [],
        "responses": {
          "200": {
            "description": "List of auth providers with id, name, and enabled status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/providers/admin": {
      "get": {
        "deprecated": false,
        "summary": "List All Auth Providers (Admin)",
        "description": "Retrieves all OIDC and LDAP providers with their full configurations for administrative management.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Object containing oidc and ldap provider arrays",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/providers/admin/organizations": {
      "get": {
        "deprecated": false,
        "summary": "List Organizations For Group Mapping",
        "description": "Retrieves a lightweight list of every organization, used to configure OIDC group-to-organization mappings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of organizations with id and name",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/providers/admin/oidc/{id}": {
      "get": {
        "deprecated": false,
        "summary": "Get OIDC Provider",
        "description": "Retrieves a specific OIDC provider by ID with its configuration. Client secret is masked.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "OIDC provider configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "OIDC provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update OIDC Provider",
        "description": "Updates an existing OIDC provider's configuration. At least one provider must remain enabled.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Provider updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Validation error or cannot disable last provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "OIDC provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OIDCProviderUpdate"
              }
            }
          },
          "description": "Updated OIDC provider configuration",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete OIDC Provider",
        "description": "Deletes an OIDC provider. Cannot delete internal provider or the last enabled provider.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Provider deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Cannot delete internal provider or last enabled provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "OIDC provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/providers/admin/oidc": {
      "put": {
        "deprecated": false,
        "summary": "Create OIDC Provider",
        "description": "Creates a new OIDC authentication provider with the specified configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Provider created successfully with ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Auth Providers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OIDCProvider"
              }
            }
          },
          "description": "OIDC provider configuration including name, issuer, clientId, clientSecret, redirectUri, and scope",
          "required": true
        }
      }
    },
    "/auth/providers/admin/ldap/{id}": {
      "get": {
        "deprecated": false,
        "summary": "Get LDAP Provider",
        "description": "Retrieves a specific LDAP provider by ID with its configuration. Bind password is masked.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "LDAP provider configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "LDAP provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update LDAP Provider",
        "description": "Updates an existing LDAP provider's configuration. At least one provider must remain enabled.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Provider updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Validation error or cannot disable last provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "LDAP provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LDAPProviderUpdate"
              }
            }
          },
          "description": "Updated LDAP provider configuration",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete LDAP Provider",
        "description": "Deletes an LDAP provider. Cannot delete if it's the last enabled provider.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Provider deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Cannot delete last enabled provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "LDAP provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/providers/admin/ldap": {
      "put": {
        "deprecated": false,
        "summary": "Create LDAP Provider",
        "description": "Creates a new LDAP authentication provider with the specified configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Provider created successfully with ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Auth Providers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LDAPProvider"
              }
            }
          },
          "description": "LDAP provider configuration including name, host, port, bindDN, bindPassword, baseDN, and userSearchFilter",
          "required": true
        }
      }
    },
    "/auth/providers/admin/ldap/{id}/test": {
      "post": {
        "deprecated": false,
        "summary": "Test LDAP Connection",
        "description": "Tests the connection to an LDAP server using the provider's configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Connection test successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Connection test failed with error details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "User is not an administrator",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "LDAP provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/oidc/login/{providerId}": {
      "post": {
        "deprecated": false,
        "summary": "Initiate OIDC Login",
        "description": "Initiates the OIDC authentication flow for the specified provider. Returns an authorization URL to redirect the user.",
        "security": [],
        "responses": {
          "200": {
            "description": "Authorization URL for redirect",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Provider not found or disabled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "providerId",
            "in": "path",
            "description": "OIDC provider ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/oidc/callback": {
      "get": {
        "deprecated": false,
        "summary": "OIDC Callback",
        "description": "Handles the OIDC callback after user authentication. Redirects to the app with a session token or error.",
        "security": [],
        "responses": {
          "302": {
            "description": "Redirects to app with token or error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/redirect"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Authorization code from OIDC provider",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "State parameter for CSRF protection",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Auth Providers"
        ]
      }
    },
    "/auth/oidc/logout/callback\n": {
      "get": {
        "deprecated": false,
        "summary": "",
        "security": [],
        "responses": {},
        "parameters": [],
        "tags": []
      }
    },
    "/backup/files/{type}": {
      "get": {
        "deprecated": false,
        "summary": "List files in recordings or logs directory",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of files with name, size, and modified date",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "File type (recordings or logs)",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/files/{type}/{filename}": {
      "delete": {
        "deprecated": false,
        "summary": "Delete a file from recordings or logs",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "File deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "File not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "File type (recordings or logs)",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filename",
            "in": "path",
            "description": "Name of the file to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/settings": {
      "get": {
        "deprecated": false,
        "summary": "Get Backup Settings",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Backup settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Backup Settings",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/providers": {
      "post": {
        "deprecated": false,
        "summary": "Add Backup Provider",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Created provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/providers/:providerId": {
      "patch": {
        "deprecated": false,
        "summary": "Update Backup Provider",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated provider",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Backup Provider",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/storage": {
      "get": {
        "deprecated": false,
        "summary": "Get Storage Statistics",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Storage stats",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/providers/:providerId/backups": {
      "get": {
        "deprecated": false,
        "summary": "List Backups for Provider",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of backups",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      },
      "post": {
        "deprecated": false,
        "summary": "Create Backup",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Created backup",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/providers/:providerId/backups/:backupName/restore": {
      "post": {
        "deprecated": false,
        "summary": "Restore Backup",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Restore initiated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/export/database": {
      "get": {
        "deprecated": false,
        "summary": "Export the database file",
        "security": [],
        "responses": {
          "200": {
            "description": "Database file download",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "404": {
            "description": "Database not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "Authentication token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Backup"
        ]
      }
    },
    "/backup/export/{type}/{filename}": {
      "get": {
        "deprecated": false,
        "summary": "Download a specific file from recordings or logs",
        "security": [],
        "responses": {
          "200": {
            "description": "File download",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "400": {
            "description": "Invalid type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "File not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "File type (recordings or logs)",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filename",
            "in": "path",
            "description": "Name of the file to download",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "description": "Authentication token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Backup"
        ]
      }
    },
    "/engine": {
      "get": {
        "deprecated": false,
        "summary": "List Engines",
        "description": "Retrieves a list of all registered engines with their current connection status, version, and remote address.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of engines with connection details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Engine"
        ]
      },
      "put": {
        "deprecated": false,
        "summary": "Create New Engine",
        "description": "Registers a new engine with the given name. Returns the engine details including a registration token used for engine authentication.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Engine successfully created with registration token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid engine configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Engine"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEngine"
              }
            }
          },
          "description": "Engine configuration",
          "required": true
        }
      }
    },
    "/engine/{id}": {
      "delete": {
        "deprecated": false,
        "summary": "Delete Engine",
        "description": "Permanently removes an engine registration and disconnects it if currently connected.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Engine successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Engine not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the engine to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Engine"
        ]
      }
    },
    "/engine/{id}/regenerate-token": {
      "post": {
        "deprecated": false,
        "summary": "Regenerate Engine Token",
        "description": "Regenerates the registration token for an engine, invalidating the previous token and disconnecting the engine if currently connected.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Engine with new registration token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Engine not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the engine",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Engine"
        ]
      }
    },
    "/entry/recent": {
      "get": {
        "deprecated": false,
        "summary": "Get Recent Connections",
        "description": "Retrieves a list of recently connected entries for the authenticated user, useful for quick reconnection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of recent connections with entry details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of recent connections to return (default: 5)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Entry"
        ]
      }
    },
    "/entry/list": {
      "get": {
        "deprecated": false,
        "summary": "List User Entries",
        "description": "Retrieves a list of all entries accessible by the authenticated user, including SSH, RDP, VNC connections, and PVE resources.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of user entries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Entry"
        ]
      }
    },
    "/entry/{entryId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Entry Details",
        "description": "Retrieves detailed information about a specific entry by its ID, including connection details and configuration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Entry",
        "description": "Permanently removes an entry configuration from the user's account. This action cannot be undone.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Entry Configuration",
        "description": "Updates an existing entry's configuration including name, connection details, folder assignment, or other settings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateServer"
              }
            }
          },
          "description": "Updated entry configuration fields",
          "required": true
        }
      }
    },
    "/entry": {
      "put": {
        "deprecated": false,
        "summary": "Create New Entry",
        "description": "Creates a new entry configuration with specified protocol (SSH, RDP, or VNC), connection details, and settings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry successfully created with new entry ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid entry configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Entry"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServer"
              }
            }
          },
          "description": "Entry configuration including name, protocol, connection details, and folder assignment",
          "required": true
        }
      }
    },
    "/entry/{entryId}/duplicate": {
      "post": {
        "deprecated": false,
        "summary": "Duplicate Entry",
        "description": "Creates a copy of an existing entry configuration with all settings preserved. The new entry will have a similar name but be treated as a separate entity.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry successfully duplicated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry to duplicate",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ]
      }
    },
    "/entry/import/ssh-config": {
      "post": {
        "deprecated": false,
        "summary": "Import SSH Config",
        "description": "Imports pre-processed entry configurations with specific identities already assigned.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entries successfully imported with statistics",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Entry"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Entry configurations with identities",
          "required": true
        }
      }
    },
    "/entry/{entryId}/reposition": {
      "patch": {
        "deprecated": false,
        "summary": "Reposition Entry",
        "description": "Repositions an entry relative to another entry or at the end of a folder/root. Uses server-side position calculation to ensure consistent ordering.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Entry successfully repositioned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry or target not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry to reposition",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepositionServer"
              }
            }
          },
          "description": "Reposition parameters",
          "required": true
        }
      }
    },
    "/entry/{entryId}/wake": {
      "post": {
        "deprecated": false,
        "summary": "Wake Entry Server",
        "description": "Sends a Wake-On-LAN magic packet to wake up a server. Requires the server to have a MAC address configured.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Wake-On-LAN packet sent successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "No MAC address configured or entry type not supported",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry to wake",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Entry"
        ]
      }
    },
    "/folder/list": {
      "get": {
        "deprecated": false,
        "summary": "List User Folders",
        "description": "Retrieves a list of all folders created by the authenticated user for organizing servers and resources.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of user folders",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Folder"
        ]
      }
    },
    "/folder": {
      "put": {
        "deprecated": false,
        "summary": "Create New Folder",
        "description": "Creates a new folder for organizing servers and other resources. Folders help users categorize and manage their connections.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Folder successfully created with new folder ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid folder configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Folder"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderCreation"
              }
            }
          },
          "description": "Folder configuration including name and optional properties",
          "required": true
        }
      }
    },
    "/folder/{folderId}": {
      "patch": {
        "deprecated": false,
        "summary": "Update Folder",
        "description": "Updates an existing folder's configuration such as name or other properties.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Folder successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "The unique identifier of the folder to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Folder"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderEdit"
              }
            }
          },
          "description": "Updated folder configuration fields",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Folder",
        "description": "Permanently removes a folder from the user's account. Any servers within the folder may be moved to a default location.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Folder successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Folder not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "folderId",
            "in": "path",
            "description": "The unique identifier of the folder to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Folder"
        ]
      }
    },
    "/identity/list": {
      "get": {
        "deprecated": false,
        "summary": "List User Identities",
        "description": "Retrieves a list of all authentication identities (SSH keys, credentials) available to the authenticated user. Returns both personal identities and organization identities the user has access to.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of user identities with scope indication (personal/organization)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Identity"
        ]
      }
    },
    "/identity": {
      "put": {
        "deprecated": false,
        "summary": "Create New Identity",
        "description": "Creates a new authentication identity for server connections. Can be personal (bound to account) or organizational (shared with organization members).",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Identity successfully created with new identity ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid identity configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateIdentity"
              }
            }
          },
          "description": "Identity configuration including type, credentials, and optional organizationId",
          "required": true
        }
      }
    },
    "/identity/{identityId}": {
      "delete": {
        "deprecated": false,
        "summary": "Delete Identity",
        "description": "Permanently removes an authentication identity. Personal identities can only be deleted by the owner. Organization identities can be deleted by any organization member.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Identity successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Identity not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "identityId",
            "in": "path",
            "description": "The unique identifier of the identity to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Identity",
        "description": "Updates an existing authentication identity's configuration such as credentials or connection settings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Identity successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Identity not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "identityId",
            "in": "path",
            "description": "The unique identifier of the identity to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIdentity"
              }
            }
          },
          "description": "Updated identity configuration fields",
          "required": true
        }
      }
    },
    "/identity/{identityId}/move": {
      "post": {
        "deprecated": false,
        "summary": "Move Identity to Organization",
        "description": "Moves a personal identity to an organization, making it accessible to all organization members. Only the identity owner can perform this action.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Identity successfully moved to organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Not authorized to move this identity or access target organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Identity not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "identityId",
            "in": "path",
            "description": "The unique identifier of the personal identity to move",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Identity"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveIdentity"
              }
            }
          },
          "description": "Target organization configuration",
          "required": true
        }
      }
    },
    "/integration/{integrationId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Integration Details",
        "description": "Retrieves detailed information about a specific integration configuration including connection details.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "integrationId",
            "in": "path",
            "description": "The unique identifier of the integration",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Integration",
        "description": "Permanently removes an integration configuration from the user's account.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "integrationId",
            "in": "path",
            "description": "The unique identifier of the integration to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Integration",
        "description": "Updates an existing integration's configuration such as connection details or authentication credentials.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "integrationId",
            "in": "path",
            "description": "The unique identifier of the integration to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      }
    },
    "/integration": {
      "put": {
        "deprecated": false,
        "summary": "Create Integration",
        "description": "Creates a new integration configuration for managing external systems like Proxmox VE.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration successfully created with new integration ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid integration configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Integration"
        ]
      }
    },
    "/integration/{integrationId}/sync": {
      "post": {
        "deprecated": false,
        "summary": "Sync Integration Resources",
        "description": "Synchronizes the integration with the external system, refreshing all nodes and resources.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration successfully synced",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid integration type or missing credentials",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Failed to sync integration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "integrationId",
            "in": "path",
            "description": "The unique identifier of the integration to sync",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      }
    },
    "/integration/entry/{entryId}/start": {
      "post": {
        "deprecated": false,
        "summary": "Start VM/Container by Entry ID",
        "description": "Starts a virtual machine or LXC container on a Proxmox VE server using the entry ID.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "VM/container successfully started",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid entry type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Failed to start VM/container",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      }
    },
    "/integration/entry/{entryId}/stop": {
      "post": {
        "deprecated": false,
        "summary": "Force Stop VM/Container by Entry ID",
        "description": "Forcefully stops a virtual machine or LXC container on a Proxmox VE server without graceful shutdown.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "VM/container successfully stopped",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid entry type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Failed to stop VM/container",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      }
    },
    "/integration/entry/{entryId}/shutdown": {
      "post": {
        "deprecated": false,
        "summary": "Graceful Shutdown VM/Container by Entry ID",
        "description": "Gracefully shuts down a virtual machine or LXC container on a Proxmox VE server, allowing the OS to properly close applications.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "VM/container successfully shutdown",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid entry type",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Failed to shutdown VM/container",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Integration"
        ]
      }
    },
    "/keymaps": {
      "get": {
        "deprecated": false,
        "summary": "Get User Keymaps",
        "description": "Retrieves all keyboard shortcuts/keybinds for the authenticated user. If none exist, creates default keymaps.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Array of keymap objects with action, key, and enabled status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Keymaps"
        ]
      }
    },
    "/keymaps/:action": {
      "patch": {
        "deprecated": false,
        "summary": "Update Keymap",
        "description": "Updates a specific keyboard shortcut for the authenticated user. Can modify the key combination or enable/disable the shortcut.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Keymap successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Key combination already in use or invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Keymap not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "action",
            "in": "path",
            "description": "The action identifier (e.g., 'search', 'ai-menu', 'snippets', 'keyboard-shortcuts')",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Keymaps"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Updates to apply (key and/or enabled)",
          "required": true
        }
      }
    },
    "/keymaps/reset": {
      "post": {
        "deprecated": false,
        "summary": "Reset All Keymaps",
        "description": "Resets all keyboard shortcuts to their default values for the authenticated user.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "All keymaps successfully reset to defaults",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Keymaps"
        ]
      }
    },
    "/keymaps/:action/reset": {
      "post": {
        "deprecated": false,
        "summary": "Reset Single Keymap",
        "description": "Resets a specific keyboard shortcut to its default value for the authenticated user.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Keymap successfully reset to default",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "User is not authenticated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Keymap not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "action",
            "in": "path",
            "description": "The action identifier to reset",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Keymaps"
        ]
      }
    },
    "/monitoring": {
      "get": {
        "deprecated": false,
        "summary": "Get All Servers Monitoring",
        "description": "Retrieves monitoring data for all servers accessible by the authenticated user, including uptime status and performance metrics.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Monitoring data for all user servers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          },
          "403": {
            "description": "Access denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Monitoring"
        ]
      }
    },
    "/monitoring/settings/global": {
      "get": {
        "deprecated": false,
        "summary": "Get Monitoring Settings",
        "description": "Retrieves the global monitoring configuration settings. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Monitoring settings configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Monitoring"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Monitoring Settings",
        "description": "Updates global monitoring configuration settings. Admin access required.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated monitoring settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Admin access required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Monitoring"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMonitoringSettings"
              }
            }
          },
          "description": "Updated monitoring settings",
          "required": true
        }
      }
    },
    "/monitoring/integration/{integrationId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Integration Monitoring",
        "description": "Retrieves monitoring data for a Proxmox integration.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integration monitoring data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Integration not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "integrationId",
            "in": "path",
            "description": "The unique identifier of the integration",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeRange",
            "in": "query",
            "description": "Time range for monitoring data (1h, 6h, 24h) - defaults to 1h",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Monitoring"
        ]
      }
    },
    "/monitoring/{serverId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Server Monitoring",
        "description": "Retrieves detailed monitoring data for a specific server including historical performance metrics, uptime statistics, and health status over a specified time range.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Server monitoring data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Server not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "serverId",
            "in": "path",
            "description": "The unique identifier of the server",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeRange",
            "in": "query",
            "description": "Time range for monitoring data (e.g., 1h, 24h, 7d) - defaults to 1h",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Monitoring"
        ]
      }
    },
    "/organization": {
      "put": {
        "deprecated": false,
        "summary": "Create Organization",
        "description": "Creates a new organization with the authenticated user as the owner. Organizations allow multiple users to collaborate and share resources.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Organization successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid organization data",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrganizationSchema"
              }
            }
          },
          "description": "Organization details including name and description",
          "required": true
        }
      },
      "get": {
        "deprecated": false,
        "summary": "List Organizations",
        "description": "Retrieves a list of all organizations that the authenticated user is a member of or owns.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of organizations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Organization"
        ]
      }
    },
    "/organization/{id}": {
      "patch": {
        "deprecated": false,
        "summary": "Update Organization",
        "description": "Updates an existing organization's details such as name or description. Only organization owners can perform this action.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Organization successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrganizationSchema"
              }
            }
          },
          "description": "Updated organization details",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Organization",
        "description": "Permanently deletes an organization and all associated data. Only organization owners can perform this action.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Organization successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      },
      "get": {
        "deprecated": false,
        "summary": "Get Organization Details",
        "description": "Retrieves detailed information about a specific organization, including its members and settings.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Organization details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Access denied to organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      }
    },
    "/organization/{id}/members": {
      "get": {
        "deprecated": false,
        "summary": "List Organization Members",
        "description": "Retrieves a list of all members in a specific organization, including their roles and status.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of organization members",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          },
          "403": {
            "description": "Access denied to organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      }
    },
    "/organization/{id}/invite": {
      "post": {
        "deprecated": false,
        "summary": "Invite User to Organization",
        "description": "Sends an invitation to a user to join the organization. Only organization owners can send invitations.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Invitation successfully sent",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization or user not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InviteUserSchema"
              }
            }
          },
          "description": "Username of the user to invite",
          "required": true
        }
      }
    },
    "/organization/{id}/members/{accountId}": {
      "delete": {
        "deprecated": false,
        "summary": "Remove Organization Member",
        "description": "Removes a member from the organization. Only organization owners can remove members.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Member successfully removed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization or member not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the member to remove",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      }
    },
    "/organization/{id}/members/{accountId}/permissions": {
      "get": {
        "deprecated": false,
        "summary": "Get Member Permissions",
        "description": "Returns a member's organization permission overrides and their effective permissions. Requires the \"org.members.manage\" permission in the organization.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Member permission overrides and effective permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Organization id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Member account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      },
      "put": {
        "deprecated": false,
        "summary": "Set Member Permissions",
        "description": "Updates a member's organization permission overrides. Requires the \"org.members.manage\" permission in the organization.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated member permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Organization id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Member account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ permissions: { permissionId: \"allow\"|\"deny\"|\"neutral\" } }",
          "required": true
        }
      }
    },
    "/organization/{id}/session-settings": {
      "get": {
        "deprecated": false,
        "summary": "Get Live Session Settings",
        "description": "Returns the live session sharing configuration of an organization.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Live session settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Organization id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Live Session Settings",
        "description": "Updates the live session sharing configuration of an organization. Requires the \"org.manage\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated session settings",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Organization id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSessionSettings"
              }
            }
          },
          "description": "Updated session settings",
          "required": true
        }
      }
    },
    "/organization/invitations/pending": {
      "get": {
        "deprecated": false,
        "summary": "List Pending Invitations",
        "description": "Retrieves a list of all pending organization invitations for the authenticated user.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of pending invitations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Organization"
        ]
      }
    },
    "/organization/invitations/{id}/respond": {
      "post": {
        "deprecated": false,
        "summary": "Respond to Organization Invitation",
        "description": "Accepts or declines a pending organization invitation.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Response processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Invitation not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the invitation",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RespondToInvitationSchema"
              }
            }
          },
          "description": "Response containing accept boolean value",
          "required": true
        }
      }
    },
    "/organization/{id}/leave": {
      "post": {
        "deprecated": false,
        "summary": "Leave Organization",
        "description": "Allows a user to leave an organization they are a member of. Organization owners cannot leave their own organization.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully left organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Cannot leave organization (e.g., owner trying to leave)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Organization not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the organization",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ]
      }
    },
    "/account/passkeys": {
      "get": {
        "deprecated": false,
        "summary": "List Passkeys",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/passkeys/register/options": {
      "post": {
        "deprecated": false,
        "summary": "Get Passkey Registration Options",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/passkeys/register/verify": {
      "post": {
        "deprecated": false,
        "summary": "Verify Passkey Registration",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/account/passkeys/:id": {
      "delete": {
        "deprecated": false,
        "summary": "Delete Passkey",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [],
        "tags": [
          "Account"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Rename Passkey",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [],
        "tags": [
          "Account"
        ]
      }
    },
    "/permissions/catalog": {
      "get": {
        "deprecated": false,
        "summary": "Permission Catalog",
        "description": "Returns the full catalog of system and organization permissions, grouped by category, that powers the permission editor UI.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "System and organization permission definitions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Permissions"
        ]
      }
    },
    "/permissions/groups": {
      "get": {
        "deprecated": false,
        "summary": "List Permission Groups",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "All permission groups with their permissions and member counts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Permissions"
        ]
      },
      "post": {
        "deprecated": false,
        "summary": "Create Permission Group",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The created group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "name and optional color",
          "required": true
        }
      }
    },
    "/permissions/groups/order": {
      "put": {
        "deprecated": false,
        "summary": "Reorder Permission Groups",
        "description": "Sets the priority order of custom roles. Roles earlier in the list win permission conflicts.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "All permission groups in their new order",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "custom role ids, highest priority first": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ order: number[] }",
          "required": true
        }
      }
    },
    "/permissions/groups/{id}": {
      "get": {
        "deprecated": false,
        "summary": "Get Permission Group",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Group with permissions and members",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Permission Group",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The updated group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Permission Group",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ]
      }
    },
    "/permissions/groups/{id}/permissions": {
      "put": {
        "deprecated": false,
        "summary": "Set Group Permissions",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The updated group",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ permissions: { permissionId: \"allow\"|\"deny\"|\"neutral\" } }",
          "required": true
        }
      }
    },
    "/permissions/groups/{id}/members": {
      "post": {
        "deprecated": false,
        "summary": "Add Group Member",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ accountId }",
          "required": true
        }
      }
    },
    "/permissions/groups/{id}/members/{accountId}": {
      "delete": {
        "deprecated": false,
        "summary": "Remove Group Member",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Group id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "path",
            "description": "Account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ]
      }
    },
    "/permissions/users/{accountId}": {
      "get": {
        "deprecated": false,
        "summary": "Get User Permissions",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The user's groups, overrides and effective permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ]
      }
    },
    "/permissions/users/{accountId}/groups": {
      "put": {
        "deprecated": false,
        "summary": "Set User Groups",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The user's updated permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ groupIds: number[] }",
          "required": true
        }
      }
    },
    "/permissions/users/{accountId}/permissions": {
      "put": {
        "deprecated": false,
        "summary": "Set User Permission Overrides",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "The user's updated permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "Account id",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Permissions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "{ permissions: { permissionId: \"allow\"|\"deny\"|\"neutral\" } }",
          "required": true
        }
      }
    },
    "/scripts": {
      "get": {
        "deprecated": false,
        "summary": "Get Scripts",
        "description": "Retrieves available scripts for the authenticated user. Supports searching by name or description when search parameter is provided.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of scripts available to the user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "Search term to filter scripts by name or description",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Filter scripts by organization ID",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Scripts"
        ]
      },
      "post": {
        "deprecated": false,
        "summary": "Create Custom Script",
        "description": "Creates a new custom script that can be executed on servers. Users can define their own automation scripts with custom parameters.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Script successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Script with this name already exists",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Scripts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Script"
              }
            }
          },
          "description": "Script configuration including name, content, description, and parameters",
          "required": true
        }
      }
    },
    "/scripts/all": {
      "get": {
        "deprecated": false,
        "summary": "List All Accessible Scripts",
        "description": "Retrieves all scripts accessible to the user (personal + organization scripts)",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of all accessible scripts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Scripts"
        ]
      }
    },
    "/scripts/sources": {
      "get": {
        "deprecated": false,
        "summary": "List All Source Scripts",
        "description": "Retrieves all scripts from external sources",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of all source scripts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Scripts"
        ]
      }
    },
    "/scripts/{scriptId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Script Details",
        "description": "Retrieves detailed information about a specific script including its content, parameters, and metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Script details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Script not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "scriptId",
            "in": "path",
            "description": "The unique identifier of the script",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if accessing organization script",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Scripts"
        ]
      },
      "put": {
        "deprecated": false,
        "summary": "Update Custom Script",
        "description": "Updates an existing custom script's content, parameters, or other properties. Only the script creator can modify custom scripts.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Script successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Script not found or unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "scriptId",
            "in": "path",
            "description": "The unique identifier of the script to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if updating organization script",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Scripts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Script"
              }
            }
          },
          "description": "Updated script configuration",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Custom Script",
        "description": "Permanently removes a custom script from the user's library. Only the script creator can delete custom scripts.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Script successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Script not found or unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "scriptId",
            "in": "path",
            "description": "The unique identifier of the script to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if deleting organization script",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Scripts"
        ]
      }
    },
    "/scripts/{scriptId}/reposition": {
      "patch": {
        "deprecated": false,
        "summary": "Reposition Script",
        "description": "Moves a script to a new position relative to another script.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Script successfully repositioned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Cannot move script in that direction",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Script not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "scriptId",
            "in": "path",
            "description": "The unique identifier of the script to reposition",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if repositioning organization script",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Scripts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Reposition parameters (targetId, placement)",
          "required": true
        }
      }
    },
    "/connections": {
      "post": {
        "deprecated": false,
        "summary": "Create Connection",
        "description": "Creates a new server connection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Session created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Connection"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Session creation details",
          "required": true
        }
      },
      "get": {
        "deprecated": false,
        "summary": "Get Connections",
        "description": "Retrieves all active server connections for the user.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of sessions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}": {
      "get": {
        "deprecated": false,
        "summary": "Get Connection",
        "description": "Retrieves a specific server connection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Session details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Connection",
        "description": "Deletes a server connection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}/hibernate": {
      "post": {
        "deprecated": false,
        "summary": "Hibernate Connection",
        "description": "Hibernates a server connection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}/resume": {
      "post": {
        "deprecated": false,
        "summary": "Resume Connection",
        "description": "Resumes a hibernated server connection.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}/share": {
      "post": {
        "deprecated": false,
        "summary": "Start Sharing",
        "description": "Starts sharing a session.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Share details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Stop Sharing",
        "description": "Stops sharing a session.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success message",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Share Permissions",
        "description": "Updates share permissions for a session.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Updated permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}/duplicate": {
      "post": {
        "deprecated": false,
        "summary": "Duplicate Connection",
        "description": "Creates a new connection with the same configuration as an existing one.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "New session created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{id}/paste-password": {
      "post": {
        "deprecated": false,
        "summary": "Paste identity password into session",
        "description": "Inserts the password of an identity attached to the session's server into the active session stream. Defaults to the session's identity; an optional identityId in the body selects another identity attached to the same server.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {},
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Connection"
        ]
      }
    },
    "/connections/{entryId}/exec": {
      "post": {
        "deprecated": false,
        "summary": "Execute Command",
        "description": "Executes a single command on a server entry and returns the output.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Command result with stdout, stderr, exitCode",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "Entry ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Connection"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Command to execute",
          "required": true
        }
      }
    },
    "/service/is-fts": {
      "get": {
        "deprecated": false,
        "summary": "Check Status",
        "description": "Determines if the Nexterm server requires initial setup. This endpoint is used during the first-time setup process to check if the server has been configured with initial user accounts and settings.",
        "security": [],
        "responses": {
          "200": {
            "description": "First Time Setup status information",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Service"
        ]
      }
    },
    "/service/version": {
      "get": {
        "deprecated": false,
        "summary": "Get Version",
        "description": "Returns the current Nexterm server version.",
        "security": [],
        "responses": {
          "200": {
            "description": "Version information",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Service"
        ]
      }
    },
    "/session/list": {
      "get": {
        "deprecated": false,
        "summary": "List Active Sessions",
        "description": "Retrieves a list of all active sessions for the authenticated user, excluding the current session used for the request.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of active user sessions with details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Session"
        ]
      }
    },
    "/session/{id}": {
      "delete": {
        "deprecated": false,
        "summary": "Destroy Session",
        "description": "Permanently destroys a specific session, effectively logging out that session. Useful for managing active sessions across multiple devices.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Session destruction result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the session to destroy",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Session"
        ]
      }
    },
    "/sftp/upload": {
      "post": {
        "deprecated": false,
        "summary": "Upload File via SFTP",
        "description": "Uploads a file to a remote server via SFTP. The file content should be sent as the raw request body. Missing parent directories are created when the user is allowed to modify files. Requires an active session with SFTP capabilities.",
        "security": [],
        "responses": {
          "200": {
            "description": "Upload successful with file path and size",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Missing parameters or invalid path",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Session or entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Upload error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionToken",
            "in": "query",
            "description": "Session authentication token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "query",
            "description": "Active server session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "description": "Remote destination path for the uploaded file",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "SFTP"
        ]
      }
    },
    "/sftp": {
      "get": {
        "deprecated": false,
        "summary": "Download or Preview File via SFTP",
        "description": "Downloads a file or folder from a remote server via SFTP. Supports file preview, thumbnail generation for images, and folder download as ZIP archive.",
        "security": [],
        "responses": {
          "200": {
            "description": "File content, ZIP archive, or thumbnail image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "400": {
            "description": "Missing parameters or invalid path",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "File, session, or entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Download error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionToken",
            "in": "query",
            "description": "Session authentication token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "query",
            "description": "Active server session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "query",
            "description": "Remote file or folder path to download",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "preview",
            "in": "query",
            "description": "Set to \"true\" to display file inline instead of downloading",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnail",
            "in": "query",
            "description": "Set to \"true\" to generate a thumbnail (images only, max 10MB)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "Thumbnail size in pixels (50-300, default: 100)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "SFTP"
        ]
      }
    },
    "/sftp/multi": {
      "post": {
        "deprecated": false,
        "summary": "Download Multiple Files via SFTP",
        "description": "Downloads multiple files and/or folders as a single ZIP archive. Supports mixed selection of files and folders. Failed items are skipped and logged.",
        "security": [],
        "responses": {
          "200": {
            "description": "ZIP archive containing all requested files and folders",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/file"
                }
              }
            }
          },
          "400": {
            "description": "Missing parameters, invalid paths format, or no paths provided",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Session or entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "description": "Download error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sessionToken",
            "in": "query",
            "description": "Session authentication token",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sessionId",
            "in": "query",
            "description": "Active server session ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "SFTP"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Request body containing paths array",
          "required": true
        }
      }
    },
    "/share/{shareId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Shared Session Details",
        "description": "Retrieves information about a shared session by its unique share ID. Returns session details including the associated entry information, permissions, and organization context. This endpoint is used to access sessions that have been shared by other users.",
        "security": [],
        "responses": {
          "200": {
            "description": "Shared session details including server info, permissions, and organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Shared session or associated entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "shareId",
            "in": "path",
            "description": "The unique identifier of the shared session",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Share"
        ]
      }
    },
    "/snippet/all": {
      "get": {
        "deprecated": false,
        "summary": "List All Accessible Snippets",
        "description": "Retrieves all snippets accessible to the user (personal + organization snippets)",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of all accessible snippets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Snippet"
        ]
      }
    },
    "/snippet/sources": {
      "get": {
        "deprecated": false,
        "summary": "List All Source Snippets",
        "description": "Retrieves all snippets from external sources",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of all source snippets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Snippet"
        ]
      }
    },
    "/snippet/{snippetId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Snippet Details",
        "description": "Retrieves detailed information about a specific snippet including its content and metadata.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Snippet details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Snippet not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "snippetId",
            "in": "path",
            "description": "The unique identifier of the snippet",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if accessing organization snippet",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Snippet"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Snippet",
        "description": "Updates an existing snippet's content, name, or other properties.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Snippet successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Snippet not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "snippetId",
            "in": "path",
            "description": "The unique identifier of the snippet to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if updating organization snippet",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Snippet"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnippetEdit"
              }
            }
          },
          "description": "Updated snippet configuration fields",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Snippet",
        "description": "Permanently removes a snippet from the user's account. This action cannot be undone.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Snippet successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Snippet not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "snippetId",
            "in": "path",
            "description": "The unique identifier of the snippet to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if deleting organization snippet",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Snippet"
        ]
      }
    },
    "/snippet": {
      "put": {
        "deprecated": false,
        "summary": "Create New Snippet",
        "description": "Creates a new code snippet that can be reused across different sessions and servers.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Snippet successfully created with new snippet ID",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid snippet configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Snippet"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnippetCreation"
              }
            }
          },
          "description": "Snippet configuration including name, content, and optional description",
          "required": true
        }
      }
    },
    "/snippet/{snippetId}/reposition": {
      "patch": {
        "deprecated": false,
        "summary": "Reposition Snippet",
        "description": "Moves a snippet to a new position relative to another snippet.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Snippet successfully repositioned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Cannot move snippet in that direction",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Snippet not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "snippetId",
            "in": "path",
            "description": "The unique identifier of the snippet to reposition",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "organizationId",
            "in": "query",
            "description": "Optional: Organization ID if repositioning organization snippet",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Snippet"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Reposition parameters (targetId, placement)",
          "required": true
        }
      }
    },
    "/sources": {
      "get": {
        "deprecated": false,
        "summary": "List All Sources",
        "description": "Retrieves all configured snippet/script sources",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of all sources",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Sources"
        ]
      },
      "post": {
        "deprecated": false,
        "summary": "Create New Source",
        "description": "Creates a new snippet/script source and performs initial sync",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Source created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Source with URL already exists",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Sources"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Source configuration",
          "required": true
        }
      }
    },
    "/sources/:sourceId": {
      "get": {
        "deprecated": false,
        "summary": "Get Source Details",
        "description": "Retrieves detailed information about a specific source",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Source details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Source not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sourceId",
            "in": "path",
            "description": "The source ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Sources"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Source",
        "description": "Updates an existing source's name, URL, or enabled status",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Source updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Source not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sourceId",
            "in": "path",
            "description": "The source ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Sources"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Updated source fields",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Source",
        "description": "Deletes a source and all its synced snippets/scripts",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Source deleted successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Source not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sourceId",
            "in": "path",
            "description": "The source ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Sources"
        ]
      }
    },
    "/sources/validate": {
      "post": {
        "deprecated": false,
        "summary": "Validate Source URL",
        "description": "Validates a source URL by checking if NTINDEX is accessible and valid",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Validation result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Sources"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "URL to validate",
          "required": true
        }
      }
    },
    "/sources/:sourceId/sync": {
      "post": {
        "deprecated": false,
        "summary": "Sync Source",
        "description": "Manually triggers a sync for a specific source",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Sync result",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sourceId",
            "in": "path",
            "description": "The source ID",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Sources"
        ]
      }
    },
    "/sources/sync-all": {
      "post": {
        "deprecated": false,
        "summary": "Sync All Sources",
        "description": "Manually triggers a sync for all enabled sources",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Sync initiated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Sources"
        ]
      }
    },
    "/tag/list": {
      "get": {
        "deprecated": false,
        "summary": "List User Tags",
        "description": "Retrieves a list of all tags created by the authenticated user",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of user tags",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Tag"
        ]
      }
    },
    "/tag": {
      "put": {
        "deprecated": false,
        "summary": "Create New Tag",
        "description": "Creates a new tag with a name and color",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Tag successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid tag configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Tag with this name already exists",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Tag"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Tag configuration including name and color",
          "required": true
        }
      }
    },
    "/tag/{tagId}": {
      "patch": {
        "deprecated": false,
        "summary": "Update Tag",
        "description": "Updates a tag's name or color",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Tag successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Tag not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Tag name conflict",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "description": "The unique identifier of the tag",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Tag"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "description": "Updated tag configuration",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Tag",
        "description": "Permanently removes a tag and all its assignments",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Tag successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Tag not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "description": "The unique identifier of the tag to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Tag"
        ]
      }
    },
    "/tag/{tagId}/assign/{entryId}": {
      "post": {
        "deprecated": false,
        "summary": "Assign Tag to Entry",
        "description": "Assigns a tag to a specific entry",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Tag successfully assigned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Tag or entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Entry already has this tag",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "description": "The unique identifier of the tag",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Tag"
        ]
      },
      "delete": {
        "deprecated": false,
        "summary": "Remove Tag from Entry",
        "description": "Removes a tag assignment from a specific entry",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Tag successfully removed from entry",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Tag or entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "tagId",
            "in": "path",
            "description": "The unique identifier of the tag",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Tag"
        ]
      }
    },
    "/tag/entry/{entryId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Entry Tags",
        "description": "Retrieves all tags assigned to a specific entry",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of tags assigned to the entry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Entry not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "entryId",
            "in": "path",
            "description": "The unique identifier of the entry",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Tag"
        ]
      }
    },
    "/themes": {
      "get": {
        "deprecated": false,
        "summary": "List All Themes",
        "description": "Retrieves all available themes including custom and source-synced themes",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "List of themes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/array"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Theme"
        ]
      },
      "put": {
        "deprecated": false,
        "summary": "Create Custom Theme",
        "description": "Creates a new custom CSS theme for the authenticated user",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "201": {
            "description": "Theme successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Invalid theme configuration",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Theme"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThemeCreation"
              }
            }
          },
          "description": "Theme configuration including name, CSS content, and optional description",
          "required": true
        }
      }
    },
    "/themes/active/css": {
      "get": {
        "deprecated": false,
        "summary": "Get Active Theme CSS",
        "description": "Returns the CSS content of the currently active theme for the authenticated user",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "CSS content of the active theme",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Theme"
        ]
      }
    },
    "/themes/{themeId}": {
      "get": {
        "deprecated": false,
        "summary": "Get Theme Details",
        "description": "Retrieves detailed information about a specific theme",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Theme details",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Theme not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "themeId",
            "in": "path",
            "description": "The unique identifier of the theme",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Theme"
        ]
      },
      "patch": {
        "deprecated": false,
        "summary": "Update Theme",
        "description": "Updates an existing custom theme's name, CSS content, or description",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Theme successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Cannot edit source-synced themes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Theme not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "themeId",
            "in": "path",
            "description": "The unique identifier of the theme to update",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Theme"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThemeUpdate"
              }
            }
          },
          "description": "Updated theme configuration fields",
          "required": true
        }
      },
      "delete": {
        "deprecated": false,
        "summary": "Delete Theme",
        "description": "Permanently removes a custom theme. Source-synced themes cannot be deleted.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Theme successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Cannot delete source-synced themes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Theme not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "themeId",
            "in": "path",
            "description": "The unique identifier of the theme to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Theme"
        ]
      }
    },
    "/themes/{themeId}/css": {
      "get": {
        "deprecated": false,
        "summary": "Get Theme CSS",
        "description": "Retrieves the raw CSS content of a specific theme",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "CSS content of the theme",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Theme not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "themeId",
            "in": "path",
            "description": "The unique identifier of the theme",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Theme"
        ]
      }
    },
    "/themes/active": {
      "put": {
        "deprecated": false,
        "summary": "Set Active Theme",
        "description": "Sets or clears the active theme for the authenticated user. Pass null as themeId to deactivate.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Active theme updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Theme not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Theme"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActiveTheme"
              }
            }
          },
          "description": "Theme ID to activate, or null to deactivate",
          "required": true
        }
      }
    },
    "/users/list": {
      "get": {
        "deprecated": false,
        "summary": "List All Users",
        "description": "Retrieves a paginated list of all user accounts in the system including their permission groups. Supports search by username, first name, or last name. Requires the \"users.view\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of user accounts with total count",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "Search term to filter users by username, first name, or last name",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of users to return (default: 50)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of users to skip for pagination (default: 0)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": [
          "Users"
        ]
      }
    },
    "/users": {
      "put": {
        "deprecated": false,
        "summary": "Create User Account",
        "description": "Creates a new user account. Requires the \"users.manage\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Account successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [],
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUser"
              }
            }
          },
          "description": "User account details including username, password and name",
          "required": true
        }
      }
    },
    "/users/{accountId}/login": {
      "post": {
        "deprecated": false,
        "summary": "Impersonate User",
        "description": "Creates a session token for a specific user account, allowing administrators to impersonate users for support purposes. Requires the \"users.impersonate\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Session successfully created with token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "User account not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the user account",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Users"
        ]
      }
    },
    "/users/{accountId}": {
      "delete": {
        "deprecated": false,
        "summary": "Delete User Account",
        "description": "Permanently removes a user account and all associated data. This action cannot be undone. Requires the \"users.manage\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Account successfully deleted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "User account not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the user account to delete",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Users"
        ]
      }
    },
    "/users/{accountId}/password": {
      "patch": {
        "deprecated": false,
        "summary": "Update User Password",
        "description": "Updates a user's password. Requires the \"users.manage\" permission.",
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Password successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Insufficient permissions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "User account not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the user account",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordChange"
              }
            }
          },
          "description": "New password for the user account",
          "required": true
        }
      }
    }
  },
  "tags": [
    {
      "name": "AI",
      "description": ""
    },
    {
      "name": "Account",
      "description": ""
    },
    {
      "name": "Audit",
      "description": ""
    },
    {
      "name": "Auth Providers",
      "description": ""
    },
    {
      "name": "Authentication",
      "description": ""
    },
    {
      "name": "Backup",
      "description": ""
    },
    {
      "name": "Connection",
      "description": ""
    },
    {
      "name": "Device Authentication",
      "description": ""
    },
    {
      "name": "Engine",
      "description": ""
    },
    {
      "name": "Entry",
      "description": ""
    },
    {
      "name": "Folder",
      "description": ""
    },
    {
      "name": "Identity",
      "description": ""
    },
    {
      "name": "Integration",
      "description": ""
    },
    {
      "name": "Keymaps",
      "description": ""
    },
    {
      "name": "Monitoring",
      "description": ""
    },
    {
      "name": "Organization",
      "description": ""
    },
    {
      "name": "Permissions",
      "description": ""
    },
    {
      "name": "SFTP",
      "description": ""
    },
    {
      "name": "Scripts",
      "description": ""
    },
    {
      "name": "Service",
      "description": ""
    },
    {
      "name": "Session",
      "description": ""
    },
    {
      "name": "Share",
      "description": ""
    },
    {
      "name": "Snippet",
      "description": ""
    },
    {
      "name": "Sources",
      "description": ""
    },
    {
      "name": "Tag",
      "description": ""
    },
    {
      "name": "Theme",
      "description": ""
    },
    {
      "name": "Users",
      "description": ""
    }
  ]
}