{ "openapi": "3.0.0", "paths": { "/api/remnawave-settings": { "get": { "operationId": "RemnawaveSettingsController_getSettings", "parameters": [], "responses": { "200": { "description": "Remnawave settings retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRemnawaveSettingsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Remnawave settings", "tags": [ "Remnawave Settings Controller" ] }, "patch": { "operationId": "RemnawaveSettingsController_updateSettings", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRemnawaveSettingsRequestDto" } } } }, "responses": { "200": { "description": "Subscription settings updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRemnawaveSettingsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update Remnawave settings", "tags": [ "Remnawave Settings Controller" ] } }, "/api/passkeys/registration/options": { "get": { "operationId": "PasskeyController_passkeyRegistrationOptions", "parameters": [], "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Get passkey registration options", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetPasskeyRegistrationOptionsResponseDto" } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get registration options for passkey", "tags": [ "Passkeys Controller" ] } }, "/api/passkeys/registration/verify": { "post": { "operationId": "PasskeyController_passkeyRegistrationVerify", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPasskeyRegistrationRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Verify passkey registration result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPasskeyRegistrationResponseDto" } } } } }, "security": [ { "Authorization": [] } ], "summary": "Verify registration for passkey", "tags": [ "Passkeys Controller" ] } }, "/api/passkeys": { "get": { "operationId": "PasskeyController_getActivePasskeys", "parameters": [], "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Get all passkeys", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllPasskeysResponseDto" } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all passkeys", "tags": [ "Passkeys Controller" ] }, "delete": { "operationId": "PasskeyController_deletePasskey", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeletePasskeyRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Delete passkey result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeletePasskeyResponseDto" } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete a passkey by ID", "tags": [ "Passkeys Controller" ] }, "patch": { "operationId": "PasskeyController_updatePasskey", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePasskeyRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Update passkey", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePasskeyResponseDto" } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update passkey", "tags": [ "Passkeys Controller" ] } }, "/api/auth/login": { "post": { "operationId": "AuthController_login", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "401": { "description": "Unauthorized - Invalid credentials", "content": { "application/json": { "schema": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 401 }, "message": { "type": "string", "example": "Invalid credentials" }, "error": { "type": "string", "example": "Unauthorized" } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Access token for further requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponseDto" } } } } }, "summary": "Login as superadmin", "tags": [ "Auth Controller" ] } }, "/api/auth/register": { "post": { "operationId": "AuthController_register", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "403": { "description": "Forbidden - Registration is not allowed", "content": { "application/json": { "schema": { "type": "object", "properties": { "statusCode": { "type": "number", "example": 403 }, "message": { "type": "string", "example": "Registration is not allowed" }, "error": { "type": "string", "example": "Forbidden" } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Access token for further requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterResponseDto" } } } } }, "summary": "Register as superadmin", "tags": [ "Auth Controller" ] } }, "/api/auth/status": { "get": { "operationId": "AuthController_getStatus", "parameters": [], "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Status of the system", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetStatusResponseDto" } } } } }, "summary": "Get the status of the authentication", "tags": [ "Auth Controller" ] } }, "/api/auth/oauth2/authorize": { "post": { "operationId": "AuthController_oauth2Authorize", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuth2AuthorizeRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "OAuth2 authorization URL", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuth2AuthorizeResponseDto" } } } } }, "summary": "Initiate OAuth2 authorization", "tags": [ "Auth Controller" ] } }, "/api/auth/oauth2/callback": { "post": { "operationId": "AuthController_oauth2Callback", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuth2CallbackRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Access token for further requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuth2CallbackResponseDto" } } } } }, "summary": "Callback from OAuth2", "tags": [ "Auth Controller" ] } }, "/api/auth/passkey/authentication/options": { "get": { "operationId": "AuthController_passkeyAuthenticationOptions", "parameters": [], "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "Passkey authentication options", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetPasskeyAuthenticationOptionsResponseDto" } } } } }, "summary": "Get the authentication options for passkey", "tags": [ "Auth Controller" ] } }, "/api/auth/passkey/authentication/verify": { "post": { "operationId": "AuthController_passkeyAuthenticationVerify", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPasskeyAuthenticationRequestDto" } } } }, "responses": { "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "default": { "description": "JWT access token after successful passkey authentication", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPasskeyAuthenticationResponseDto" } } } } }, "summary": "Verify the authentication for passkey", "tags": [ "Auth Controller" ] } }, "/api/subscription-page-configs": { "get": { "operationId": "SubscriptionPageConfigController_getAllConfigs", "parameters": [], "responses": { "200": { "description": "Subscription page configs retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionPageConfigsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all subscription page configs", "tags": [ "Subscription Page Configs Controller" ] }, "patch": { "operationId": "SubscriptionPageConfigController_updateConfig", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubscriptionPageConfigRequestDto" } } } }, "responses": { "200": { "description": "Subscription page config updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubscriptionPageConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update subscription page config", "tags": [ "Subscription Page Configs Controller" ] }, "post": { "operationId": "SubscriptionPageConfigController_createConfig", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubscriptionPageConfigRequestDto" } } } }, "responses": { "200": { "description": "Subscription page config created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubscriptionPageConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create subscription page config", "tags": [ "Subscription Page Configs Controller" ] } }, "/api/subscription-page-configs/{uuid}": { "get": { "operationId": "SubscriptionPageConfigController_getConfigByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Subscription page config UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription page config retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionPageConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription page config by uuid", "tags": [ "Subscription Page Configs Controller" ] }, "delete": { "operationId": "SubscriptionPageConfigController_deleteConfig", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Subscription page config UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription page config deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSubscriptionPageConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete subscription page config", "tags": [ "Subscription Page Configs Controller" ] } }, "/api/subscription-page-configs/actions/reorder": { "post": { "operationId": "SubscriptionPageConfigController_reorderSubscriptionPageConfigs", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderSubscriptionPageConfigsRequestDto" } } } }, "responses": { "200": { "description": "Subscription page configs reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderSubscriptionPageConfigsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder subscription page configs", "tags": [ "Subscription Page Configs Controller" ] } }, "/api/subscription-page-configs/actions/clone": { "post": { "operationId": "SubscriptionPageConfigController_cloneSubscriptionPageConfig", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloneSubscriptionPageConfigRequestDto" } } } }, "responses": { "200": { "description": "Subscription page config cloned successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloneSubscriptionPageConfigResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Clone subscription page config", "tags": [ "Subscription Page Configs Controller" ] } }, "/api/users": { "post": { "operationId": "UsersController_createUser", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserRequestDto" } } } }, "responses": { "201": { "description": "User created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create a new user", "tags": [ "Users Controller" ] }, "patch": { "operationId": "UsersController_updateUser", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserRequestDto" } } } }, "responses": { "200": { "description": "User updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update a user by UUID or username", "tags": [ "Users Controller" ] }, "get": { "operationId": "UsersController_getAllUsers", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Page size for pagination", "schema": { "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Offset for pagination", "schema": { "type": "number" } } ], "responses": { "200": { "description": "Users fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all users", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}": { "delete": { "operationId": "UsersController_deleteUser", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete user", "tags": [ "Users Controller" ] }, "get": { "operationId": "UsersController_getUserByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user by UUID", "tags": [ "Users Controller" ] } }, "/api/users/tags": { "get": { "operationId": "UsersController_getAllTags", "parameters": [], "responses": { "200": { "description": "Tags fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllTagsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all existing user tags", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/accessible-nodes": { "get": { "operationId": "UsersController_getUserAccessibleNodes", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User accessible nodes fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserAccessibleNodesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user accessible nodes", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/subscription-request-history": { "get": { "operationId": "UsersController_getUserSubscriptionRequestHistory", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User subscription request history fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserSubscriptionRequestHistoryResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user subscription request history, recent 24 records", "tags": [ "Users Controller" ] } }, "/api/users/by-short-uuid/{shortUuid}": { "get": { "operationId": "UsersController_getUserByShortUuid", "parameters": [ { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByShortUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user by Short UUID", "tags": [ "Users Controller" ] } }, "/api/users/by-username/{username}": { "get": { "operationId": "UsersController_getUserByUsername", "parameters": [ { "name": "username", "required": true, "in": "path", "description": "Username of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByUsernameResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user by username", "tags": [ "Users Controller" ] } }, "/api/users/by-id/{id}": { "get": { "operationId": "UsersController_getUserById", "parameters": [ { "name": "id", "required": true, "in": "path", "description": "ID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByIdResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user by ID", "tags": [ "Users Controller" ] } }, "/api/users/by-telegram-id/{telegramId}": { "get": { "operationId": "UsersController_getUserByTelegramId", "parameters": [ { "name": "telegramId", "required": true, "in": "path", "description": "Telegram ID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Users fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByTelegramIdResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get users by telegram ID", "tags": [ "Users Controller" ] } }, "/api/users/by-email/{email}": { "get": { "operationId": "UsersController_getUsersByEmail", "parameters": [ { "name": "email", "required": true, "in": "path", "description": "Email of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Users fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByEmailResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get users by email", "tags": [ "Users Controller" ] } }, "/api/users/by-tag/{tag}": { "get": { "operationId": "UsersController_getUsersByTag", "parameters": [ { "name": "tag", "required": true, "in": "path", "description": "Tag of the user", "schema": { "example": "PROMO_1", "type": "string" } } ], "responses": { "200": { "description": "Users fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserByTagResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get users by tag", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/actions/revoke": { "post": { "operationId": "UsersController_revokeUserSubscription", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevokeUserSubscriptionBodyDto" } } } }, "responses": { "200": { "description": "User subscription revoked successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RevokeUserSubscriptionResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Revoke user subscription", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/actions/disable": { "post": { "operationId": "UsersController_disableUser", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User disabled successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisableUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Disable user", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/actions/enable": { "post": { "operationId": "UsersController_enableUser", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User enabled successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnableUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Enable user", "tags": [ "Users Controller" ] } }, "/api/users/{uuid}/actions/reset-traffic": { "post": { "operationId": "UsersController_resetUserTraffic", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User traffic reset successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetUserTrafficResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reset user traffic", "tags": [ "Users Controller" ] } }, "/api/users/resolve": { "post": { "operationId": "UsersController_resolveUser", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveUserRequestBodyDto" } } } }, "responses": { "200": { "description": "User resolved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveUserResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Resolve a user", "tags": [ "Users Controller" ] } }, "/api/users/bulk/delete-by-status": { "post": { "operationId": "UsersBulkActionsController_bulkDeleteUsersByStatus", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteUsersByStatusRequestDto" } } } }, "responses": { "200": { "description": "Users deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteUsersByStatusResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk delete users by status", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/delete": { "post": { "operationId": "UsersBulkActionsController_bulkDeleteUsers", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteUsersRequestDto" } } } }, "responses": { "200": { "description": "Users deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk delete users by UUIDs", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/revoke-subscription": { "post": { "operationId": "UsersBulkActionsController_bulkRevokeUsersSubscription", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkRevokeUsersSubscriptionRequestDto" } } } }, "responses": { "200": { "description": "Users subscription revoked successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkRevokeUsersSubscriptionResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Revoke users subscription by User UUIDs", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/reset-traffic": { "post": { "operationId": "UsersBulkActionsController_bulkResetUserTraffic", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkResetTrafficUsersRequestDto" } } } }, "responses": { "200": { "description": "Users traffic reset successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkResetTrafficUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk reset traffic users by UUIDs", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/update": { "post": { "operationId": "UsersBulkActionsController_bulkUpdateUsers", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUsersRequestDto" } } } }, "responses": { "200": { "description": "Users updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk update users by UUIDs", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/update-squads": { "post": { "operationId": "UsersBulkActionsController_bulkUpdateUsersInternalSquads", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUsersSquadsRequestDto" } } } }, "responses": { "200": { "description": "Internal squads updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUsersSquadsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk update users internal squads by UUIDs", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/extend-expiration-date": { "post": { "description": "Bulk extend all users expiration date", "operationId": "UsersBulkActionsController_bulkExtendExpirationDate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExtendExpirationDateRequestDto" } } } }, "responses": { "200": { "description": "Users expiration date extended successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkExtendExpirationDateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk Extend Users Expiration Date", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/all/update": { "post": { "operationId": "UsersBulkActionsController_bulkUpdateAllUsers", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkAllUpdateUsersRequestDto" } } } }, "responses": { "200": { "description": "All users updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkAllUpdateUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk update all users", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/all/reset-traffic": { "post": { "description": "Bulk reset all users traffic", "operationId": "UsersBulkActionsController_bulkAllResetUserTraffic", "parameters": [], "responses": { "200": { "description": "All users traffic reset successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkAllResetTrafficUsersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk Reset All Users Traffic", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/users/bulk/all/extend-expiration-date": { "post": { "description": "Bulk extend all users expiration date", "operationId": "UsersBulkActionsController_bulkAllExtendExpirationDate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkAllExtendExpirationDateRequestDto" } } } }, "responses": { "200": { "description": "All users expiration date extended successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkAllExtendExpirationDateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Bulk Extend All Users Expiration Date", "tags": [ "Users Bulk Actions Controller" ] } }, "/api/sub/{shortUuid}/info": { "get": { "operationId": "SubscriptionController_getSubscriptionInfoByShortUuid", "parameters": [ { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription info fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionInfoResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "summary": "Get Subscription Info by Short UUID", "tags": [ "[Public] Subscription Controller" ] } }, "/api/sub/{shortUuid}": { "get": { "operationId": "SubscriptionController_getSubscription", "parameters": [ { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "[Public] Subscription Controller" ] } }, "/api/sub/{shortUuid}/{clientType}": { "get": { "operationId": "SubscriptionController_getSubscriptionByClientType", "parameters": [ { "name": "clientType", "required": true, "in": "path", "description": "Client type", "schema": { "enum": [ "stash", "singbox", "mihomo", "json", "v2ray-json", "clash" ], "type": "string" } }, { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "[Public] Subscription Controller" ] } }, "/api/subscriptions": { "get": { "operationId": "SubscriptionsController_getAllSubscriptions", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Number of subscriptions to return, no more than 500", "schema": { "example": 25, "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Start index (offset) of the users to return, default is 0", "schema": { "example": 0, "type": "number" } } ], "responses": { "200": { "description": "Users fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllSubscriptionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all subscriptions", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/by-username/{username}": { "get": { "operationId": "SubscriptionsController_getSubscriptionByUsername", "parameters": [ { "name": "username", "required": true, "in": "path", "description": "Username of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionByUsernameResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription by username", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/by-short-uuid/{shortUuid}": { "get": { "operationId": "SubscriptionsController_getSubscriptionByShortUuidProtected", "parameters": [ { "name": "shortUuid", "required": true, "in": "path", "description": "Short uuid of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionByShortUuidProtectedResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription by short uuid (protected route)", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/by-uuid/{uuid}": { "get": { "operationId": "SubscriptionsController_getSubscriptionByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Uuid of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Subscription fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription by uuid", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/by-short-uuid/{shortUuid}/raw": { "get": { "operationId": "SubscriptionsController_getRawSubscriptionByShortUuid", "parameters": [ { "name": "withDisabledHosts", "required": false, "in": "query", "description": "Include disabled hosts in the subscription. Default is false.", "schema": { "type": "boolean" } }, { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Raw subscription fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRawSubscriptionByShortUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Raw Subscription by Short UUID", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/subpage-config/{shortUuid}": { "get": { "operationId": "SubscriptionsController_getSubpageConfigByShortUuid", "parameters": [ { "name": "shortUuid", "required": true, "in": "path", "description": "Short UUID of the user", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubpageConfigByShortUuidRequestBodyDto" } } } }, "responses": { "200": { "description": "Subpage config fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubpageConfigByShortUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Subpage Config by Short UUID", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscriptions/connection-keys/{uuid}": { "get": { "operationId": "SubscriptionsController_getConnectionKeysByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Connection keys fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetConnectionKeysByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get connection keys (base64 format) by uuid", "tags": [ "[Protected] Subscriptions Controller" ] } }, "/api/subscription-templates": { "get": { "operationId": "SubscriptionTemplateController_getAllTemplates", "parameters": [], "responses": { "200": { "description": "Templates retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTemplatesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all subscription templates (wihout content)", "tags": [ "Subscription Template Controller" ] }, "patch": { "operationId": "SubscriptionTemplateController_updateTemplate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTemplateRequestDto" } } } }, "responses": { "200": { "description": "Template updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTemplateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update subscription template", "tags": [ "Subscription Template Controller" ] }, "post": { "operationId": "SubscriptionTemplateController_createTemplate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubscriptionTemplateRequestDto" } } } }, "responses": { "200": { "description": "Template created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubscriptionTemplateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create subscription template", "tags": [ "Subscription Template Controller" ] } }, "/api/subscription-templates/{uuid}": { "get": { "operationId": "SubscriptionTemplateController_getTemplateByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Template UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Template retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTemplateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription template by uuid", "tags": [ "Subscription Template Controller" ] }, "delete": { "operationId": "SubscriptionTemplateController_deleteTemplate", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Template UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Template deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSubscriptionTemplateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete subscription template", "tags": [ "Subscription Template Controller" ] } }, "/api/subscription-templates/actions/reorder": { "post": { "operationId": "SubscriptionTemplateController_reorderSubscriptionTemplates", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderSubscriptionTemplatesRequestDto" } } } }, "responses": { "200": { "description": "Subscription templates reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderSubscriptionTemplatesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder subscription templates", "tags": [ "Subscription Template Controller" ] } }, "/api/tokens": { "post": { "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with an admin JWT-token.", "operationId": "ApiTokensController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiTokenRequestDto" } } } }, "responses": { "201": { "description": "Token created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiTokenResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create a new API token", "tags": [ "API Tokens Controller" ] }, "get": { "description": "This endpoint is forbidden to use via \"API-key\". It can only be used with admin JWT-token.", "operationId": "ApiTokensController_findAll", "parameters": [], "responses": { "200": { "description": "Tokens fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FindAllApiTokensResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all API tokens", "tags": [ "API Tokens Controller" ] } }, "/api/tokens/{uuid}": { "delete": { "description": "This endpoint is forbidden to use via \"API-key\". It can be used only with an admin JWT-token.", "operationId": "ApiTokensController_delete", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the API token", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Token deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteApiTokenResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete an API token by UUID", "tags": [ "API Tokens Controller" ] } }, "/api/config-profiles": { "get": { "operationId": "ConfigProfileController_getConfigProfiles", "parameters": [], "responses": { "200": { "description": "Config profiles retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetConfigProfilesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get config profiles", "tags": [ "Config Profiles Controller" ] }, "post": { "operationId": "ConfigProfileController_createConfigProfile", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConfigProfileRequestDto" } } } }, "responses": { "201": { "description": "Config profile created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConfigProfileResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "409": { "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create config profile", "tags": [ "Config Profiles Controller" ] }, "patch": { "operationId": "ConfigProfileController_updateConfigProfile", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConfigProfileRequestDto" } } } }, "responses": { "200": { "description": "Config profile updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConfigProfileResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Config profile not found" }, "409": { "description": "Config profile name already exists or inbound tags are not unique. Inbound tags must be unique in global scope." }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update Core Config in specific config profile", "tags": [ "Config Profiles Controller" ] } }, "/api/config-profiles/inbounds": { "get": { "operationId": "ConfigProfileController_getAllInbounds", "parameters": [], "responses": { "200": { "description": "Inbounds retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllInboundsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all inbounds from all config profiles", "tags": [ "Config Profiles Controller" ] } }, "/api/config-profiles/{uuid}/inbounds": { "get": { "operationId": "ConfigProfileController_getInboundsByProfileUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Inbounds retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInboundsByProfileUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Config profile not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get inbounds by profile uuid", "tags": [ "Config Profiles Controller" ] } }, "/api/config-profiles/{uuid}": { "get": { "operationId": "ConfigProfileController_getConfigProfileByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Config profile retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetConfigProfileByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Config profile not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get config profile by uuid", "tags": [ "Config Profiles Controller" ] }, "delete": { "operationId": "ConfigProfileController_deleteConfigProfileByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Config profile deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteConfigProfileResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Config profile not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete config profile", "tags": [ "Config Profiles Controller" ] } }, "/api/config-profiles/{uuid}/computed-config": { "get": { "operationId": "ConfigProfileController_getComputedConfigProfileByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Computed config profile retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetComputedConfigProfileByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Config profile not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get computed config profile by uuid", "tags": [ "Config Profiles Controller" ] } }, "/api/config-profiles/actions/reorder": { "post": { "operationId": "ConfigProfileController_reorderConfigProfiles", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderConfigProfilesRequestDto" } } } }, "responses": { "200": { "description": "Config profiles reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderConfigProfilesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder config profiles", "tags": [ "Config Profiles Controller" ] } }, "/api/snippets": { "get": { "operationId": "SnippetsController_getSnippets", "parameters": [], "responses": { "200": { "description": "Snippets retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSnippetsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get snippets", "tags": [ "Snippets Controller" ] }, "delete": { "operationId": "SnippetsController_deleteSnippetByName", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSnippetRequestDto" } } } }, "responses": { "200": { "description": "Snippet deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSnippetResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Snippet not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete snippet", "tags": [ "Snippets Controller" ] }, "post": { "operationId": "SnippetsController_createSnippet", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSnippetRequestDto" } } } }, "responses": { "201": { "description": "Snippet created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSnippetResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "409": { "description": "Snippet name already exists." }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create snippet", "tags": [ "Snippets Controller" ] }, "patch": { "operationId": "SnippetsController_updateSnippet", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSnippetRequestDto" } } } }, "responses": { "200": { "description": "Snippet updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSnippetResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Snippet not found" }, "409": { "description": "Snippet name already exists." }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update snippet", "tags": [ "Snippets Controller" ] } }, "/api/internal-squads": { "get": { "operationId": "InternalSquadController_getInternalSquads", "parameters": [], "responses": { "200": { "description": "Internal squads retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInternalSquadsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all internal squads", "tags": [ "Internal Squads Controller" ] }, "post": { "operationId": "InternalSquadController_createInternalSquad", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInternalSquadRequestDto" } } } }, "responses": { "201": { "description": "Internal squad created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "409": { "description": "Internal squad already exists" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create internal squad", "tags": [ "Internal Squads Controller" ] }, "patch": { "operationId": "InternalSquadController_updateInternalSquad", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInternalSquadRequestDto" } } } }, "responses": { "200": { "description": "Internal squad updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Internal squad not found" }, "409": { "description": "Internal squad already exists" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update internal squad", "tags": [ "Internal Squads Controller" ] } }, "/api/internal-squads/{uuid}": { "get": { "operationId": "InternalSquadController_getInternalSquadByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Internal squad retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInternalSquadByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get internal squad by uuid", "tags": [ "Internal Squads Controller" ] }, "delete": { "operationId": "InternalSquadController_deleteInternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Internal squad deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteInternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Internal squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete internal squad", "tags": [ "Internal Squads Controller" ] } }, "/api/internal-squads/{uuid}/accessible-nodes": { "get": { "operationId": "InternalSquadController_getInternalSquadAccessibleNodes", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the internal squad", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Internal squad accessible nodes fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInternalSquadAccessibleNodesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Internal squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get internal squad accessible nodes", "tags": [ "Internal Squads Controller" ] } }, "/api/internal-squads/{uuid}/bulk-actions/add-users": { "post": { "operationId": "InternalSquadController_addUsersToInternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Task added to internal job queue", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddUsersToInternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Internal squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Add all users to internal squad", "tags": [ "Internal Squads Controller" ] } }, "/api/internal-squads/{uuid}/bulk-actions/remove-users": { "delete": { "operationId": "InternalSquadController_removeUsersFromInternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Task added to internal job queue", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoveUsersFromInternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Internal squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete users from internal squad", "tags": [ "Internal Squads Controller" ] } }, "/api/internal-squads/actions/reorder": { "post": { "operationId": "InternalSquadController_reorderInternalSquads", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderInternalSquadsRequestDto" } } } }, "responses": { "200": { "description": "Internal squads reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderInternalSquadsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder internal squads", "tags": [ "Internal Squads Controller" ] } }, "/api/external-squads": { "get": { "operationId": "ExternalSquadController_getExternalSquads", "parameters": [], "responses": { "200": { "description": "External squads retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetExternalSquadsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all external squads", "tags": [ "External Squads Controller" ] }, "post": { "operationId": "ExternalSquadController_createExternalSquad", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateExternalSquadRequestDto" } } } }, "responses": { "201": { "description": "External squad created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateExternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "409": { "description": "External squad already exists" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create external squad", "tags": [ "External Squads Controller" ] }, "patch": { "operationId": "ExternalSquadController_updateExternalSquad", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalSquadRequestDto" } } } }, "responses": { "200": { "description": "External squad updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "External squad not found" }, "409": { "description": "External squad already exists" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update external squad", "tags": [ "External Squads Controller" ] } }, "/api/external-squads/{uuid}": { "get": { "operationId": "ExternalSquadController_getExternalSquadByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "External squad retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetExternalSquadByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get external squad by uuid", "tags": [ "External Squads Controller" ] }, "delete": { "operationId": "ExternalSquadController_deleteExternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "External squad deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteExternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "External squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete external squad", "tags": [ "External Squads Controller" ] } }, "/api/external-squads/{uuid}/bulk-actions/add-users": { "post": { "operationId": "ExternalSquadController_addUsersToExternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Task added to external job queue", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddUsersToExternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "External squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Add all users to external squad", "tags": [ "External Squads Controller" ] } }, "/api/external-squads/{uuid}/bulk-actions/remove-users": { "delete": { "operationId": "ExternalSquadController_removeUsersFromExternalSquad", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Task added to external job queue", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RemoveUsersFromExternalSquadResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "External squad not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete users from external squad", "tags": [ "External Squads Controller" ] } }, "/api/external-squads/actions/reorder": { "post": { "operationId": "ExternalSquadController_reorderExternalSquads", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderExternalSquadsRequestDto" } } } }, "responses": { "200": { "description": "External squads reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderExternalSquadsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder external squads", "tags": [ "External Squads Controller" ] } }, "/api/keygen": { "get": { "operationId": "KeygenController_generateKey", "parameters": [], "responses": { "200": { "description": "Get SECRET_KEY for Remnawave Node", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetPubKeyResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get SECRET_KEY for Remnawave Node", "tags": [ "Keygen Controller" ] } }, "/api/nodes/tags": { "get": { "operationId": "NodesController_getAllNodesTags", "parameters": [], "responses": { "200": { "description": "Nodes tags fetched", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllNodesTagsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all existing nodes tags", "tags": [ "Nodes Controller" ] } }, "/api/nodes": { "post": { "operationId": "NodesController_createNode", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNodeRequestDto" } } } }, "responses": { "201": { "description": "Node created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create a new node", "tags": [ "Nodes Controller" ] }, "get": { "operationId": "NodesController_getAllNodes", "parameters": [], "responses": { "200": { "description": "Nodes fetched", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllNodesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all nodes", "tags": [ "Nodes Controller" ] }, "patch": { "operationId": "NodesController_updateNode", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateNodeRequestDto" } } } }, "responses": { "200": { "description": "Node updated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update node", "tags": [ "Nodes Controller" ] } }, "/api/nodes/{uuid}": { "get": { "operationId": "NodesController_getOneNode", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node fetched", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOneNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get node by UUID", "tags": [ "Nodes Controller" ] }, "delete": { "operationId": "NodesController_deleteNode", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node deleted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete a node", "tags": [ "Nodes Controller" ] } }, "/api/nodes/{uuid}/actions/enable": { "post": { "operationId": "NodesController_enableNode", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node enabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnableNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Enable a node", "tags": [ "Nodes Controller" ] } }, "/api/nodes/{uuid}/actions/disable": { "post": { "operationId": "NodesController_disableNode", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node disabled", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisableNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Disable a node", "tags": [ "Nodes Controller" ] } }, "/api/nodes/{uuid}/actions/restart": { "post": { "operationId": "NodesController_restartNode", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node restarted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestartNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Restart node", "tags": [ "Nodes Controller" ] } }, "/api/nodes/{uuid}/actions/reset-traffic": { "post": { "operationId": "NodesController_resetNodeTraffic", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Event sent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetNodeTrafficResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reset Node Traffic", "tags": [ "Nodes Controller" ] } }, "/api/nodes/actions/restart-all": { "post": { "operationId": "NodesController_restartAllNodes", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestartAllNodesRequestBodyDto" } } } }, "responses": { "200": { "description": "All nodes restarted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestartAllNodesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Restart all nodes", "tags": [ "Nodes Controller" ] } }, "/api/nodes/actions/reorder": { "post": { "operationId": "NodesController_reorderNodes", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderNodeRequestDto" } } } }, "responses": { "200": { "description": "Nodes reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder nodes", "tags": [ "Nodes Controller" ] } }, "/api/nodes/bulk-actions/profile-modification": { "post": { "operationId": "NodesController_profileModification", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileModificationRequestDto" } } } }, "responses": { "200": { "description": "Event sent successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfileModificationResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Modify Inbounds & Profile for many nodes", "tags": [ "Nodes Controller" ] } }, "/api/nodes/bulk-actions": { "post": { "operationId": "NodesController_bulkNodesActions", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkNodesActionsRequestDto" } } } }, "responses": { "200": { "description": "Event sent successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkNodesActionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Perform actions for many nodes", "tags": [ "Nodes Controller" ] } }, "/api/nodes/bulk-actions/update": { "post": { "operationId": "NodesController_bulkNodesUpdate", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkNodesUpdateRequestDto" } } } }, "responses": { "200": { "description": "Event sent successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkNodesUpdateResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update many nodes", "tags": [ "Nodes Controller" ] } }, "/api/node-plugins/torrent-blocker": { "get": { "operationId": "TorrentBlockerReportsController_getTorrentBlockerReports", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Page size for pagination", "schema": { "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Offset for pagination", "schema": { "type": "number" } } ], "responses": { "200": { "description": "Torrent blocker reports fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTorrentBlockerReportsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Torrent Blocker Reports", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/torrent-blocker/stats": { "get": { "operationId": "TorrentBlockerReportsController_getTorrentBlockerReportsStats", "parameters": [], "responses": { "200": { "description": "Torrent blocker reports stats fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTorrentBlockerReportsStatsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Torrent Blocker Reports Stats", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/torrent-blocker/truncate": { "delete": { "operationId": "TorrentBlockerReportsController_truncateTorrentBlockerReports", "parameters": [], "responses": { "200": { "description": "Torrent blocker reports truncated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TruncateTorrentBlockerReportsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Truncate Torrent Blocker Reports", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins": { "get": { "operationId": "NodePluginController_getAllConfigs", "parameters": [], "responses": { "200": { "description": "Node plugins retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetNodePluginsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all Node Plugins", "tags": [ "Node Plugins Controller" ] }, "patch": { "operationId": "NodePluginController_updateConfig", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateNodePluginRequestDto" } } } }, "responses": { "200": { "description": "Node plugin updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateNodePluginResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update Node Plugin", "tags": [ "Node Plugins Controller" ] }, "post": { "operationId": "NodePluginController_createConfig", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNodePluginRequestDto" } } } }, "responses": { "200": { "description": "Node plugin created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateNodePluginResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create Node Plugin", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/{uuid}": { "get": { "operationId": "NodePluginController_getConfigByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node plugin UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node plugin retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetNodePluginResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Node Plugin by uuid", "tags": [ "Node Plugins Controller" ] }, "delete": { "operationId": "NodePluginController_deleteConfig", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "Node plugin UUID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node plugin deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteNodePluginResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete Node Plugin", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/actions/reorder": { "post": { "operationId": "NodePluginController_reorderNodePlugins", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderNodePluginsRequestDto" } } } }, "responses": { "200": { "description": "Node plugins reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderNodePluginsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder Node Plugins", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/actions/clone": { "post": { "operationId": "NodePluginController_cloneNodePlugin", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloneNodePluginRequestDto" } } } }, "responses": { "200": { "description": "Node plugin cloned successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloneNodePluginResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Clone Node Plugin", "tags": [ "Node Plugins Controller" ] } }, "/api/node-plugins/executor": { "post": { "operationId": "NodePluginController_pluginExecutor", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PluginExecutorRequestDto" } } } }, "responses": { "200": { "description": "Node plugin cloned successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PluginExecutorResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Execute command on node plugins", "tags": [ "Node Plugins Controller" ] } }, "/api/hosts/tags": { "get": { "operationId": "HostsController_getAllHostTags", "parameters": [], "responses": { "200": { "description": "Host tags fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllHostTagsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all existing host tags", "tags": [ "Hosts Controller" ] } }, "/api/hosts": { "post": { "operationId": "HostsController_createHost", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateHostRequestDto" } } } }, "responses": { "201": { "description": "Host created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateHostResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create a new host", "tags": [ "Hosts Controller" ] }, "patch": { "operationId": "HostsController_updateHost", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateHostRequestDto" } } } }, "responses": { "200": { "description": "Host updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateHostResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update a host", "tags": [ "Hosts Controller" ] }, "get": { "operationId": "HostsController_getAllHosts", "parameters": [], "responses": { "200": { "description": "Hosts fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all hosts", "tags": [ "Hosts Controller" ] } }, "/api/hosts/{uuid}": { "get": { "operationId": "HostsController_getOneHost", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the host", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Host fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetOneHostResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get a host by UUID", "tags": [ "Hosts Controller" ] }, "delete": { "operationId": "HostsController_deleteHost", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the host", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Host deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteHostResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Host not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete a host by UUID", "tags": [ "Hosts Controller" ] } }, "/api/hosts/actions/reorder": { "post": { "operationId": "HostsController_reorderHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderHostRequestDto" } } } }, "responses": { "200": { "description": "Hosts reordered successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReorderHostResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Reorder hosts", "tags": [ "Hosts Controller" ] } }, "/api/hosts/bulk/delete": { "post": { "operationId": "HostsBulkActionsController_deleteHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteHostsRequestDto" } } } }, "responses": { "200": { "description": "Hosts deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDeleteHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete hosts by UUIDs", "tags": [ "Hosts Bulk Actions Controller" ] } }, "/api/hosts/bulk/disable": { "post": { "operationId": "HostsBulkActionsController_disableHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDisableHostsRequestDto" } } } }, "responses": { "200": { "description": "Hosts disabled successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkDisableHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Disable hosts by UUIDs", "tags": [ "Hosts Bulk Actions Controller" ] } }, "/api/hosts/bulk/enable": { "post": { "operationId": "HostsBulkActionsController_enableHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkEnableHostsRequestDto" } } } }, "responses": { "200": { "description": "Hosts enabled successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkEnableHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Enable hosts by UUIDs", "tags": [ "Hosts Bulk Actions Controller" ] } }, "/api/hosts/bulk/set-inbound": { "post": { "operationId": "HostsBulkActionsController_setInboundToHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetInboundToManyHostsRequestDto" } } } }, "responses": { "200": { "description": "Hosts inbound set successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetInboundToManyHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Set inbound to hosts by UUIDs", "tags": [ "Hosts Bulk Actions Controller" ] } }, "/api/hosts/bulk/set-port": { "post": { "operationId": "HostsBulkActionsController_setPortToHosts", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPortToManyHostsRequestDto" } } } }, "responses": { "200": { "description": "Hosts port set successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPortToManyHostsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Set port to hosts by UUIDs", "tags": [ "Hosts Bulk Actions Controller" ] } }, "/api/bandwidth-stats/nodes/{uuid}/users/legacy": { "get": { "operationId": "BandwidthStatsNodesController_getNodeUserUsage", "parameters": [ { "name": "start", "required": true, "in": "query", "description": "Start date", "schema": { "format": "date-time", "type": "string" } }, { "name": "end", "required": true, "in": "query", "description": "End date", "schema": { "format": "date-time", "type": "string" } }, { "name": "uuid", "required": true, "in": "path", "description": "UUID of the node", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Nodes users usage by range (legacy) fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetLegacyStatsNodesUsersUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Node User Usage by Range and Node UUID (Legacy)", "tags": [ "Bandwidth Stats Controller" ] } }, "/api/bandwidth-stats/nodes/{uuid}/users": { "get": { "operationId": "BandwidthStatsNodesController_getStatsNodeUsersUsage", "parameters": [ { "name": "topUsersLimit", "required": true, "in": "query", "description": "Limit of top users to return", "schema": { "type": "number" } }, { "name": "start", "required": true, "in": "query", "description": "Start date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-31", "type": "string" } }, { "name": "end", "required": true, "in": "query", "description": "End date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-01", "type": "string" } }, { "name": "uuid", "required": true, "in": "path", "description": "UUID of the node", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Stats node users usage fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetStatsNodeUsersUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Node Users Usage by Node UUID", "tags": [ "Bandwidth Stats Controller" ] } }, "/api/bandwidth-stats/users/{uuid}/legacy": { "get": { "operationId": "BandwidthStatsUsersController_getUserUsageByRange", "parameters": [ { "name": "start", "required": true, "in": "query", "description": "Start date", "schema": { "format": "date-time", "type": "string" } }, { "name": "end", "required": true, "in": "query", "description": "End date", "schema": { "format": "date-time", "type": "string" } }, { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User usage by range (legacy) fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetLegacyStatsUserUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get User Usage by Range (Legacy)", "tags": [ "Bandwidth Stats Controller" ] } }, "/api/bandwidth-stats/users/{uuid}": { "get": { "operationId": "BandwidthStatsUsersController_getStatsNodesUsage", "parameters": [ { "name": "topNodesLimit", "required": true, "in": "query", "description": "Limit of top nodes to return", "schema": { "type": "number" } }, { "name": "start", "required": true, "in": "query", "description": "Start date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-31", "type": "string" } }, { "name": "end", "required": true, "in": "query", "description": "End date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-01", "type": "string" } }, { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Stats user usage fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetStatsUserUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get User Usage by Range", "tags": [ "Bandwidth Stats Controller" ] } }, "/api/hwid/devices": { "get": { "operationId": "HwidUserDevicesController_getAllUsers", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Page size for pagination", "schema": { "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Offset for pagination", "schema": { "type": "number" } } ], "responses": { "200": { "description": "Hwid devices fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetAllHwidDevicesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all HWID devices", "tags": [ "HWID User Devices Controller" ] }, "post": { "operationId": "HwidUserDevicesController_createUserHwidDevice", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserHwidDeviceRequestDto" } } } }, "responses": { "200": { "description": "User HWID device created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserHwidDeviceResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "One of requested resources not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create a user HWID device", "tags": [ "HWID User Devices Controller" ] } }, "/api/hwid/devices/delete": { "post": { "operationId": "HwidUserDevicesController_deleteUserHwidDevice", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteUserHwidDeviceRequestDto" } } } }, "responses": { "200": { "description": "User HWID device deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteUserHwidDeviceResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "One of requested resources not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete a user HWID device", "tags": [ "HWID User Devices Controller" ] } }, "/api/hwid/devices/delete-all": { "post": { "operationId": "HwidUserDevicesController_deleteAllUserHwidDevices", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteAllUserHwidDevicesRequestDto" } } } }, "responses": { "200": { "description": "User HWID devices deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteAllUserHwidDevicesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "One of requested resources not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete all user HWID devices", "tags": [ "HWID User Devices Controller" ] } }, "/api/hwid/devices/stats": { "get": { "operationId": "HwidUserDevicesController_getHwidDevicesStats", "parameters": [], "responses": { "200": { "description": "Hwid devices stats fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetHwidDevicesStatsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get HWID devices stats", "tags": [ "HWID User Devices Controller" ] } }, "/api/hwid/devices/top-users": { "get": { "operationId": "HwidUserDevicesController_getTopUsersByHwidDevices", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Page size for pagination", "schema": { "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Offset for pagination", "schema": { "type": "number" } } ], "responses": { "200": { "description": "Top users by HWID devices fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTopUsersByHwidDevicesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get top users by HWID devices", "tags": [ "HWID User Devices Controller" ] } }, "/api/hwid/devices/{userUuid}": { "get": { "operationId": "HwidUserDevicesController_getUserHwidDevices", "parameters": [ { "name": "userUuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User HWID devices fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserHwidDevicesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "One of requested resources not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user HWID devices", "tags": [ "HWID User Devices Controller" ] } }, "/api/bandwidth-stats/nodes": { "get": { "operationId": "NodesUsageHistoryController_getStatsNodesUsage", "parameters": [ { "name": "topNodesLimit", "required": true, "in": "query", "description": "Limit of top nodes to return", "schema": { "type": "number" } }, { "name": "start", "required": true, "in": "query", "description": "Start date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-31", "type": "string" } }, { "name": "end", "required": true, "in": "query", "description": "End date (YYYY-MM-DD)", "schema": { "format": "date", "example": "2026-01-01", "type": "string" } } ], "responses": { "200": { "description": "Stats nodes usage fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetStatsNodesUsageResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Nodes Usage by Range", "tags": [ "Bandwidth Stats Controller" ] } }, "/api/infra-billing/providers": { "get": { "operationId": "InfraBillingController_getInfraProviders", "parameters": [], "responses": { "200": { "description": "Infra providers retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInfraProvidersResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all infra providers", "tags": [ "Infra Billing Controller" ] }, "post": { "operationId": "InfraBillingController_createInfraProvider", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraProviderRequestDto" } } } }, "responses": { "201": { "description": "Infra provider created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraProviderResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create infra provider", "tags": [ "Infra Billing Controller" ] }, "patch": { "operationId": "InfraBillingController_updateInfraProvider", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInfraProviderRequestDto" } } } }, "responses": { "200": { "description": "Infra provider updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInfraProviderResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update infra provider", "tags": [ "Infra Billing Controller" ] } }, "/api/infra-billing/providers/{uuid}": { "get": { "operationId": "InfraBillingController_getInfraProviderByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Infra provider retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInfraProviderByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Infra provider not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get infra provider by uuid", "tags": [ "Infra Billing Controller" ] }, "delete": { "operationId": "InfraBillingController_deleteInfraProviderByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Infra provider deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteInfraProviderByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete infra provider by uuid", "tags": [ "Infra Billing Controller" ] } }, "/api/infra-billing/history": { "post": { "operationId": "InfraBillingController_createInfraBillingHistoryRecord", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraBillingHistoryRecordRequestDto" } } } }, "responses": { "201": { "description": "Infra billing history record created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraBillingHistoryRecordResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create infra billing history", "tags": [ "Infra Billing Controller" ] }, "get": { "operationId": "InfraBillingController_getInfraBillingHistoryRecords", "parameters": [], "responses": { "200": { "description": "Infra billing history records retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInfraBillingHistoryRecordsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get infra billing history", "tags": [ "Infra Billing Controller" ] } }, "/api/infra-billing/history/{uuid}": { "delete": { "operationId": "InfraBillingController_deleteInfraBillingHistoryRecordByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Infra billing history record deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteInfraBillingHistoryRecordByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete infra billing history", "tags": [ "Infra Billing Controller" ] } }, "/api/infra-billing/nodes": { "get": { "operationId": "InfraBillingController_getBillingNodes", "parameters": [], "responses": { "200": { "description": "Infra billing nodes retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetInfraBillingNodesResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get infra billing nodes", "tags": [ "Infra Billing Controller" ] }, "patch": { "operationId": "InfraBillingController_updateInfraBillingNode", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInfraBillingNodeRequestDto" } } } }, "responses": { "200": { "description": "Infra billing node updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInfraBillingNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update infra billing nodes", "tags": [ "Infra Billing Controller" ] }, "post": { "operationId": "InfraBillingController_createInfraBillingNode", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraBillingNodeRequestDto" } } } }, "responses": { "201": { "description": "Infra billing node created successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInfraBillingNodeResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Create infra billing node", "tags": [ "Infra Billing Controller" ] } }, "/api/infra-billing/nodes/{uuid}": { "delete": { "operationId": "InfraBillingController_deleteInfraBillingNodeByUuid", "parameters": [ { "name": "uuid", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Infra billing node deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteInfraBillingNodeByUuidResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Delete infra billing node", "tags": [ "Infra Billing Controller" ] } }, "/api/subscription-request-history": { "get": { "operationId": "UserSubscriptionRequestHistoryController_getSubscriptionRequestHistory", "parameters": [ { "name": "size", "required": false, "in": "query", "description": "Page size for pagination", "schema": { "type": "number" } }, { "name": "start", "required": false, "in": "query", "description": "Offset for pagination", "schema": { "type": "number" } } ], "responses": { "200": { "description": "Subscription request history fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionRequestHistoryResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get all subscription request history", "tags": [ "Subscription Request History Controller" ] } }, "/api/subscription-request-history/stats": { "get": { "operationId": "UserSubscriptionRequestHistoryController_getSubscriptionRequestHistoryStats", "parameters": [], "responses": { "200": { "description": "User subscription request history stats fetched successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionRequestHistoryStatsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription request history stats", "tags": [ "Subscription Request History Controller" ] } }, "/api/system/metadata": { "get": { "operationId": "SystemController_getMetadata", "parameters": [], "responses": { "200": { "description": "Returns system metadata", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMetadataResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Remnawave Information", "tags": [ "System Controller" ] } }, "/api/system/stats": { "get": { "operationId": "SystemController_getStats", "parameters": [], "responses": { "200": { "description": "Returns system statistics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetStatsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Stats", "tags": [ "System Controller" ] } }, "/api/system/stats/bandwidth": { "get": { "operationId": "SystemController_getBandwidthStats", "parameters": [], "responses": { "200": { "description": "Returns bandwidth statistics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetBandwidthStatsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Bandwidth Stats", "tags": [ "System Controller" ] } }, "/api/system/stats/nodes": { "get": { "operationId": "SystemController_getNodesStatistics", "parameters": [], "responses": { "200": { "description": "Returns nodes statistics", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetNodesStatisticsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Nodes Statistics", "tags": [ "System Controller" ] } }, "/api/system/health": { "get": { "operationId": "SystemController_getRemnawaveHealth", "parameters": [], "responses": { "200": { "description": "Returns Remnawave health", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRemnawaveHealthResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Remnawave Health", "tags": [ "System Controller" ] } }, "/api/system/nodes/metrics": { "get": { "operationId": "SystemController_getNodesMetrics", "parameters": [], "responses": { "200": { "description": "Returns nodes metrics from Prometheus metrics endpoint", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetNodesMetricsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Nodes Metrics", "tags": [ "System Controller" ] } }, "/api/system/tools/x25519/generate": { "get": { "operationId": "SystemController_getX25519Keypairs", "parameters": [], "responses": { "200": { "description": "Returns x25519 keypairs", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateX25519ResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Generate 30 X25519 keypairs", "tags": [ "System Controller" ] } }, "/api/system/tools/happ/encrypt": { "post": { "operationId": "SystemController_encryptHappCryptoLink", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EncryptHappCryptoLinkRequestDto" } } } }, "responses": { "200": { "description": "Returns encrypted Happ crypto link", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EncryptHappCryptoLinkResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Encrypt Happ Crypto Link", "tags": [ "System Controller" ] } }, "/api/system/testers/srr-matcher": { "post": { "operationId": "SystemController_debugSrrMatcher", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DebugSrrMatcherRequestDto" } } } }, "responses": { "201": { "description": "Debug SRR matcher information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DebugSrrMatcherResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Test SRR Matcher", "tags": [ "System Controller" ] } }, "/api/system/stats/recap": { "get": { "operationId": "SystemController_getRecap", "parameters": [], "responses": { "200": { "description": "Returns system recap", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetRecapResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Recap", "tags": [ "System Controller" ] } }, "/api/subscription-settings": { "get": { "operationId": "SubscriptionSettingsController_getSettings", "parameters": [], "responses": { "200": { "description": "Subscription settings retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetSubscriptionSettingsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get subscription settings", "tags": [ "Subscription Settings Controller" ] }, "patch": { "operationId": "SubscriptionSettingsController_updateSettings", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubscriptionSettingsRequestDto" } } } }, "responses": { "200": { "description": "Subscription settings updated successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubscriptionSettingsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update subscription settings", "tags": [ "Subscription Settings Controller" ] } }, "/api/ip-control/fetch-ips/{uuid}": { "post": { "operationId": "IpControlController_fetchUserIps", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Return jobId for further processing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchIpsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Request IP List for User", "tags": [ "IP Management Controller" ] } }, "/api/ip-control/fetch-ips/result/{jobId}": { "get": { "operationId": "IpControlController_getFetchIpsResult", "parameters": [ { "name": "jobId", "required": true, "in": "path", "description": "Job ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Return result or status of the job", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchIpsResultResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Job not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get IP List Result by Job ID", "tags": [ "IP Management Controller" ] } }, "/api/ip-control/drop-connections": { "post": { "operationId": "IpControlController_dropConnections", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DropConnectionsRequestDto" } } } }, "responses": { "200": { "description": "Event sent to background executor", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DropConnectionsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found // Connected nodes not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Drop Connections for Users or IPs", "tags": [ "IP Management Controller" ] } }, "/api/ip-control/fetch-users-ips/{nodeUuid}": { "post": { "operationId": "IpControlController_fetchUsersIps", "parameters": [ { "name": "nodeUuid", "required": true, "in": "path", "description": "UUID of the node", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Return jobId for further processing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchUsersIpsResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Node not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Request Users IPs List for Node", "tags": [ "IP Management Controller" ] } }, "/api/ip-control/fetch-users-ips/result/{jobId}": { "get": { "operationId": "IpControlController_getFetchUsersIpsResult", "parameters": [ { "name": "jobId", "required": true, "in": "path", "description": "Job ID", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Return result or status of the job", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FetchUsersIpsResultResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Job not found" }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get Users IPs List Result by Job ID", "tags": [ "IP Management Controller" ] } }, "/api/metadata/user/{uuid}": { "get": { "operationId": "MetadataController_getUserMetadata", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "responses": { "200": { "description": "User Metadata retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserMetadataResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User or Metadata not found (see errorCode for more details)", "content": { "application/json": { "schema": { "oneOf": [ { "example": { "timestamp": "omitted", "path": "omitted", "message": "User not found", "errorCode": "A025" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A025" ] } } }, { "example": { "timestamp": "omitted", "path": "omitted", "message": "Metadata not found", "errorCode": "A226" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A226" ] } } } ] } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get user metadata", "tags": [ "Metadata Controller" ] }, "put": { "operationId": "MetadataController_upsertUserMetadata", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the user", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertUserMetadataRequestBodyDto" } } } }, "responses": { "200": { "description": "User Metadata upserted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertUserMetadataResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "User not found (see errorCode for more details)", "content": { "application/json": { "schema": { "example": { "timestamp": "omitted", "path": "omitted", "message": "User not found", "errorCode": "A025" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A025" ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update or create User Metadata", "tags": [ "Metadata Controller" ] } }, "/api/metadata/node/{uuid}": { "get": { "operationId": "MetadataController_getNodeMetadata", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the node", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Node Metadata retrieved successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetNodeMetadataResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Node or Metadata not found (see errorCode for more details)", "content": { "application/json": { "schema": { "oneOf": [ { "example": { "timestamp": "omitted", "path": "omitted", "message": "Node not found", "errorCode": "A011" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A011" ] } } }, { "example": { "timestamp": "omitted", "path": "omitted", "message": "Metadata not found", "errorCode": "A226" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A226" ] } } } ] } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Get node metadata", "tags": [ "Metadata Controller" ] }, "put": { "operationId": "MetadataController_upsertNodeMetadata", "parameters": [ { "name": "uuid", "required": true, "in": "path", "description": "UUID of the node", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertNodeMetadataRequestBodyDto" } } } }, "responses": { "200": { "description": "Node Metadata upserted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertNodeMetadataResponseDto" } } } }, "400": { "description": "Validation error", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "statusCode": { "type": "number", "example": 400 }, "errors": { "type": "array", "items": { "type": "object", "properties": { "validation": { "type": "string", "example": "uuid" }, "code": { "type": "string", "example": "invalid_string" }, "message": { "type": "string", "example": "Invalid uuid" }, "path": { "type": "array", "items": { "type": "string" }, "example": [ "uuid" ] } }, "required": [ "validation", "code", "message", "path" ] }, "example": [ { "validation": "uuid", "code": "invalid_string", "message": "Invalid uuid", "path": [ "uuid" ] } ] } } } } } }, "404": { "description": "Node not found (see errorCode for more details)", "content": { "application/json": { "schema": { "example": { "timestamp": "omitted", "path": "omitted", "message": "Node not found", "errorCode": "A011" }, "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string", "enum": [ "A011" ] } } } } } }, "500": { "description": "Server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "string" }, "path": { "type": "string" }, "message": { "type": "string" }, "errorCode": { "type": "string" } } } } } } }, "security": [ { "Authorization": [] } ], "summary": "Update or create Node Metadata", "tags": [ "Metadata Controller" ] } } }, "info": { "title": "Remnawave API v2.7.4", "description": "\nRemnawave is a powerful proxy managment tool, built on top of Xray-core, with a focus on simplicity and ease of use.\n\n## Resources\n* https://t.me/remnawave\n* https://github.com/remnawave\n* https://docs.rw\n", "version": "2.7.4", "contact": {}, "license": { "name": "AGPL-3.0", "url": "https://github.com/remnawave/panel?tab=AGPL-3.0-1-ov-file" } }, "tags": [ { "name": "Auth Controller", "description": "Used to authenticate admin users." }, { "name": "Passkeys Controller", "description": "Management of Passkeys." }, { "name": "API Tokens Controller", "description": "Manage API tokens to use in your code. This controller can't be used with API token, only with Admin JWT token" }, { "name": "Users Controller", "description": "Manage users, change their status, reset traffic, etc." }, { "name": "Users Bulk Actions Controller", "description": "Bulk actions with users." }, { "name": "HWID User Devices Controller", "description": "" }, { "name": "[Public] Subscription Controller", "description": "Public Subscription Controller. Methods of this controller are not protected with auth. Use it only for public requests." }, { "name": "[Protected] Subscriptions Controller", "description": "Methods of this controller are protected with auth, most of them is returning the same informations as public Subscription Controller." }, { "name": "Nodes Controller", "description": "" }, { "name": "Node Plugins Controller", "description": "" }, { "name": "Bandwidth Stats Controller", "description": "" }, { "name": "IP Management Controller", "description": "Management of IP addresses and connections." }, { "name": "Config Profiles Controller", "description": "Management of Config Profiles." }, { "name": "Internal Squads Controller", "description": "Management of Internal Squads." }, { "name": "External Squads Controller", "description": "Management of External Squads." }, { "name": "Hosts Controller", "description": "" }, { "name": "Hosts Bulk Actions Controller", "description": "" }, { "name": "Subscription Template Controller", "description": "" }, { "name": "Subscription Settings Controller", "description": "" }, { "name": "Infra Billing Controller", "description": "" }, { "name": "System Controller", "description": "" }, { "name": "Keygen Controller", "description": "Generation of SECRET_KEY for Remnawave Node." }, { "name": "Subscription Request History Controller", "description": "" }, { "name": "Snippets Controller", "description": "" }, { "name": "Remnawave Settings Controller", "description": "" }, { "name": "Subscription Page Configs Controller", "description": "" }, { "name": "Metadata Controller", "description": "Manage arbitrary metadata for Users and Nodes." } ], "servers": [], "components": { "securitySchemes": { "Authorization": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http", "name": "Authorization", "description": "JWT obtained login." }, "Prometheus": { "type": "http", "scheme": "basic", "name": "Prometheus", "description": "Prometheus Basic Auth" } }, "schemas": { "GetRemnawaveSettingsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "passkeySettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "rpId": { "type": "string", "nullable": true }, "origin": { "type": "string", "nullable": true } }, "required": [ "enabled", "rpId", "origin" ], "nullable": true }, "oauth2Settings": { "type": "object", "properties": { "github": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "pocketid": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "plainDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "plainDomain", "allowedEmails" ] }, "yandex": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "keycloak": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "realm": { "type": "string", "nullable": true }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "keycloakDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "realm", "clientId", "clientSecret", "frontendDomain", "keycloakDomain", "allowedEmails" ], "default": { "enabled": false, "realm": null, "frontendDomain": null, "keycloakDomain": null, "clientId": null, "clientSecret": null, "allowedEmails": [] } }, "generic": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "withPkce": { "type": "boolean" }, "authorizationUrl": { "type": "string", "nullable": true }, "tokenUrl": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "withPkce", "authorizationUrl", "tokenUrl", "frontendDomain", "allowedEmails" ], "default": { "enabled": false, "frontendDomain": null, "tokenUrl": null, "clientId": null, "clientSecret": null, "withPkce": false, "authorizationUrl": null, "allowedEmails": [] } }, "telegram": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedIds": { "type": "array", "items": { "type": "string" } }, "frontendDomain": { "type": "string", "nullable": true } }, "required": [ "enabled", "clientId", "clientSecret", "allowedIds", "frontendDomain" ], "default": { "enabled": false, "clientId": null, "clientSecret": null, "allowedIds": [], "frontendDomain": null } } }, "required": [ "github", "pocketid", "yandex" ], "nullable": true }, "passwordSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "nullable": true }, "brandingSettings": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "format": "uri", "nullable": true } }, "required": [ "title", "logoUrl" ], "nullable": true } }, "required": [ "passkeySettings", "oauth2Settings", "passwordSettings", "brandingSettings" ] } }, "required": [ "response" ] }, "UpdateRemnawaveSettingsRequestDto": { "type": "object", "properties": { "passkeySettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "rpId": { "type": "string", "nullable": true }, "origin": { "type": "string", "nullable": true } }, "required": [ "enabled", "rpId", "origin" ] }, "oauth2Settings": { "type": "object", "properties": { "github": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "pocketid": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "plainDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "plainDomain", "allowedEmails" ] }, "yandex": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "keycloak": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "realm": { "type": "string", "nullable": true }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "keycloakDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "realm", "clientId", "clientSecret", "frontendDomain", "keycloakDomain", "allowedEmails" ], "default": { "enabled": false, "realm": null, "frontendDomain": null, "keycloakDomain": null, "clientId": null, "clientSecret": null, "allowedEmails": [] } }, "generic": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "withPkce": { "type": "boolean" }, "authorizationUrl": { "type": "string", "nullable": true }, "tokenUrl": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "withPkce", "authorizationUrl", "tokenUrl", "frontendDomain", "allowedEmails" ], "default": { "enabled": false, "frontendDomain": null, "tokenUrl": null, "clientId": null, "clientSecret": null, "withPkce": false, "authorizationUrl": null, "allowedEmails": [] } }, "telegram": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedIds": { "type": "array", "items": { "type": "string" } }, "frontendDomain": { "type": "string", "nullable": true } }, "required": [ "enabled", "clientId", "clientSecret", "allowedIds", "frontendDomain" ], "default": { "enabled": false, "clientId": null, "clientSecret": null, "allowedIds": [], "frontendDomain": null } } }, "required": [ "github", "pocketid", "yandex" ] }, "passwordSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ] }, "brandingSettings": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "format": "uri", "nullable": true } }, "required": [ "title", "logoUrl" ] } } }, "UpdateRemnawaveSettingsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "passkeySettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "rpId": { "type": "string", "nullable": true }, "origin": { "type": "string", "nullable": true } }, "required": [ "enabled", "rpId", "origin" ], "nullable": true }, "oauth2Settings": { "type": "object", "properties": { "github": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "pocketid": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "plainDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "plainDomain", "allowedEmails" ] }, "yandex": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "allowedEmails" ] }, "keycloak": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "realm": { "type": "string", "nullable": true }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "keycloakDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "realm", "clientId", "clientSecret", "frontendDomain", "keycloakDomain", "allowedEmails" ], "default": { "enabled": false, "realm": null, "frontendDomain": null, "keycloakDomain": null, "clientId": null, "clientSecret": null, "allowedEmails": [] } }, "generic": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "withPkce": { "type": "boolean" }, "authorizationUrl": { "type": "string", "nullable": true }, "tokenUrl": { "type": "string", "nullable": true }, "frontendDomain": { "type": "string", "nullable": true }, "allowedEmails": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "clientId", "clientSecret", "withPkce", "authorizationUrl", "tokenUrl", "frontendDomain", "allowedEmails" ], "default": { "enabled": false, "frontendDomain": null, "tokenUrl": null, "clientId": null, "clientSecret": null, "withPkce": false, "authorizationUrl": null, "allowedEmails": [] } }, "telegram": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "clientId": { "type": "string", "nullable": true }, "clientSecret": { "type": "string", "nullable": true }, "allowedIds": { "type": "array", "items": { "type": "string" } }, "frontendDomain": { "type": "string", "nullable": true } }, "required": [ "enabled", "clientId", "clientSecret", "allowedIds", "frontendDomain" ], "default": { "enabled": false, "clientId": null, "clientSecret": null, "allowedIds": [], "frontendDomain": null } } }, "required": [ "github", "pocketid", "yandex" ], "nullable": true }, "passwordSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "nullable": true }, "brandingSettings": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "format": "uri", "nullable": true } }, "required": [ "title", "logoUrl" ], "nullable": true } }, "required": [ "passkeySettings", "oauth2Settings", "passwordSettings", "brandingSettings" ] } }, "required": [ "response" ] }, "GetPasskeyRegistrationOptionsResponseDto": { "type": "object", "properties": { "response": {} }, "required": [ "response" ] }, "VerifyPasskeyRegistrationRequestDto": { "type": "object", "properties": { "response": {} }, "required": [ "response" ] }, "VerifyPasskeyRegistrationResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "verified": { "type": "boolean" } }, "required": [ "verified" ] } }, "required": [ "response" ] }, "GetAllPasskeysResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "passkeys": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "createdAt": { "description": "Created date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "lastUsedAt": { "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" } }, "required": [ "id", "name", "createdAt", "lastUsedAt" ] } } }, "required": [ "passkeys" ] } }, "required": [ "response" ] }, "DeletePasskeyRequestDto": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ] }, "DeletePasskeyResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "passkeys": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "createdAt": { "description": "Created date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "lastUsedAt": { "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" } }, "required": [ "id", "name", "createdAt", "lastUsedAt" ] } } }, "required": [ "passkeys" ] } }, "required": [ "response" ] }, "UpdatePasskeyRequestDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" } }, "required": [ "id", "name" ] }, "UpdatePasskeyResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "passkeys": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "createdAt": { "description": "Created date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "lastUsedAt": { "description": "Last used date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" } }, "required": [ "id", "name", "createdAt", "lastUsedAt" ] } } }, "required": [ "passkeys" ] } }, "required": [ "response" ] }, "LoginRequestDto": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string" } }, "required": [ "username", "password" ] }, "LoginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "accessToken": { "type": "string" } }, "required": [ "accessToken" ] } }, "required": [ "response" ] }, "RegisterRequestDto": { "type": "object", "properties": { "username": { "type": "string" }, "password": { "type": "string", "minLength": 24, "pattern": "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{24,}$" } }, "required": [ "username", "password" ] }, "RegisterResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "accessToken": { "type": "string" } }, "required": [ "accessToken" ] } }, "required": [ "response" ] }, "GetStatusResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isLoginAllowed": { "type": "boolean" }, "isRegisterAllowed": { "type": "boolean" }, "authentication": { "type": "object", "properties": { "passkey": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ] }, "oauth2": { "type": "object", "properties": { "providers": { "type": "object", "additionalProperties": { "type": "boolean" } } }, "required": [ "providers" ] }, "password": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ] } }, "required": [ "passkey", "oauth2", "password" ], "nullable": true }, "branding": { "type": "object", "properties": { "title": { "type": "string", "nullable": true }, "logoUrl": { "type": "string", "nullable": true } }, "required": [ "title", "logoUrl" ] } }, "required": [ "isLoginAllowed", "isRegisterAllowed", "authentication", "branding" ] } }, "required": [ "response" ] }, "OAuth2AuthorizeRequestDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "telegram", "github", "pocketid", "yandex", "keycloak", "generic" ], "x-enumNames": [ "TELEGRAM", "GITHUB", "POCKETID", "YANDEX", "KEYCLOAK", "GENERIC" ] } }, "required": [ "provider" ] }, "OAuth2AuthorizeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "authorizationUrl": { "type": "string", "format": "uri", "nullable": true } }, "required": [ "authorizationUrl" ] } }, "required": [ "response" ] }, "OAuth2CallbackRequestDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "telegram", "github", "pocketid", "yandex", "keycloak", "generic" ], "x-enumNames": [ "TELEGRAM", "GITHUB", "POCKETID", "YANDEX", "KEYCLOAK", "GENERIC" ] }, "code": { "type": "string" }, "state": { "type": "string" } }, "required": [ "provider", "code", "state" ] }, "OAuth2CallbackResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "accessToken": { "type": "string" } }, "required": [ "accessToken" ] } }, "required": [ "response" ] }, "GetPasskeyAuthenticationOptionsResponseDto": { "type": "object", "properties": { "response": {} }, "required": [ "response" ] }, "VerifyPasskeyAuthenticationRequestDto": { "type": "object", "properties": { "response": {} }, "required": [ "response" ] }, "VerifyPasskeyAuthenticationResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "accessToken": { "type": "string" } }, "required": [ "accessToken" ] } }, "required": [ "response" ] }, "GetSubscriptionPageConfigsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "configs": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "config" ] } } }, "required": [ "total", "configs" ] } }, "required": [ "response" ] }, "GetSubscriptionPageConfigResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {} }, "required": [ "uuid", "viewPosition", "name", "config" ] } }, "required": [ "response" ] }, "UpdateSubscriptionPageConfigRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "config": {} }, "required": [ "uuid" ] }, "UpdateSubscriptionPageConfigResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {} }, "required": [ "uuid", "viewPosition", "name", "config" ] } }, "required": [ "response" ] }, "DeleteSubscriptionPageConfigResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "CreateSubscriptionPageConfigRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" } }, "required": [ "name" ] }, "CreateSubscriptionPageConfigResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "config" ] } }, "required": [ "response" ] }, "ReorderSubscriptionPageConfigsRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderSubscriptionPageConfigsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "configs": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "config" ] } } }, "required": [ "total", "configs" ] } }, "required": [ "response" ] }, "CloneSubscriptionPageConfigRequestDto": { "type": "object", "properties": { "cloneFromUuid": { "type": "string", "format": "uuid" } }, "required": [ "cloneFromUuid" ] }, "CloneSubscriptionPageConfigResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {} }, "required": [ "uuid", "viewPosition", "name", "config" ] } }, "required": [ "response" ] }, "CreateUserRequestDto": { "type": "object", "properties": { "username": { "description": "Unique username for the user. Required. Must be 3-36 characters long and contain only letters, numbers, underscores and dashes.", "type": "string", "pattern": "^[a-zA-Z0-9_-]+$", "maxLength": 36, "minLength": 3 }, "status": { "description": "Optional. User account status. Defaults to ACTIVE.", "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "shortUuid": { "description": "Optional. Short UUID identifier for the user.", "type": "string" }, "trojanPassword": { "description": "Optional. Password for Trojan protocol. Must be 8-32 characters.", "type": "string", "minLength": 8, "maxLength": 32 }, "vlessUuid": { "description": "Optional. UUID for VLESS protocol. Must be a valid UUID format.", "type": "string", "format": "uuid" }, "ssPassword": { "description": "Optional. Password for Shadowsocks protocol. Must be 8-32 characters.", "type": "string", "minLength": 8, "maxLength": 32 }, "trafficLimitBytes": { "description": "Optional. Traffic limit in bytes. Set to 0 for unlimited traffic.", "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "description": "Account expiration date. Required. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "createdAt": { "description": "Optional. Account creation date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "lastTrafficResetAt": { "description": "Optional. Date of last traffic reset. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "description": { "description": "Optional. Additional notes or description for the user account.", "type": "string" }, "tag": { "description": "Optional. User tag for categorization. Max 16 characters, uppercase letters, numbers and underscores only.", "type": "string", "pattern": "^[A-Z0-9_]+$", "maxLength": 16, "nullable": true }, "telegramId": { "description": "Optional. Telegram user ID for notifications. Must be an integer.", "type": "integer", "nullable": true }, "email": { "description": "Optional. User email address. Must be a valid email format.", "type": "string", "format": "email", "nullable": true }, "hwidDeviceLimit": { "description": "Optional. Maximum number of hardware devices allowed. Must be a positive integer.", "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "activeInternalSquads": { "description": "Optional. Array of UUIDs representing enabled internal squads.", "type": "array", "items": { "type": "string", "format": "uuid" } }, "uuid": { "description": "Optional. Pass UUID to create user with specific UUID, otherwise it will be generated automatically.", "type": "string", "format": "uuid" }, "externalSquadUuid": { "description": "Optional. External squad UUID.", "type": "string", "format": "uuid", "nullable": true } }, "required": [ "username", "expireAt" ] }, "CreateUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "UpdateUserRequestDto": { "type": "object", "properties": { "username": { "description": "Username of the user", "type": "string" }, "uuid": { "description": "UUID of the user. UUID has higher priority than username, so if both are provided, username will be ignored.", "type": "string", "format": "uuid" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED" ] }, "trafficLimitBytes": { "description": "Traffic limit in bytes. 0 - unlimited", "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "description": "Expiration date: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "pattern": "^[A-Z0-9_]+$", "maxLength": 16, "nullable": true }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "nullable": true }, "activeInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "externalSquadUuid": { "description": "Optional. External squad UUID.", "type": "string", "format": "uuid", "nullable": true } } }, "UpdateUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "DeleteUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "GetAllUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "total": { "type": "number" } }, "required": [ "users", "total" ] } }, "required": [ "response" ] }, "GetAllTagsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "tags": { "type": "array", "items": { "type": "string" } } }, "required": [ "tags" ] } }, "required": [ "response" ] }, "GetUserAccessibleNodesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" }, "activeNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeName": { "type": "string" }, "countryCode": { "type": "string" }, "configProfileUuid": { "type": "string", "format": "uuid" }, "configProfileName": { "type": "string" }, "activeSquads": { "type": "array", "items": { "type": "object", "properties": { "squadName": { "type": "string" }, "activeInbounds": { "type": "array", "items": { "type": "string" } } }, "required": [ "squadName", "activeInbounds" ] } } }, "required": [ "uuid", "nodeName", "countryCode", "configProfileUuid", "configProfileName", "activeSquads" ] } } }, "required": [ "userUuid", "activeNodes" ] } }, "required": [ "response" ] }, "GetUserSubscriptionRequestHistoryResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "records": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "userUuid": { "type": "string", "format": "uuid" }, "requestAt": { "type": "string", "format": "date-time" }, "requestIp": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true } }, "required": [ "id", "userUuid", "requestAt", "requestIp", "userAgent" ] } } }, "required": [ "total", "records" ] } }, "required": [ "response" ] }, "GetUserByShortUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "GetUserByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "GetUserByUsernameResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "GetUserByIdResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "GetUserByTelegramIdResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } } }, "required": [ "response" ] }, "GetUserByEmailResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } } }, "required": [ "response" ] }, "GetUserByTagResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } } }, "required": [ "response" ] }, "RevokeUserSubscriptionBodyDto": { "type": "object", "properties": { "revokeOnlyPasswords": { "description": "Optional. If true, only passwords will be revoked, without changing the short UUID (Subscription URL).", "type": "boolean", "default": false }, "shortUuid": { "description": "Optional. If not provided, a new short UUID will be generated by Remnawave. Please note that it is strongly recommended to allow Remnawave to generate the short UUID.", "type": "string", "minLength": 6, "maxLength": 48 } } }, "RevokeUserSubscriptionResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "DisableUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "EnableUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "ResetUserTrafficResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] } }, "required": [ "response" ] }, "ResolveUserRequestBodyDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" } } }, "ResolveUserResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "id": { "type": "number" }, "shortUuid": { "type": "string" } }, "required": [ "uuid", "username", "id", "shortUuid" ] } }, "required": [ "response" ] }, "BulkDeleteUsersByStatusRequestDto": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" } } }, "BulkDeleteUsersByStatusResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkDeleteUsersRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkDeleteUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkRevokeUsersSubscriptionRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkRevokeUsersSubscriptionResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkResetTrafficUsersRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkResetTrafficUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkUpdateUsersRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } }, "fields": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "description": "Traffic limit in bytes. 0 - unlimited", "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "trafficLimitStrategy": { "description": "Traffic limit reset strategy", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] }, "expireAt": { "description": "Expiration date: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "description": { "type": "string", "nullable": true }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "tag": { "type": "string", "pattern": "^[A-Z0-9_]+$", "maxLength": 16, "nullable": true }, "hwidDeviceLimit": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "nullable": true }, "externalSquadUuid": { "description": "Optional. External squad UUID.", "type": "string", "format": "uuid", "nullable": true } } } }, "required": [ "uuids", "fields" ] }, "BulkUpdateUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkUpdateUsersSquadsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } }, "activeInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids", "activeInternalSquads" ] }, "BulkUpdateUsersSquadsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkExtendExpirationDateRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "maxItems": 500, "items": { "type": "string", "format": "uuid" } }, "extendDays": { "type": "integer", "minimum": 1, "exclusiveMinimum": false, "maximum": 9999, "exclusiveMaximum": false } }, "required": [ "uuids", "extendDays" ] }, "BulkExtendExpirationDateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "affectedRows": { "type": "number" } }, "required": [ "affectedRows" ] } }, "required": [ "response" ] }, "BulkAllUpdateUsersRequestDto": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "description": "Traffic limit in bytes. 0 - unlimited", "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "trafficLimitStrategy": { "description": "Traffic limit reset strategy", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] }, "expireAt": { "description": "Expiration date: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" }, "description": { "type": "string", "nullable": true }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "tag": { "type": "string", "pattern": "^[A-Z0-9_]+$", "maxLength": 16, "nullable": true }, "hwidDeviceLimit": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "nullable": true } } }, "BulkAllUpdateUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "BulkAllResetTrafficUsersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "BulkAllExtendExpirationDateRequestDto": { "type": "object", "properties": { "extendDays": { "type": "integer", "minimum": 1, "exclusiveMinimum": false } }, "required": [ "extendDays" ] }, "BulkAllExtendExpirationDateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "GetSubscriptionInfoResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isFound": { "type": "boolean" }, "user": { "type": "object", "properties": { "shortUuid": { "type": "string" }, "daysLeft": { "type": "number" }, "trafficUsed": { "type": "string" }, "trafficLimit": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "trafficUsedBytes": { "type": "string" }, "trafficLimitBytes": { "type": "string" }, "lifetimeTrafficUsedBytes": { "type": "string" }, "username": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "isActive": { "type": "boolean" }, "userStatus": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ] }, "trafficLimitStrategy": { "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] } }, "required": [ "shortUuid", "daysLeft", "trafficUsed", "trafficLimit", "lifetimeTrafficUsed", "trafficUsedBytes", "trafficLimitBytes", "lifetimeTrafficUsedBytes", "username", "expiresAt", "isActive", "userStatus", "trafficLimitStrategy" ] }, "links": { "type": "array", "items": { "type": "string" } }, "ssConfLinks": { "type": "object", "additionalProperties": { "type": "string" } }, "subscriptionUrl": { "type": "string" } }, "required": [ "isFound", "user", "links", "ssConfLinks", "subscriptionUrl" ] } }, "required": [ "response" ] }, "GetAllSubscriptionsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "subscriptions": { "type": "array", "items": { "type": "object", "properties": { "isFound": { "type": "boolean" }, "user": { "type": "object", "properties": { "shortUuid": { "type": "string" }, "daysLeft": { "type": "number" }, "trafficUsed": { "type": "string" }, "trafficLimit": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "trafficUsedBytes": { "type": "string" }, "trafficLimitBytes": { "type": "string" }, "lifetimeTrafficUsedBytes": { "type": "string" }, "username": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "isActive": { "type": "boolean" }, "userStatus": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ] }, "trafficLimitStrategy": { "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] } }, "required": [ "shortUuid", "daysLeft", "trafficUsed", "trafficLimit", "lifetimeTrafficUsed", "trafficUsedBytes", "trafficLimitBytes", "lifetimeTrafficUsedBytes", "username", "expiresAt", "isActive", "userStatus", "trafficLimitStrategy" ] }, "links": { "type": "array", "items": { "type": "string" } }, "ssConfLinks": { "type": "object", "additionalProperties": { "type": "string" } }, "subscriptionUrl": { "type": "string" } }, "required": [ "isFound", "user", "links", "ssConfLinks", "subscriptionUrl" ] } }, "total": { "type": "number" } }, "required": [ "subscriptions", "total" ] } }, "required": [ "response" ] }, "GetSubscriptionByUsernameResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isFound": { "type": "boolean" }, "user": { "type": "object", "properties": { "shortUuid": { "type": "string" }, "daysLeft": { "type": "number" }, "trafficUsed": { "type": "string" }, "trafficLimit": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "trafficUsedBytes": { "type": "string" }, "trafficLimitBytes": { "type": "string" }, "lifetimeTrafficUsedBytes": { "type": "string" }, "username": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "isActive": { "type": "boolean" }, "userStatus": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ] }, "trafficLimitStrategy": { "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] } }, "required": [ "shortUuid", "daysLeft", "trafficUsed", "trafficLimit", "lifetimeTrafficUsed", "trafficUsedBytes", "trafficLimitBytes", "lifetimeTrafficUsedBytes", "username", "expiresAt", "isActive", "userStatus", "trafficLimitStrategy" ] }, "links": { "type": "array", "items": { "type": "string" } }, "ssConfLinks": { "type": "object", "additionalProperties": { "type": "string" } }, "subscriptionUrl": { "type": "string" } }, "required": [ "isFound", "user", "links", "ssConfLinks", "subscriptionUrl" ] } }, "required": [ "response" ] }, "GetSubscriptionByShortUuidProtectedResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isFound": { "type": "boolean" }, "user": { "type": "object", "properties": { "shortUuid": { "type": "string" }, "daysLeft": { "type": "number" }, "trafficUsed": { "type": "string" }, "trafficLimit": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "trafficUsedBytes": { "type": "string" }, "trafficLimitBytes": { "type": "string" }, "lifetimeTrafficUsedBytes": { "type": "string" }, "username": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "isActive": { "type": "boolean" }, "userStatus": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ] }, "trafficLimitStrategy": { "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] } }, "required": [ "shortUuid", "daysLeft", "trafficUsed", "trafficLimit", "lifetimeTrafficUsed", "trafficUsedBytes", "trafficLimitBytes", "lifetimeTrafficUsedBytes", "username", "expiresAt", "isActive", "userStatus", "trafficLimitStrategy" ] }, "links": { "type": "array", "items": { "type": "string" } }, "ssConfLinks": { "type": "object", "additionalProperties": { "type": "string" } }, "subscriptionUrl": { "type": "string" } }, "required": [ "isFound", "user", "links", "ssConfLinks", "subscriptionUrl" ] } }, "required": [ "response" ] }, "GetSubscriptionByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isFound": { "type": "boolean" }, "user": { "type": "object", "properties": { "shortUuid": { "type": "string" }, "daysLeft": { "type": "number" }, "trafficUsed": { "type": "string" }, "trafficLimit": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "trafficUsedBytes": { "type": "string" }, "trafficLimitBytes": { "type": "string" }, "lifetimeTrafficUsedBytes": { "type": "string" }, "username": { "type": "string" }, "expiresAt": { "type": "string", "format": "date-time" }, "isActive": { "type": "boolean" }, "userStatus": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ] }, "trafficLimitStrategy": { "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ] } }, "required": [ "shortUuid", "daysLeft", "trafficUsed", "trafficLimit", "lifetimeTrafficUsed", "trafficUsedBytes", "trafficLimitBytes", "lifetimeTrafficUsedBytes", "username", "expiresAt", "isActive", "userStatus", "trafficLimitStrategy" ] }, "links": { "type": "array", "items": { "type": "string" } }, "ssConfLinks": { "type": "object", "additionalProperties": { "type": "string" } }, "subscriptionUrl": { "type": "string" } }, "required": [ "isFound", "user", "links", "ssConfLinks", "subscriptionUrl" ] } }, "required": [ "response" ] }, "GetRawSubscriptionByShortUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "user": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] }, "convertedUserInfo": { "type": "object", "properties": { "daysLeft": { "type": "number" }, "trafficLimit": { "type": "string" }, "trafficUsed": { "type": "string" }, "lifetimeTrafficUsed": { "type": "string" }, "isHwidLimited": { "type": "boolean" } }, "required": [ "daysLeft", "trafficLimit", "trafficUsed", "lifetimeTrafficUsed", "isHwidLimited" ] }, "headers": { "type": "object", "additionalProperties": { "type": "string" } }, "resolvedProxyConfigs": { "type": "array", "items": { "type": "object", "properties": { "finalRemark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "minimum": 0, "exclusiveMinimum": true }, "protocol": { "type": "string", "enum": [ "vless", "trojan", "shadowsocks", "hysteria" ] }, "protocolOptions": { "oneOf": [ { "type": "object", "properties": { "encryption": { "type": "string" }, "id": { "type": "string" }, "flow": { "type": "string", "enum": [ "", "xtls-rprx-vision", "xtls-rprx-vision-udp443" ] } }, "required": [ "encryption", "id", "flow" ] }, { "type": "object", "properties": { "password": { "type": "string" } }, "required": [ "password" ] }, { "type": "object", "properties": { "method": { "type": "string" }, "password": { "type": "string" }, "uot": { "type": "boolean" }, "uotVersion": { "type": "integer" } }, "required": [ "method", "password", "uot", "uotVersion" ] }, { "type": "object", "properties": { "version": { "type": "integer" } }, "required": [ "version" ] } ] }, "transport": { "type": "string", "enum": [ "tcp", "xhttp", "ws", "httpupgrade", "grpc", "kcp", "hysteria" ] }, "transportOptions": { "oneOf": [ { "type": "object", "properties": { "header": { "oneOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "none" ] } }, "required": [ "type" ] }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "http" ] }, "request": { "type": "object", "properties": { "version": { "type": "string" }, "method": { "type": "string" }, "path": { "type": "array", "items": { "type": "string" } }, "headers": { "type": "object", "additionalProperties": {} } } }, "response": { "type": "object", "properties": { "version": { "type": "string" }, "status": { "type": "string" }, "reason": { "type": "string" }, "headers": { "type": "object", "additionalProperties": {} } } } }, "required": [ "type" ] } ], "nullable": true } }, "required": [ "header" ] }, { "type": "object", "properties": { "path": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "mode": { "type": "string", "enum": [ "auto", "packet-up", "stream-up", "stream-one" ] }, "extra": { "type": "object", "additionalProperties": {}, "nullable": true } }, "required": [ "path", "host", "mode", "extra" ] }, { "type": "object", "properties": { "path": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "heartbeatPeriod": { "type": "number", "nullable": true } }, "required": [ "path", "host", "headers", "heartbeatPeriod" ] }, { "type": "object", "properties": { "path": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true } }, "required": [ "path", "host", "headers" ] }, { "type": "object", "properties": { "authority": { "type": "string", "nullable": true }, "serviceName": { "type": "string", "nullable": true }, "multiMode": { "type": "boolean" } }, "required": [ "authority", "serviceName", "multiMode" ] }, { "type": "object", "properties": { "clientMtu": { "type": "integer" }, "tti": { "type": "integer" }, "congestion": { "type": "boolean" } }, "required": [ "clientMtu", "tti", "congestion" ] }, { "type": "object", "properties": { "version": { "type": "integer" }, "auth": { "type": "string" } }, "required": [ "version", "auth" ] } ] }, "security": { "type": "string", "enum": [ "tls", "reality", "none" ] }, "securityOptions": { "oneOf": [ { "type": "object", "properties": { "allowInsecure": { "type": "boolean" }, "alpn": { "type": "string", "nullable": true }, "enableSessionResumption": { "type": "boolean" }, "fingerprint": { "type": "string", "nullable": true }, "serverName": { "type": "string", "nullable": true }, "echConfigList": { "type": "string", "nullable": true }, "echForceQuery": { "type": "string", "nullable": true } }, "required": [ "allowInsecure", "alpn", "enableSessionResumption", "fingerprint", "serverName", "echConfigList", "echForceQuery" ] }, { "type": "object", "properties": { "fingerprint": { "type": "string" }, "publicKey": { "type": "string" }, "shortId": { "type": "string", "nullable": true }, "serverName": { "type": "string" }, "spiderX": { "type": "string", "nullable": true }, "mldsa65Verify": { "type": "string", "nullable": true } }, "required": [ "fingerprint", "publicKey", "shortId", "serverName", "spiderX", "mldsa65Verify" ] } ] }, "streamOverrides": { "type": "object", "properties": { "finalMask": { "nullable": true }, "sockopt": { "nullable": true } }, "required": [ "finalMask", "sockopt" ] }, "mux": { "nullable": true }, "clientOverrides": { "type": "object", "properties": { "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "serverDescription": { "type": "string", "nullable": true }, "xrayJsonTemplate": { "nullable": true } }, "required": [ "shuffleHost", "mihomoX25519", "serverDescription", "xrayJsonTemplate" ] }, "metadata": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string", "nullable": true }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "inboundTag": { "type": "string" }, "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true }, "isDisabled": { "type": "boolean" }, "isHidden": { "type": "boolean" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "vlessRouteId": { "type": "integer", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "tag", "excludeFromSubscriptionTypes", "inboundTag", "configProfileUuid", "configProfileInboundUuid", "isDisabled", "isHidden", "viewPosition", "remark", "vlessRouteId", "rawInbound" ] } }, "required": [ "finalRemark", "address", "port", "protocol", "protocolOptions", "transport", "transportOptions", "security", "streamOverrides", "mux", "clientOverrides", "metadata" ] } } }, "required": [ "user", "convertedUserInfo", "headers", "resolvedProxyConfigs" ] } }, "required": [ "response" ] }, "GetSubpageConfigByShortUuidRequestBodyDto": { "type": "object", "properties": { "requestHeaders": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "requestHeaders" ] }, "GetSubpageConfigByShortUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "webpageAllowed": { "type": "boolean" } }, "required": [ "subpageConfigUuid", "webpageAllowed" ] } }, "required": [ "response" ] }, "GetConnectionKeysByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "enabledKeys": { "type": "array", "items": { "type": "string" } }, "hiddenKeys": { "type": "array", "items": { "type": "string" } }, "disabledKeys": { "type": "array", "items": { "type": "string" } } }, "required": [ "enabledKeys", "hiddenKeys", "disabledKeys" ] } }, "required": [ "response" ] }, "GetTemplatesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "templates": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] }, "templateJson": { "nullable": true }, "encodedTemplateYaml": { "type": "string", "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "templateType", "templateJson", "encodedTemplateYaml" ] } } }, "required": [ "total", "templates" ] } }, "required": [ "response" ] }, "GetTemplateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] }, "templateJson": { "nullable": true }, "encodedTemplateYaml": { "type": "string", "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "templateType", "templateJson", "encodedTemplateYaml" ] } }, "required": [ "response" ] }, "UpdateTemplateRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 255, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "templateJson": { "type": "object", "properties": {} }, "encodedTemplateYaml": { "type": "string" } }, "required": [ "uuid" ] }, "UpdateTemplateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] }, "templateJson": { "nullable": true }, "encodedTemplateYaml": { "type": "string", "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "templateType", "templateJson", "encodedTemplateYaml" ] } }, "required": [ "response" ] }, "DeleteSubscriptionTemplateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "CreateSubscriptionTemplateRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 255, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "name", "templateType" ] }, "CreateSubscriptionTemplateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] }, "templateJson": { "nullable": true }, "encodedTemplateYaml": { "type": "string", "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "templateType", "templateJson", "encodedTemplateYaml" ] } }, "required": [ "response" ] }, "ReorderSubscriptionTemplatesRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderSubscriptionTemplatesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "templates": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] }, "templateJson": { "nullable": true }, "encodedTemplateYaml": { "type": "string", "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "templateType", "templateJson", "encodedTemplateYaml" ] } } }, "required": [ "total", "templates" ] } }, "required": [ "response" ] }, "CreateApiTokenRequestDto": { "type": "object", "properties": { "tokenName": { "type": "string" } }, "required": [ "tokenName" ] }, "CreateApiTokenResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "token": { "type": "string" }, "uuid": { "type": "string" } }, "required": [ "token", "uuid" ] } }, "required": [ "response" ] }, "DeleteApiTokenResponseDto": { "type": "object", "properties": { "response": { "type": "boolean" } }, "required": [ "response" ] }, "FindAllApiTokensResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "apiKeys": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "token": { "type": "string" }, "tokenName": { "type": "string" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "token", "tokenName", "createdAt", "updatedAt" ] } }, "docs": { "type": "object", "properties": { "isDocsEnabled": { "type": "boolean" }, "scalarPath": { "type": "string", "nullable": true }, "swaggerPath": { "type": "string", "nullable": true } }, "required": [ "isDocsEnabled", "scalarPath", "swaggerPath" ] } }, "required": [ "apiKeys", "docs" ] } }, "required": [ "response" ] }, "GetConfigProfilesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "configProfiles": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } } }, "required": [ "total", "configProfiles" ] } }, "required": [ "response" ] }, "GetAllInboundsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true }, "activeSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound", "activeSquads" ] } } }, "required": [ "total", "inbounds" ] } }, "required": [ "response" ] }, "GetInboundsByProfileUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true }, "activeSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound", "activeSquads" ] } } }, "required": [ "total", "inbounds" ] } }, "required": [ "response" ] }, "GetConfigProfileByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "GetComputedConfigProfileByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "DeleteConfigProfileResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "CreateConfigProfileRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "config": { "type": "object", "properties": {} } }, "required": [ "name", "config" ] }, "CreateConfigProfileResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "UpdateConfigProfileRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "config": { "type": "object", "properties": {} } }, "required": [ "uuid" ] }, "UpdateConfigProfileResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "ReorderConfigProfilesRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderConfigProfilesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "configProfiles": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "config": {}, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "config", "inbounds", "nodes", "createdAt", "updatedAt" ] } } }, "required": [ "total", "configProfiles" ] } }, "required": [ "response" ] }, "GetSnippetsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "snippets": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "snippet": {} }, "required": [ "name", "snippet" ] } } }, "required": [ "total", "snippets" ] } }, "required": [ "response" ] }, "DeleteSnippetRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 255, "pattern": "^[A-Za-z0-9_\\s-]+$" } }, "required": [ "name" ] }, "DeleteSnippetResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "snippets": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "snippet": {} }, "required": [ "name", "snippet" ] } } }, "required": [ "total", "snippets" ] } }, "required": [ "response" ] }, "CreateSnippetRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 255, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "snippet": { "type": "array", "items": { "type": "object", "properties": {} } } }, "required": [ "name", "snippet" ] }, "CreateSnippetResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "snippets": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "snippet": {} }, "required": [ "name", "snippet" ] } } }, "required": [ "total", "snippets" ] } }, "required": [ "response" ] }, "UpdateSnippetRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 255, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "snippet": { "type": "array", "items": { "type": "object", "properties": {} } } }, "required": [ "name", "snippet" ] }, "UpdateSnippetResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "snippets": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "snippet": {} }, "required": [ "name", "snippet" ] } } }, "required": [ "total", "snippets" ] } }, "required": [ "response" ] }, "GetInternalSquadsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "internalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" }, "inboundsCount": { "type": "number" } }, "required": [ "membersCount", "inboundsCount" ] }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "inbounds", "createdAt", "updatedAt" ] } } }, "required": [ "total", "internalSquads" ] } }, "required": [ "response" ] }, "GetInternalSquadByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" }, "inboundsCount": { "type": "number" } }, "required": [ "membersCount", "inboundsCount" ] }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "inbounds", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "CreateInternalSquadRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "inbounds": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "name", "inbounds" ] }, "CreateInternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" }, "inboundsCount": { "type": "number" } }, "required": [ "membersCount", "inboundsCount" ] }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "inbounds", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "GetInternalSquadAccessibleNodesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "squadUuid": { "type": "string", "format": "uuid" }, "accessibleNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeName": { "type": "string" }, "countryCode": { "type": "string" }, "configProfileUuid": { "type": "string", "format": "uuid" }, "configProfileName": { "type": "string" }, "activeInbounds": { "type": "array", "items": { "type": "string" } } }, "required": [ "uuid", "nodeName", "countryCode", "configProfileUuid", "configProfileName", "activeInbounds" ] } } }, "required": [ "squadUuid", "accessibleNodes" ] } }, "required": [ "response" ] }, "UpdateInternalSquadRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "inbounds": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuid" ] }, "UpdateInternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" }, "inboundsCount": { "type": "number" } }, "required": [ "membersCount", "inboundsCount" ] }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "inbounds", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "DeleteInternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "AddUsersToInternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "RemoveUsersFromInternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "ReorderInternalSquadsRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderInternalSquadsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "internalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" }, "inboundsCount": { "type": "number" } }, "required": [ "membersCount", "inboundsCount" ] }, "inbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "inbounds", "createdAt", "updatedAt" ] } } }, "required": [ "total", "internalSquads" ] } }, "required": [ "response" ] }, "GetExternalSquadsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "externalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" } }, "required": [ "membersCount" ] }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } }, "nullable": true }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } }, "nullable": true }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "templates", "subscriptionSettings", "hostOverrides", "responseHeaders", "hwidSettings", "customRemarks", "subpageConfigUuid", "createdAt", "updatedAt" ] } } }, "required": [ "total", "externalSquads" ] } }, "required": [ "response" ] }, "GetExternalSquadByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" } }, "required": [ "membersCount" ] }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } }, "nullable": true }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } }, "nullable": true }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "templates", "subscriptionSettings", "hostOverrides", "responseHeaders", "hwidSettings", "customRemarks", "subpageConfigUuid", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "CreateExternalSquadRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" } }, "required": [ "name" ] }, "CreateExternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" } }, "required": [ "membersCount" ] }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } }, "nullable": true }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } }, "nullable": true }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "templates", "subscriptionSettings", "hostOverrides", "responseHeaders", "hwidSettings", "customRemarks", "subpageConfigUuid", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "UpdateExternalSquadRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } } }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } } }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "uuid" ] }, "UpdateExternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" } }, "required": [ "membersCount" ] }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } }, "nullable": true }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } }, "nullable": true }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "templates", "subscriptionSettings", "hostOverrides", "responseHeaders", "hwidSettings", "customRemarks", "subpageConfigUuid", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "DeleteExternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "AddUsersToExternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "RemoveUsersFromExternalSquadResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "ReorderExternalSquadsRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderExternalSquadsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "externalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "info": { "type": "object", "properties": { "membersCount": { "type": "number" } }, "required": [ "membersCount" ] }, "templates": { "type": "array", "items": { "type": "object", "properties": { "templateUuid": { "type": "string", "format": "uuid" }, "templateType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } }, "required": [ "templateUuid", "templateType" ] } }, "subscriptionSettings": { "type": "object", "properties": { "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "randomizeHosts": { "type": "boolean" } }, "nullable": true }, "hostOverrides": { "type": "object", "properties": { "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true } }, "nullable": true }, "responseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ], "nullable": true }, "subpageConfigUuid": { "type": "string", "format": "uuid", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "viewPosition", "name", "info", "templates", "subscriptionSettings", "hostOverrides", "responseHeaders", "hwidSettings", "customRemarks", "subpageConfigUuid", "createdAt", "updatedAt" ] } } }, "required": [ "total", "externalSquads" ] } }, "required": [ "response" ] }, "GetPubKeyResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "pubKey": { "type": "string" } }, "required": [ "pubKey" ] } }, "required": [ "response" ] }, "GetAllNodesTagsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "tags": { "type": "array", "items": { "type": "string" } } }, "required": [ "tags" ] } }, "required": [ "response" ] }, "CreateNodeRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 3, "maxLength": 30 }, "address": { "type": "string", "minLength": 2 }, "port": { "type": "integer", "minimum": 1, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false }, "isTrafficTrackingActive": { "type": "boolean", "default": false }, "trafficLimitBytes": { "type": "integer", "minimum": 0, "exclusiveMinimum": false }, "notifyPercent": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 100, "exclusiveMaximum": false }, "trafficResetDay": { "type": "integer", "minimum": 1, "exclusiveMinimum": false, "maximum": 31, "exclusiveMaximum": false }, "countryCode": { "type": "string", "maxLength": 2, "default": "XX" }, "consumptionMultiplier": { "type": "number", "minimum": 0, "exclusiveMinimum": false, "maximum": 100, "exclusiveMaximum": false }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid" }, "activeInbounds": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "tags": { "type": "array", "maxItems": 10, "items": { "type": "string", "pattern": "^[A-Z0-9_:]+$", "maxLength": 36 } }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "name", "address", "configProfile" ] }, "CreateNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "response" ] }, "GetAllNodesResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } } }, "required": [ "response" ] }, "GetOneNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "response" ] }, "EnableNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "response" ] }, "DisableNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "response" ] }, "DeleteNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "UpdateNodeRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 3, "maxLength": 30 }, "address": { "type": "string", "minLength": 2 }, "port": { "type": "number", "minimum": 1, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficLimitBytes": { "type": "number", "minimum": 0, "exclusiveMinimum": false }, "notifyPercent": { "type": "number", "minimum": 0, "exclusiveMinimum": false, "maximum": 100, "exclusiveMaximum": false }, "trafficResetDay": { "type": "number", "minimum": 1, "exclusiveMinimum": false, "maximum": 31, "exclusiveMaximum": false }, "countryCode": { "type": "string", "maxLength": 2 }, "consumptionMultiplier": { "type": "number", "minimum": 0, "exclusiveMinimum": false, "maximum": 100, "exclusiveMaximum": false }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid" }, "activeInbounds": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "tags": { "type": "array", "maxItems": 10, "items": { "type": "string", "pattern": "^[A-Z0-9_:]+$", "maxLength": 36 } }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "uuid" ] }, "UpdateNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "response" ] }, "RestartNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "ResetNodeTrafficResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "RestartAllNodesRequestBodyDto": { "type": "object", "properties": { "forceRestart": { "type": "boolean" } } }, "RestartAllNodesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "ReorderNodeRequestDto": { "type": "object", "properties": { "nodes": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "nodes" ] }, "ReorderNodeResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } } }, "required": [ "response" ] }, "ProfileModificationRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid" }, "activeInbounds": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] } }, "required": [ "uuids", "configProfile" ] }, "ProfileModificationResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "BulkNodesActionsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } }, "action": { "type": "string", "enum": [ "ENABLE", "DISABLE", "RESTART", "RESET_TRAFFIC" ], "x-enumNames": [ "ENABLE", "DISABLE", "RESTART", "RESET_TRAFFIC" ] } }, "required": [ "uuids", "action" ] }, "BulkNodesActionsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "BulkNodesUpdateRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } }, "fields": { "type": "object", "properties": { "countryCode": { "type": "string", "maxLength": 2 }, "consumptionMultiplier": { "type": "number", "minimum": 0, "exclusiveMinimum": false, "maximum": 100, "exclusiveMaximum": false }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "tags": { "type": "array", "maxItems": 10, "items": { "type": "string", "pattern": "^[A-Z0-9_:]+$", "maxLength": 36 } }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true } } } }, "required": [ "uuids", "fields" ] }, "BulkNodesUpdateResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "GetTorrentBlockerReportsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "userId": { "type": "number" }, "nodeId": { "type": "number" }, "user": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "username": { "type": "string" } }, "required": [ "uuid", "username" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "report": { "type": "object", "properties": { "actionReport": { "type": "object", "properties": { "blocked": { "type": "boolean" }, "ip": { "type": "string" }, "blockDuration": { "type": "number" }, "willUnblockAt": { "type": "string", "format": "date-time" }, "userId": { "type": "string" }, "processedAt": { "type": "string", "format": "date-time" } }, "required": [ "blocked", "ip", "blockDuration", "willUnblockAt", "userId", "processedAt" ] }, "xrayReport": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "level": { "type": "number", "nullable": true }, "protocol": { "type": "string", "nullable": true }, "network": { "type": "string" }, "source": { "type": "string", "nullable": true }, "destination": { "type": "string" }, "routeTarget": { "type": "string", "nullable": true }, "originalTarget": { "type": "string", "nullable": true }, "inboundTag": { "type": "string", "nullable": true }, "inboundName": { "type": "string", "nullable": true }, "inboundLocal": { "type": "string", "nullable": true }, "outboundTag": { "type": "string", "nullable": true }, "ts": { "type": "number" } }, "required": [ "email", "level", "protocol", "network", "source", "destination", "routeTarget", "originalTarget", "inboundTag", "inboundName", "inboundLocal", "outboundTag", "ts" ] } }, "required": [ "actionReport", "xrayReport" ] }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "userId", "nodeId", "user", "node", "report", "createdAt" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "GetTorrentBlockerReportsStatsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "stats": { "type": "object", "properties": { "distinctNodes": { "type": "number" }, "distinctUsers": { "type": "number" }, "totalReports": { "type": "number" }, "reportsLast24Hours": { "type": "number" } }, "required": [ "distinctNodes", "distinctUsers", "totalReports", "reportsLast24Hours" ] }, "topUsers": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "color": { "type": "string" }, "username": { "type": "string" }, "total": { "type": "number" } }, "required": [ "uuid", "color", "username", "total" ] } }, "topNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "countryCode": { "type": "string" }, "color": { "type": "string" }, "name": { "type": "string" }, "total": { "type": "number" } }, "required": [ "uuid", "countryCode", "color", "name", "total" ] } } }, "required": [ "stats", "topUsers", "topNodes" ] } }, "required": [ "response" ] }, "TruncateTorrentBlockerReportsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "userId": { "type": "number" }, "nodeId": { "type": "number" }, "user": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "username": { "type": "string" } }, "required": [ "uuid", "username" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "report": { "type": "object", "properties": { "actionReport": { "type": "object", "properties": { "blocked": { "type": "boolean" }, "ip": { "type": "string" }, "blockDuration": { "type": "number" }, "willUnblockAt": { "type": "string", "format": "date-time" }, "userId": { "type": "string" }, "processedAt": { "type": "string", "format": "date-time" } }, "required": [ "blocked", "ip", "blockDuration", "willUnblockAt", "userId", "processedAt" ] }, "xrayReport": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "level": { "type": "number", "nullable": true }, "protocol": { "type": "string", "nullable": true }, "network": { "type": "string" }, "source": { "type": "string", "nullable": true }, "destination": { "type": "string" }, "routeTarget": { "type": "string", "nullable": true }, "originalTarget": { "type": "string", "nullable": true }, "inboundTag": { "type": "string", "nullable": true }, "inboundName": { "type": "string", "nullable": true }, "inboundLocal": { "type": "string", "nullable": true }, "outboundTag": { "type": "string", "nullable": true }, "ts": { "type": "number" } }, "required": [ "email", "level", "protocol", "network", "source", "destination", "routeTarget", "originalTarget", "inboundTag", "inboundName", "inboundLocal", "outboundTag", "ts" ] } }, "required": [ "actionReport", "xrayReport" ] }, "createdAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "userId", "nodeId", "user", "node", "report", "createdAt" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "GetNodePluginsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "nodePlugins": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } } }, "required": [ "total", "nodePlugins" ] } }, "required": [ "response" ] }, "GetNodePluginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": {} }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } }, "required": [ "response" ] }, "UpdateNodePluginRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" }, "pluginConfig": {} }, "required": [ "uuid" ] }, "UpdateNodePluginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": {} }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } }, "required": [ "response" ] }, "DeleteNodePluginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "CreateNodePluginRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30, "pattern": "^[A-Za-z0-9_\\s-]+$" } }, "required": [ "name" ] }, "CreateNodePluginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } }, "required": [ "response" ] }, "ReorderNodePluginsRequestDto": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "items" ] }, "ReorderNodePluginsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "nodePlugins": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": { "nullable": true } }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } } }, "required": [ "total", "nodePlugins" ] } }, "required": [ "response" ] }, "CloneNodePluginRequestDto": { "type": "object", "properties": { "cloneFromUuid": { "type": "string", "format": "uuid" } }, "required": [ "cloneFromUuid" ] }, "CloneNodePluginResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "name": { "type": "string" }, "pluginConfig": {} }, "required": [ "uuid", "viewPosition", "name", "pluginConfig" ] } }, "required": [ "response" ] }, "PluginExecutorRequestDto": { "type": "object", "properties": { "command": { "oneOf": [ { "description": "Block IPs", "type": "object", "properties": { "command": { "type": "string", "enum": [ "blockIps" ] }, "ips": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "ip": { "type": "string" }, "timeout": { "type": "number" } }, "required": [ "ip", "timeout" ] } } }, "required": [ "command", "ips" ] }, { "description": "Unblock IPs", "type": "object", "properties": { "command": { "type": "string", "enum": [ "unblockIps" ] }, "ips": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "command", "ips" ] }, { "description": "Recreate tables", "type": "object", "properties": { "command": { "type": "string", "enum": [ "recreateTables" ] } }, "required": [ "command" ] } ] }, "targetNodes": { "oneOf": [ { "description": "Target all connected nodes", "type": "object", "properties": { "target": { "type": "string", "enum": [ "allNodes" ] } }, "required": [ "target" ] }, { "description": "Target specific nodes", "type": "object", "properties": { "target": { "type": "string", "enum": [ "specificNodes" ] }, "nodeUuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } } }, "required": [ "target", "nodeUuids" ] } ] } }, "required": [ "command", "targetNodes" ] }, "PluginExecutorResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "GetAllHostTagsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "tags": { "type": "array", "items": { "type": "string" } } }, "required": [ "tags" ] } }, "required": [ "response" ] }, "CreateHostRequestDto": { "type": "object", "properties": { "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid" }, "configProfileInboundUuid": { "type": "string", "format": "uuid" } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "remark": { "type": "string", "minLength": 1, "maxLength": 40 }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string" }, "sni": { "type": "string" }, "host": { "type": "string" }, "alpn": { "type": "string", "enum": [ "h3", "h2", "http/1.1", "h2,http/1.1", "h3,h2,http/1.1", "h3,h2" ], "x-enumNames": [ "H3", "H2", "HTTP_1_1", "H_COMBINED", "H3_H2_H1_COMBINED", "H3_H2_COMBINED" ], "nullable": true }, "fingerprint": { "type": "string", "enum": [ "chrome", "firefox", "safari", "ios", "android", "edge", "qq", "random", "randomized" ], "x-enumNames": [ "CHROME", "FIREFOX", "SAFARI", "IOS", "ANDROID", "EDGE", "QQ", "RANDOM", "RANDOMIZED" ], "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", "type": "string", "pattern": "^[A-Z0-9_:]+$", "maxLength": 32, "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "allowInsecure": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "shuffleHost": { "type": "boolean", "default": false }, "mihomoX25519": { "type": "boolean", "default": false }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "description": "Optional. Internal squads from which the host will be excluded.", "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "description": "Optional. Subscription types from which the host will be excluded from.", "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "inbound", "remark", "address", "port" ] }, "CreateHostResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } }, "required": [ "response" ] }, "UpdateHostRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid" }, "configProfileInboundUuid": { "type": "string", "format": "uuid" } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "remark": { "type": "string", "maxLength": 40 }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string" }, "sni": { "type": "string" }, "host": { "type": "string" }, "alpn": { "type": "string", "enum": [ "h3", "h2", "http/1.1", "h2,http/1.1", "h3,h2,http/1.1", "h3,h2" ], "x-enumNames": [ "H3", "H2", "HTTP_1_1", "H_COMBINED", "H3_H2_H1_COMBINED", "H3_H2_COMBINED" ], "nullable": true }, "fingerprint": { "type": "string", "enum": [ "chrome", "firefox", "safari", "ios", "android", "edge", "qq", "random", "randomized" ], "x-enumNames": [ "CHROME", "FIREFOX", "SAFARI", "IOS", "ANDROID", "EDGE", "QQ", "RANDOM", "RANDOMIZED" ], "nullable": true }, "isDisabled": { "type": "boolean" }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ] }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "description": "Optional. Host tag for categorization. Max 32 characters, uppercase letters, numbers, underscores and colons are allowed.", "type": "string", "pattern": "^[A-Z0-9_:]+$", "maxLength": 32, "nullable": true }, "isHidden": { "type": "boolean" }, "overrideSniFromAddress": { "type": "boolean" }, "keepSniBlank": { "type": "boolean" }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean" }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "description": "Optional. Internal squads from which the host will be excluded.", "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "description": "Optional. Subscription types from which the host will be excluded from.", "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid" ] }, "UpdateHostResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } }, "required": [ "response" ] }, "GetAllHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "GetOneHostResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } }, "required": [ "response" ] }, "ReorderHostRequestDto": { "type": "object", "properties": { "hosts": { "type": "array", "items": { "type": "object", "properties": { "viewPosition": { "type": "integer" }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "viewPosition", "uuid" ] } } }, "required": [ "hosts" ] }, "ReorderHostResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isUpdated": { "type": "boolean" } }, "required": [ "isUpdated" ] } }, "required": [ "response" ] }, "DeleteHostResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "BulkDeleteHostsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkDeleteHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "BulkDisableHostsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkDisableHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "BulkEnableHostsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, "required": [ "uuids" ] }, "BulkEnableHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "SetInboundToManyHostsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "configProfileUuid": { "type": "string", "format": "uuid" }, "configProfileInboundUuid": { "type": "string", "format": "uuid" } }, "required": [ "uuids", "configProfileUuid", "configProfileInboundUuid" ] }, "SetInboundToManyHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "SetPortToManyHostsRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "port": { "type": "integer", "minimum": 1, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false } }, "required": [ "uuids", "port" ] }, "SetPortToManyHostsResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "viewPosition": { "type": "integer" }, "remark": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer" }, "path": { "type": "string", "nullable": true }, "sni": { "type": "string", "nullable": true }, "host": { "type": "string", "nullable": true }, "alpn": { "type": "string", "nullable": true }, "fingerprint": { "type": "string", "nullable": true }, "isDisabled": { "type": "boolean", "default": false }, "securityLayer": { "type": "string", "enum": [ "DEFAULT", "TLS", "NONE" ], "x-enumNames": [ "DEFAULT", "TLS", "NONE" ], "default": "DEFAULT" }, "xHttpExtraParams": { "nullable": true }, "muxParams": { "nullable": true }, "sockoptParams": { "nullable": true }, "finalMask": { "nullable": true }, "inbound": { "type": "object", "properties": { "configProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "configProfileInboundUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "configProfileUuid", "configProfileInboundUuid" ] }, "serverDescription": { "type": "string", "maxLength": 30, "nullable": true }, "tag": { "type": "string", "nullable": true }, "isHidden": { "type": "boolean", "default": false }, "overrideSniFromAddress": { "type": "boolean", "default": false }, "keepSniBlank": { "type": "boolean", "default": false }, "vlessRouteId": { "type": "integer", "minimum": 0, "exclusiveMinimum": false, "maximum": 65535, "exclusiveMaximum": false, "nullable": true }, "allowInsecure": { "type": "boolean", "default": false }, "shuffleHost": { "type": "boolean" }, "mihomoX25519": { "type": "boolean" }, "nodes": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "xrayJsonTemplateUuid": { "type": "string", "format": "uuid", "nullable": true }, "excludedInternalSquads": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "excludeFromSubscriptionTypes": { "type": "array", "items": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX" ] } } }, "required": [ "uuid", "viewPosition", "remark", "address", "port", "path", "sni", "host", "alpn", "fingerprint", "xHttpExtraParams", "muxParams", "sockoptParams", "finalMask", "inbound", "serverDescription", "tag", "vlessRouteId", "shuffleHost", "mihomoX25519", "nodes", "xrayJsonTemplateUuid", "excludedInternalSquads" ] } } }, "required": [ "response" ] }, "GetLegacyStatsNodesUsersUsageResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" }, "username": { "type": "string" }, "nodeUuid": { "type": "string", "format": "uuid" }, "total": { "type": "number" }, "date": { "type": "string" } }, "required": [ "userUuid", "username", "nodeUuid", "total", "date" ] } } }, "required": [ "response" ] }, "GetStatsNodeUsersUsageResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "categories": { "type": "array", "items": { "type": "string" } }, "sparklineData": { "type": "array", "items": { "type": "number" } }, "topUsers": { "type": "array", "items": { "type": "object", "properties": { "color": { "type": "string" }, "username": { "type": "string" }, "total": { "type": "number" } }, "required": [ "color", "username", "total" ] } } }, "required": [ "categories", "sparklineData", "topUsers" ] } }, "required": [ "response" ] }, "GetLegacyStatsUserUsageResponseDto": { "type": "object", "properties": { "response": { "type": "array", "items": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "nodeName": { "type": "string" }, "countryCode": { "type": "string" }, "total": { "type": "number" }, "date": { "type": "string" } }, "required": [ "userUuid", "nodeUuid", "nodeName", "countryCode", "total", "date" ] } } }, "required": [ "response" ] }, "GetStatsUserUsageResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "categories": { "type": "array", "items": { "type": "string" } }, "sparklineData": { "type": "array", "items": { "type": "number" } }, "topNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "color": { "type": "string" }, "name": { "type": "string" }, "countryCode": { "type": "string" }, "total": { "type": "number" } }, "required": [ "uuid", "color", "name", "countryCode", "total" ] } }, "series": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "color": { "type": "string" }, "countryCode": { "type": "string" }, "total": { "type": "number" }, "data": { "type": "array", "items": { "type": "number" } } }, "required": [ "uuid", "name", "color", "countryCode", "total", "data" ] } } }, "required": [ "categories", "sparklineData", "topNodes", "series" ] } }, "required": [ "response" ] }, "GetAllHwidDevicesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } }, "total": { "type": "number" } }, "required": [ "devices", "total" ] } }, "required": [ "response" ] }, "CreateUserHwidDeviceRequestDto": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string" }, "osVersion": { "type": "string" }, "deviceModel": { "type": "string" }, "userAgent": { "type": "string" } }, "required": [ "hwid", "userUuid" ] }, "CreateUserHwidDeviceResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "devices": { "type": "array", "items": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } } }, "required": [ "total", "devices" ] } }, "required": [ "response" ] }, "DeleteUserHwidDeviceRequestDto": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" }, "hwid": { "type": "string" } }, "required": [ "userUuid", "hwid" ] }, "DeleteUserHwidDeviceResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "devices": { "type": "array", "items": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } } }, "required": [ "total", "devices" ] } }, "required": [ "response" ] }, "DeleteAllUserHwidDevicesRequestDto": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" } }, "required": [ "userUuid" ] }, "DeleteAllUserHwidDevicesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "devices": { "type": "array", "items": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } } }, "required": [ "total", "devices" ] } }, "required": [ "response" ] }, "GetHwidDevicesStatsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "byPlatform": { "type": "array", "items": { "type": "object", "properties": { "platform": { "type": "string" }, "count": { "type": "number" } }, "required": [ "platform", "count" ] } }, "byApp": { "type": "array", "items": { "type": "object", "properties": { "app": { "type": "string" }, "count": { "type": "number" } }, "required": [ "app", "count" ] } }, "stats": { "type": "object", "properties": { "totalUniqueDevices": { "type": "number" }, "totalHwidDevices": { "type": "number" }, "averageHwidDevicesPerUser": { "type": "number" } }, "required": [ "totalUniqueDevices", "totalHwidDevices", "averageHwidDevicesPerUser" ] } }, "required": [ "byPlatform", "byApp", "stats" ] } }, "required": [ "response" ] }, "GetTopUsersByHwidDevicesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "userUuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "username": { "type": "string" }, "devicesCount": { "type": "number" } }, "required": [ "userUuid", "id", "username", "devicesCount" ] } }, "total": { "type": "number" } }, "required": [ "users", "total" ] } }, "required": [ "response" ] }, "GetUserHwidDevicesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "devices": { "type": "array", "items": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } } }, "required": [ "total", "devices" ] } }, "required": [ "response" ] }, "GetStatsNodesUsageResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "categories": { "type": "array", "items": { "type": "string" } }, "sparklineData": { "type": "array", "items": { "type": "number" } }, "topNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "color": { "type": "string" }, "name": { "type": "string" }, "countryCode": { "type": "string" }, "total": { "type": "number" } }, "required": [ "uuid", "color", "name", "countryCode", "total" ] } }, "series": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "color": { "type": "string" }, "countryCode": { "type": "string" }, "total": { "type": "number" }, "data": { "type": "array", "items": { "type": "number" } } }, "required": [ "uuid", "name", "color", "countryCode", "total", "data" ] } } }, "required": [ "categories", "sparklineData", "topNodes", "series" ] } }, "required": [ "response" ] }, "GetInfraProvidersResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "total": { "type": "number" }, "providers": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "billingHistory": { "type": "object", "properties": { "totalAmount": { "type": "number" }, "totalBills": { "type": "number" } }, "required": [ "totalAmount", "totalBills" ] }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "nodeUuid", "name", "countryCode" ] } } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt", "billingHistory", "billingNodes" ] } } }, "required": [ "total", "providers" ] } }, "required": [ "response" ] }, "GetInfraProviderByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "billingHistory": { "type": "object", "properties": { "totalAmount": { "type": "number" }, "totalBills": { "type": "number" } }, "required": [ "totalAmount", "totalBills" ] }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "nodeUuid", "name", "countryCode" ] } } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt", "billingHistory", "billingNodes" ] } }, "required": [ "response" ] }, "DeleteInfraProviderByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isDeleted": { "type": "boolean" } }, "required": [ "isDeleted" ] } }, "required": [ "response" ] }, "CreateInfraProviderRequestDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 2, "maxLength": 30 }, "faviconLink": { "type": "string", "format": "uri" }, "loginUrl": { "type": "string", "format": "uri" } }, "required": [ "name" ] }, "CreateInfraProviderResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "billingHistory": { "type": "object", "properties": { "totalAmount": { "type": "number" }, "totalBills": { "type": "number" } }, "required": [ "totalAmount", "totalBills" ] }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "nodeUuid", "name", "countryCode" ] } } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt", "billingHistory", "billingNodes" ] } }, "required": [ "response" ] }, "UpdateInfraProviderRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string", "minLength": 2, "maxLength": 30 }, "faviconLink": { "type": "string", "format": "uri", "nullable": true }, "loginUrl": { "type": "string", "format": "uri", "nullable": true } }, "required": [ "uuid" ] }, "UpdateInfraProviderResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "billingHistory": { "type": "object", "properties": { "totalAmount": { "type": "number" }, "totalBills": { "type": "number" } }, "required": [ "totalAmount", "totalBills" ] }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "nodeUuid", "name", "countryCode" ] } } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt", "billingHistory", "billingNodes" ] } }, "required": [ "response" ] }, "CreateInfraBillingHistoryRecordRequestDto": { "type": "object", "properties": { "providerUuid": { "type": "string", "format": "uuid" }, "amount": { "type": "number", "minimum": 0, "exclusiveMinimum": false }, "billedAt": { "description": "Billing date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" } }, "required": [ "providerUuid", "amount", "billedAt" ] }, "CreateInfraBillingHistoryRecordResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "amount": { "type": "number" }, "billedAt": { "type": "string", "format": "date-time" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "faviconLink" ] } }, "required": [ "uuid", "providerUuid", "amount", "billedAt", "provider" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "GetInfraBillingHistoryRecordsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "amount": { "type": "number" }, "billedAt": { "type": "string", "format": "date-time" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "faviconLink" ] } }, "required": [ "uuid", "providerUuid", "amount", "billedAt", "provider" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "DeleteInfraBillingHistoryRecordByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "amount": { "type": "number" }, "billedAt": { "type": "string", "format": "date-time" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "faviconLink" ] } }, "required": [ "uuid", "providerUuid", "amount", "billedAt", "provider" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "GetInfraBillingNodesResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "totalBillingNodes": { "type": "number" }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "loginUrl": { "type": "string", "nullable": true }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "loginUrl", "faviconLink" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "nextBillingAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "nodeUuid", "providerUuid", "provider", "node", "nextBillingAt", "createdAt", "updatedAt" ] } }, "availableBillingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "totalAvailableBillingNodes": { "type": "number" }, "stats": { "type": "object", "properties": { "upcomingNodesCount": { "type": "number" }, "currentMonthPayments": { "type": "number" }, "totalSpent": { "type": "number" } }, "required": [ "upcomingNodesCount", "currentMonthPayments", "totalSpent" ] } }, "required": [ "totalBillingNodes", "billingNodes", "availableBillingNodes", "totalAvailableBillingNodes", "stats" ] } }, "required": [ "response" ] }, "UpdateInfraBillingNodeRequestDto": { "type": "object", "properties": { "uuids": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "nextBillingAt": { "type": "string", "format": "date-time" } }, "required": [ "uuids", "nextBillingAt" ] }, "UpdateInfraBillingNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "totalBillingNodes": { "type": "number" }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "loginUrl": { "type": "string", "nullable": true }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "loginUrl", "faviconLink" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "nextBillingAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "nodeUuid", "providerUuid", "provider", "node", "nextBillingAt", "createdAt", "updatedAt" ] } }, "availableBillingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "totalAvailableBillingNodes": { "type": "number" }, "stats": { "type": "object", "properties": { "upcomingNodesCount": { "type": "number" }, "currentMonthPayments": { "type": "number" }, "totalSpent": { "type": "number" } }, "required": [ "upcomingNodesCount", "currentMonthPayments", "totalSpent" ] } }, "required": [ "totalBillingNodes", "billingNodes", "availableBillingNodes", "totalAvailableBillingNodes", "stats" ] } }, "required": [ "response" ] }, "CreateInfraBillingNodeRequestDto": { "type": "object", "properties": { "providerUuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "nextBillingAt": { "description": "Next billing date. Format: 2025-01-17T15:38:45.065Z", "type": "string", "format": "date-time" } }, "required": [ "providerUuid", "nodeUuid" ] }, "CreateInfraBillingNodeResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "totalBillingNodes": { "type": "number" }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "loginUrl": { "type": "string", "nullable": true }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "loginUrl", "faviconLink" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "nextBillingAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "nodeUuid", "providerUuid", "provider", "node", "nextBillingAt", "createdAt", "updatedAt" ] } }, "availableBillingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "totalAvailableBillingNodes": { "type": "number" }, "stats": { "type": "object", "properties": { "upcomingNodesCount": { "type": "number" }, "currentMonthPayments": { "type": "number" }, "totalSpent": { "type": "number" } }, "required": [ "upcomingNodesCount", "currentMonthPayments", "totalSpent" ] } }, "required": [ "totalBillingNodes", "billingNodes", "availableBillingNodes", "totalAvailableBillingNodes", "stats" ] } }, "required": [ "response" ] }, "DeleteInfraBillingNodeByUuidResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "totalBillingNodes": { "type": "number" }, "billingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "nodeUuid": { "type": "string", "format": "uuid" }, "providerUuid": { "type": "string", "format": "uuid" }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "loginUrl": { "type": "string", "nullable": true }, "faviconLink": { "type": "string", "nullable": true } }, "required": [ "uuid", "name", "loginUrl", "faviconLink" ] }, "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] }, "nextBillingAt": { "type": "string", "format": "date-time" }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "nodeUuid", "providerUuid", "provider", "node", "nextBillingAt", "createdAt", "updatedAt" ] } }, "availableBillingNodes": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "countryCode": { "type": "string" } }, "required": [ "uuid", "name", "countryCode" ] } }, "totalAvailableBillingNodes": { "type": "number" }, "stats": { "type": "object", "properties": { "upcomingNodesCount": { "type": "number" }, "currentMonthPayments": { "type": "number" }, "totalSpent": { "type": "number" } }, "required": [ "upcomingNodesCount", "currentMonthPayments", "totalSpent" ] } }, "required": [ "totalBillingNodes", "billingNodes", "availableBillingNodes", "totalAvailableBillingNodes", "stats" ] } }, "required": [ "response" ] }, "GetSubscriptionRequestHistoryResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "records": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number" }, "userUuid": { "type": "string", "format": "uuid" }, "requestIp": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "requestAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "userUuid", "requestIp", "userAgent", "requestAt" ] } }, "total": { "type": "number" } }, "required": [ "records", "total" ] } }, "required": [ "response" ] }, "GetSubscriptionRequestHistoryStatsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "byParsedApp": { "type": "array", "items": { "type": "object", "properties": { "app": { "type": "string" }, "count": { "type": "number" } }, "required": [ "app", "count" ] } }, "hourlyRequestStats": { "type": "array", "items": { "type": "object", "properties": { "dateTime": { "type": "string", "format": "date-time" }, "requestCount": { "type": "number" } }, "required": [ "dateTime", "requestCount" ] } } }, "required": [ "byParsedApp", "hourlyRequestStats" ] } }, "required": [ "response" ] }, "GetMetadataResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "version": { "type": "string" }, "build": { "type": "object", "properties": { "time": { "type": "string" }, "number": { "type": "string" } }, "required": [ "time", "number" ] }, "git": { "type": "object", "properties": { "backend": { "type": "object", "properties": { "commitSha": { "type": "string" }, "branch": { "type": "string" }, "commitUrl": { "type": "string" } }, "required": [ "commitSha", "branch", "commitUrl" ] }, "frontend": { "type": "object", "properties": { "commitSha": { "type": "string" }, "commitUrl": { "type": "string" } }, "required": [ "commitSha", "commitUrl" ] } }, "required": [ "backend", "frontend" ] } }, "required": [ "version", "build", "git" ] } }, "required": [ "response" ] }, "GetStatsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "cpu": { "type": "object", "properties": { "cores": { "type": "number" } }, "required": [ "cores" ] }, "memory": { "type": "object", "properties": { "total": { "type": "number" }, "free": { "type": "number" }, "used": { "type": "number" } }, "required": [ "total", "free", "used" ] }, "uptime": { "type": "number" }, "timestamp": { "type": "number" }, "users": { "type": "object", "properties": { "statusCounts": { "type": "object", "additionalProperties": { "type": "number" } }, "totalUsers": { "type": "number" } }, "required": [ "statusCounts", "totalUsers" ] }, "onlineStats": { "type": "object", "properties": { "lastDay": { "type": "number" }, "lastWeek": { "type": "number" }, "neverOnline": { "type": "number" }, "onlineNow": { "type": "number" } }, "required": [ "lastDay", "lastWeek", "neverOnline", "onlineNow" ] }, "nodes": { "type": "object", "properties": { "totalOnline": { "type": "number" }, "totalBytesLifetime": { "type": "string" } }, "required": [ "totalOnline", "totalBytesLifetime" ] } }, "required": [ "cpu", "memory", "uptime", "timestamp", "users", "onlineStats", "nodes" ] } }, "required": [ "response" ] }, "GetBandwidthStatsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "bandwidthLastTwoDays": { "type": "object", "properties": { "current": { "type": "string" }, "previous": { "type": "string" }, "difference": { "type": "string" } }, "required": [ "current", "previous", "difference" ] }, "bandwidthLastSevenDays": { "type": "object", "properties": { "current": { "type": "string" }, "previous": { "type": "string" }, "difference": { "type": "string" } }, "required": [ "current", "previous", "difference" ] }, "bandwidthLast30Days": { "type": "object", "properties": { "current": { "type": "string" }, "previous": { "type": "string" }, "difference": { "type": "string" } }, "required": [ "current", "previous", "difference" ] }, "bandwidthCalendarMonth": { "type": "object", "properties": { "current": { "type": "string" }, "previous": { "type": "string" }, "difference": { "type": "string" } }, "required": [ "current", "previous", "difference" ] }, "bandwidthCurrentYear": { "type": "object", "properties": { "current": { "type": "string" }, "previous": { "type": "string" }, "difference": { "type": "string" } }, "required": [ "current", "previous", "difference" ] } }, "required": [ "bandwidthLastTwoDays", "bandwidthLastSevenDays", "bandwidthLast30Days", "bandwidthCalendarMonth", "bandwidthCurrentYear" ] } }, "required": [ "response" ] }, "GetNodesStatisticsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "lastSevenDays": { "type": "array", "items": { "type": "object", "properties": { "nodeName": { "type": "string" }, "date": { "type": "string" }, "totalBytes": { "type": "string" } }, "required": [ "nodeName", "date", "totalBytes" ] } } }, "required": [ "lastSevenDays" ] } }, "required": [ "response" ] }, "GetRemnawaveHealthResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "runtimeMetrics": { "type": "array", "items": { "type": "object", "properties": { "rss": { "type": "number" }, "heapUsed": { "type": "number" }, "heapTotal": { "type": "number" }, "external": { "type": "number" }, "arrayBuffers": { "type": "number" }, "eventLoopDelayMs": { "type": "number" }, "eventLoopP99Ms": { "type": "number" }, "activeHandles": { "type": "number" }, "uptime": { "type": "number" }, "pid": { "type": "number" }, "timestamp": { "type": "number" }, "instanceId": { "type": "string" }, "instanceType": { "type": "string" } }, "required": [ "rss", "heapUsed", "heapTotal", "external", "arrayBuffers", "eventLoopDelayMs", "eventLoopP99Ms", "activeHandles", "uptime", "pid", "timestamp", "instanceId", "instanceType" ] } } }, "required": [ "runtimeMetrics" ] } }, "required": [ "response" ] }, "GetNodesMetricsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "nodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string" }, "nodeName": { "type": "string" }, "countryEmoji": { "type": "string" }, "providerName": { "type": "string" }, "usersOnline": { "type": "number" }, "inboundsStats": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string" }, "upload": { "type": "string" }, "download": { "type": "string" } }, "required": [ "tag", "upload", "download" ] } }, "outboundsStats": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string" }, "upload": { "type": "string" }, "download": { "type": "string" } }, "required": [ "tag", "upload", "download" ] } } }, "required": [ "nodeUuid", "nodeName", "countryEmoji", "providerName", "usersOnline", "inboundsStats", "outboundsStats" ] } } }, "required": [ "nodes" ] } }, "required": [ "response" ] }, "GenerateX25519ResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "keypairs": { "type": "array", "items": { "type": "object", "properties": { "publicKey": { "type": "string" }, "privateKey": { "type": "string" } }, "required": [ "publicKey", "privateKey" ] } } }, "required": [ "keypairs" ] } }, "required": [ "response" ] }, "EncryptHappCryptoLinkRequestDto": { "type": "object", "properties": { "linkToEncrypt": { "type": "string", "format": "uri" } }, "required": [ "linkToEncrypt" ] }, "EncryptHappCryptoLinkResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "encryptedLink": { "type": "string" } }, "required": [ "encryptedLink" ] } }, "required": [ "response" ] }, "DebugSrrMatcherRequestDto": { "type": "object", "properties": { "responseRules": { "type": "object", "properties": { "version": { "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", "type": "string", "enum": [ "1" ], "x-enumNames": [ "1" ] }, "settings": { "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", "type": "object", "properties": { "disableSubscriptionAccessByPath": { "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", "type": "boolean" } } }, "rules": { "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", "type": "array", "items": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", "type": "object", "properties": { "name": { "description": "{\"markdownDescription\":\"Name of the response rule.\"}", "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", "type": "string", "minLength": 1, "maxLength": 250 }, "enabled": { "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", "type": "boolean" }, "operator": { "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", "type": "string", "enum": [ "AND", "OR" ], "x-enumNames": [ "AND", "OR" ] }, "conditions": { "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", "type": "object", "properties": { "headerName": { "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "operator": { "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", "type": "string", "enum": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ], "x-enumNames": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ] }, "value": { "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", "type": "string", "minLength": 1, "maxLength": 255 }, "caseSensitive": { "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", "type": "boolean" } }, "required": [ "headerName", "operator", "value", "caseSensitive" ] } }, "responseType": { "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "responseModifications": { "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", "type": "object", "properties": { "headers": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", "type": "object", "properties": { "key": { "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "value": { "description": "{\"markdownDescription\":\"Value of the response header. \"}", "type": "string", "minLength": 1 } }, "required": [ "key", "value" ] } }, "applyHeadersToEnd": { "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", "type": "boolean" }, "subscriptionTemplate": { "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", "type": "string", "minLength": 1 }, "ignoreHostXrayJsonTemplate": { "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", "type": "boolean" }, "ignoreServeJsonAtBaseSubscription": { "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", "type": "boolean" }, "additionalExtendedClientsRegex": { "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "required": [ "name", "enabled", "operator", "conditions", "responseType" ] } } }, "required": [ "version", "rules" ] } }, "required": [ "responseRules" ] }, "DebugSrrMatcherResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "matched": { "type": "boolean" }, "responseType": { "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "matchedRule": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", "type": "object", "properties": { "name": { "description": "{\"markdownDescription\":\"Name of the response rule.\"}", "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", "type": "string", "minLength": 1, "maxLength": 250 }, "enabled": { "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", "type": "boolean" }, "operator": { "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", "type": "string", "enum": [ "AND", "OR" ], "x-enumNames": [ "AND", "OR" ] }, "conditions": { "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", "type": "object", "properties": { "headerName": { "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "operator": { "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", "type": "string", "enum": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ], "x-enumNames": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ] }, "value": { "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", "type": "string", "minLength": 1, "maxLength": 255 }, "caseSensitive": { "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", "type": "boolean" } }, "required": [ "headerName", "operator", "value", "caseSensitive" ] } }, "responseType": { "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "responseModifications": { "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", "type": "object", "properties": { "headers": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", "type": "object", "properties": { "key": { "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "value": { "description": "{\"markdownDescription\":\"Value of the response header. \"}", "type": "string", "minLength": 1 } }, "required": [ "key", "value" ] } }, "applyHeadersToEnd": { "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", "type": "boolean" }, "subscriptionTemplate": { "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", "type": "string", "minLength": 1 }, "ignoreHostXrayJsonTemplate": { "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", "type": "boolean" }, "ignoreServeJsonAtBaseSubscription": { "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", "type": "boolean" }, "additionalExtendedClientsRegex": { "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "required": [ "name", "enabled", "operator", "conditions", "responseType" ], "nullable": true }, "inputHeaders": { "type": "object", "additionalProperties": { "type": "string" } }, "outputHeaders": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "matched", "responseType", "matchedRule", "inputHeaders", "outputHeaders" ] } }, "required": [ "response" ] }, "GetRecapResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "thisMonth": { "type": "object", "properties": { "users": { "type": "number" }, "traffic": { "type": "string" } }, "required": [ "users", "traffic" ] }, "total": { "type": "object", "properties": { "users": { "type": "number" }, "nodes": { "type": "number" }, "traffic": { "type": "string" }, "nodesRam": { "type": "string" }, "nodesCpuCores": { "type": "number" }, "distinctCountries": { "type": "number" } }, "required": [ "users", "nodes", "traffic", "nodesRam", "nodesCpuCores", "distinctCountries" ] }, "version": { "type": "string" }, "initDate": { "type": "string", "format": "date-time" } }, "required": [ "thisMonth", "total", "version", "initDate" ] } }, "required": [ "response" ] }, "GetSubscriptionSettingsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ] }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "customResponseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "randomizeHosts": { "type": "boolean" }, "responseRules": { "type": "object", "properties": { "version": { "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", "type": "string", "enum": [ "1" ], "x-enumNames": [ "1" ] }, "settings": { "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", "type": "object", "properties": { "disableSubscriptionAccessByPath": { "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", "type": "boolean" } } }, "rules": { "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", "type": "array", "items": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", "type": "object", "properties": { "name": { "description": "{\"markdownDescription\":\"Name of the response rule.\"}", "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", "type": "string", "minLength": 1, "maxLength": 250 }, "enabled": { "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", "type": "boolean" }, "operator": { "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", "type": "string", "enum": [ "AND", "OR" ], "x-enumNames": [ "AND", "OR" ] }, "conditions": { "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", "type": "object", "properties": { "headerName": { "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "operator": { "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", "type": "string", "enum": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ], "x-enumNames": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ] }, "value": { "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", "type": "string", "minLength": 1, "maxLength": 255 }, "caseSensitive": { "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", "type": "boolean" } }, "required": [ "headerName", "operator", "value", "caseSensitive" ] } }, "responseType": { "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "responseModifications": { "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", "type": "object", "properties": { "headers": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", "type": "object", "properties": { "key": { "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "value": { "description": "{\"markdownDescription\":\"Value of the response header. \"}", "type": "string", "minLength": 1 } }, "required": [ "key", "value" ] } }, "applyHeadersToEnd": { "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", "type": "boolean" }, "subscriptionTemplate": { "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", "type": "string", "minLength": 1 }, "ignoreHostXrayJsonTemplate": { "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", "type": "boolean" }, "ignoreServeJsonAtBaseSubscription": { "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", "type": "boolean" }, "additionalExtendedClientsRegex": { "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "required": [ "name", "enabled", "operator", "conditions", "responseType" ] } } }, "required": [ "version", "rules" ], "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "profileTitle", "supportLink", "profileUpdateInterval", "isProfileWebpageUrlEnabled", "serveJsonAtBaseSubscription", "isShowCustomRemarks", "customRemarks", "happAnnounce", "happRouting", "customResponseHeaders", "randomizeHosts", "responseRules", "hwidSettings", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "UpdateSubscriptionSettingsRequestDto": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer" }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "happAnnounce": { "type": "string", "maxLength": 200, "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "isShowCustomRemarks": { "type": "boolean" }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ] }, "customResponseHeaders": { "type": "object", "additionalProperties": { "type": "string" } }, "randomizeHosts": { "type": "boolean" }, "responseRules": { "type": "object", "properties": { "version": { "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", "type": "string", "enum": [ "1" ], "x-enumNames": [ "1" ] }, "settings": { "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", "type": "object", "properties": { "disableSubscriptionAccessByPath": { "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", "type": "boolean" } } }, "rules": { "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", "type": "array", "items": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", "type": "object", "properties": { "name": { "description": "{\"markdownDescription\":\"Name of the response rule.\"}", "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", "type": "string", "minLength": 1, "maxLength": 250 }, "enabled": { "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", "type": "boolean" }, "operator": { "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", "type": "string", "enum": [ "AND", "OR" ], "x-enumNames": [ "AND", "OR" ] }, "conditions": { "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", "type": "object", "properties": { "headerName": { "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "operator": { "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", "type": "string", "enum": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ], "x-enumNames": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ] }, "value": { "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", "type": "string", "minLength": 1, "maxLength": 255 }, "caseSensitive": { "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", "type": "boolean" } }, "required": [ "headerName", "operator", "value", "caseSensitive" ] } }, "responseType": { "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "responseModifications": { "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", "type": "object", "properties": { "headers": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", "type": "object", "properties": { "key": { "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "value": { "description": "{\"markdownDescription\":\"Value of the response header. \"}", "type": "string", "minLength": 1 } }, "required": [ "key", "value" ] } }, "applyHeadersToEnd": { "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", "type": "boolean" }, "subscriptionTemplate": { "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", "type": "string", "minLength": 1 }, "ignoreHostXrayJsonTemplate": { "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", "type": "boolean" }, "ignoreServeJsonAtBaseSubscription": { "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", "type": "boolean" }, "additionalExtendedClientsRegex": { "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "required": [ "name", "enabled", "operator", "conditions", "responseType" ] } } }, "required": [ "version", "rules" ] }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ] } }, "required": [ "uuid" ] }, "UpdateSubscriptionSettingsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileTitle": { "type": "string" }, "supportLink": { "type": "string" }, "profileUpdateInterval": { "type": "integer", "minimum": 1, "exclusiveMinimum": false }, "isProfileWebpageUrlEnabled": { "type": "boolean" }, "serveJsonAtBaseSubscription": { "type": "boolean" }, "isShowCustomRemarks": { "type": "boolean" }, "customRemarks": { "type": "object", "properties": { "expiredUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "limitedUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "disabledUsers": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "emptyHosts": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDMaxDevicesExceeded": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "HWIDNotSupported": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "expiredUsers", "limitedUsers", "disabledUsers", "emptyHosts", "HWIDMaxDevicesExceeded", "HWIDNotSupported" ] }, "happAnnounce": { "type": "string", "nullable": true }, "happRouting": { "type": "string", "nullable": true }, "customResponseHeaders": { "type": "object", "additionalProperties": { "type": "string" }, "nullable": true }, "randomizeHosts": { "type": "boolean" }, "responseRules": { "type": "object", "properties": { "version": { "description": "{\"title\":\"Response Rules Config Version\",\"markdownDescription\":\"Version of the **response rules** config. Currently supported version is **1**.\"}", "type": "string", "enum": [ "1" ], "x-enumNames": [ "1" ] }, "settings": { "description": "{\"markdownDescription\":\"Settings for the **response rules** config. Optional.\"}", "type": "object", "properties": { "disableSubscriptionAccessByPath": { "description": "{\"markdownDescription\":\"Usually, a user's subscription may also be available via additional paths such as **/json**, **/stash**, or **/mihomo**. If this flag is set to **true**, access via these additional paths will be disabled.\"}", "type": "boolean" } } }, "rules": { "description": "{\"title\":\"Response Rules\",\"markdownDescription\":\"Array of **response rules**. Rules are evaluated in order and the first rule that matches is applied. If no rule matches, request will be blocked by default.\\n\\n**Example:**\\n```json\\n[\\n {\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n }\\n]\\n```\",\"defaultSnippets\":[]}", "type": "array", "items": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Blank rule\",\"markdownDescription\":\"Simple blank rule with no conditions or modifications.\\n```json\\n{\\n \\\"name\\\": \\\"Blank rule\\\",\\n \\\"description\\\": \\\"Blank rule\\\",\\n \\\"operator\\\": \\\"AND\\\",\\n \\\"enabled\\\": true,\\n \\\"conditions\\\": [],\\n \\\"responseType\\\": \\\"BLOCK\\\",\\n \\\"responseModifications\\\": {\\n \\\"headers\\\": []\\n }\\n}\\n```\",\"body\":{\"name\":\"Blank rule\",\"description\":\"Blank rule\",\"operator\":\"AND\",\"enabled\":true,\"conditions\":[],\"responseType\":\"BLOCK\",\"responseModifications\":{\"headers\":[]}}},{\"label\":\"Examples: Block Legacy Clients\",\"markdownDescription\":\"Block requests from legacy clients\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\",\"body\":{\"name\":\"Block Legacy Clients\",\"description\":\"Block requests from legacy clients\",\"enabled\":true,\"operator\":\"OR\",\"conditions\":[{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"Hiddify\",\"caseSensitive\":true},{\"headerName\":\"user-agent\",\"operator\":\"CONTAINS\",\"value\":\"FoxRay\",\"caseSensitive\":true}],\"responseType\":\"BLOCK\"}}],\"title\":\"Response Rule\",\"markdownDescription\":\"Response rule configuration.\\n\\n**Fields:**\\n- **name**: Name of the response rule.\\n- **description**: Description of the response rule. Optional.\\n- **enabled**: Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\\n- **operator**: Operator to use for combining conditions in the rule.\\n- **conditions**: Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\\n- **responseType**: Type of the response. Determines the type of **response** to be returned when the rule is matched.\\n- **responseModifications**: Response modifications to be applied when the rule is matched. Optional.\\n\\n**Example:**\\n```json\\n{\\n \\\"name\\\": \\\"Block Legacy Clients\\\",\\n \\\"description\\\": \\\"Block requests from legacy clients\\\",\\n \\\"enabled\\\": true,\\n \\\"operator\\\": \\\"OR\\\",\\n \\\"conditions\\\": [\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"Hiddify\\\",\\n \\\"caseSensitive\\\": true\\n },\\n {\\n \\\"headerName\\\": \\\"user-agent\\\",\\n \\\"operator\\\": \\\"CONTAINS\\\",\\n \\\"value\\\": \\\"FoxRay\\\",\\n \\\"caseSensitive\\\": true\\n }\\n ],\\n \\\"responseType\\\": \\\"BLOCK\\\"\\n}\\n```\"}", "type": "object", "properties": { "name": { "description": "{\"markdownDescription\":\"Name of the response rule.\"}", "type": "string", "minLength": 1, "maxLength": 50 }, "description": { "description": "{\"markdownDescription\":\"Description of the response rule. Optional.\"}", "type": "string", "minLength": 1, "maxLength": 250 }, "enabled": { "description": "{\"markdownDescription\":\"Control whether the response rule is enabled or disabled. \\n\\n - `true` the rule will be applied. \\n\\n - `false` the rule will be always ignored.\"}", "type": "boolean" }, "operator": { "description": "{\"markdownDescription\":\"Operator to use for combining conditions in the rule.\"}", "type": "string", "enum": [ "AND", "OR" ], "x-enumNames": [ "AND", "OR" ] }, "conditions": { "description": "{\"markdownDescription\":\"Array of conditions to check against the request headers. Conditions are applied with **operator**. If conditions are empty, the rule will be matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"Condition to check against the **headerName**.\",\"defaultSnippets\":[{\"label\":\"Examples: Check if header contains \\\"text/html\\\"\",\"markdownDescription\":\"Condition to check if **headerName** contains \\\"text/html\\\"\",\"body\":{\"headerName\":\"accept\",\"operator\":\"CONTAINS\",\"value\":\"text/html\",\"caseSensitive\":true}}]}", "type": "object", "properties": { "headerName": { "description": "{\"markdownDescription\":\"**Name** of the HTTP header to check. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "operator": { "description": "{\"errorMessage\":\"Invalid operator. Please select a valid operator.\",\"markdownDescription\":\"Operator to use for comparing the `headerName` with `value`.\",\"markdownEnumDescriptions\":[\"Performs an exact, comparison between the header value and specified string. `string === value`\",\"Ensures the header value does not exactly match the specified string. `string !== value`\",\"Checks if the header value contains the specified string as a substring. `string.includes()`\",\"Verifies the header value does not contain the specified string as a substring. `!string.includes()`\",\"Validates that the header value begins with the specified string. `string.startsWith()`\",\"Validates that the header value does not begin with the specified string. `!string.startsWith()`\",\"Confirms the header value ends with the specified string. `string.endsWith()`\",\"Confirms the header value does not end with the specified string. `!string.endsWith()`\",\"Evaluates if the header value matches the specified regular expression pattern. `regex.test()`\",\"Evaluates if the header value does not match the specified regular expression pattern. `!regex.test()`\"]}", "type": "string", "enum": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ], "x-enumNames": [ "EQUALS", "NOT_EQUALS", "CONTAINS", "NOT_CONTAINS", "STARTS_WITH", "NOT_STARTS_WITH", "ENDS_WITH", "NOT_ENDS_WITH", "REGEX", "NOT_REGEX" ] }, "value": { "description": "{\"markdownDescription\":\"**Value** to check against the **headerName**.\"}", "type": "string", "minLength": 1, "maxLength": 255 }, "caseSensitive": { "description": "{\"markdownDescription\":\"Whether the value is **case sensitive**. \\n\\n - `true`: the value will be compared as is. \\n\\n - `false`: the value will be lowercased **before** comparison.\"}", "type": "boolean" } }, "required": [ "headerName", "operator", "value", "caseSensitive" ] } }, "responseType": { "description": "{\"errorMessage\":\"Invalid response type. Please select a valid response type.\",\"markdownDescription\":\"Type of the response. Determines the type of **response** to be returned when the rule is matched.\",\"markdownEnumDescriptions\":[\"Return **subscription** in XRAY-JSON format. (Using `Xray Json` template)\",\"Return **subscription** in BASE64 encoded string. Compatible with most client application with Xray core.\",\"Return **subscription** in Mihomo format. (Using `Mihomo` template)\",\"Return **subscription** in Stash format. (Using `Stash` template)\",\"Return **subscription** in Clash format. (Using `Clash` template) Useful for client application that use Legacy Clash core.\",\"Return **subscription** in Singbox format. (Using `Singbox` template) Format which is used by Singbox client application.\",\"Return **subscription** as browser format. The same as on `/info` route.\",\"**Drop** request and return `403` status code.\",\"**Drop** request and return `404` status code.\",\"**Drop** request and return `451` status code.\",\"**Drop** the socket connection.\"]}", "type": "string", "enum": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ], "x-enumNames": [ "XRAY_JSON", "XRAY_BASE64", "MIHOMO", "STASH", "CLASH", "SINGBOX", "BROWSER", "BLOCK", "STATUS_CODE_404", "STATUS_CODE_451", "SOCKET_DROP" ] }, "responseModifications": { "description": "{\"examples\":[{\"headers\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Response modifications to be applied when the rule is matched. Optional.\"}", "type": "object", "properties": { "headers": { "description": "{\"defaultSnippets\":[{\"label\":\"Examples: Add custom header\",\"markdownDescription\":\"Add a custom header to the response\",\"body\":[{\"key\":\"X-Custom-Header\",\"value\":\"CustomValue\"}]}],\"markdownDescription\":\"Array of headers to be added when the rule is matched.\"}", "type": "array", "items": { "description": "{\"markdownDescription\":\"**Key** and **value** of the response header will be added to the response.\"}", "type": "object", "properties": { "key": { "description": "{\"markdownDescription\":\"Key of the response header. Must comply with RFC 7230.\"}", "type": "string", "pattern": "^[!#$%&'*+\\-.0-9A-Z^_`a-z|~]+$" }, "value": { "description": "{\"markdownDescription\":\"Value of the response header. \"}", "type": "string", "minLength": 1 } }, "required": [ "key", "value" ] } }, "applyHeadersToEnd": { "description": "{\"markdownDescription\":\"By default, headers are added when forming the response. In some cases, headers set in SRR may be overridden by headers from other parts of the system. If you set this flag to **true**, headers from SRR will be added at the very end, just before the response is sent. In this case, SRR headers may override headers from other sections.\"}", "type": "boolean" }, "subscriptionTemplate": { "description": "{\"markdownDescription\":\"Override the subscription template with the given name. If not provided, the default subscription template will be used. If the template name is not found, the default subscription template for this type will be used. **This modification have higher priority than settings from External Squads.**\"}", "type": "string", "minLength": 1 }, "ignoreHostXrayJsonTemplate": { "description": "{\"markdownDescription\":\"Each Host may have its own Xray Json Template. If you set this flag to **true**, the Xray Json Template defined by the SRR will be used. **The Host's Xray Json Template will be ignored.**\"}", "type": "boolean" }, "ignoreServeJsonAtBaseSubscription": { "description": "{\"markdownDescription\":\"If you set this flag to **true**, the **Serve JSON at Base Subscription** setting will be ignored (set to **false**).\"}", "type": "boolean" }, "additionalExtendedClientsRegex": { "description": "{\"markdownDescription\":\"Additional regex patterns to match extended clients. Matched clients will receive `serverDescription` in the subscription response.\\n\\n**Default Mihomo extended clients:**\\n- `^FlClash ?X/`\\n- `^Flowvy/`\\n- `^prizrak-box/`\\n- `^koala-clash/`\\n\\n**Default Xray extended clients:**\\n- `^Happ/`\\n- `^INCY/`\\n\\n**Example:** `[\\\"^MyClient/\\\", \\\"^CustomApp\\\\\\\\/v2\\\"]`\"}", "type": "array", "items": { "type": "string", "minLength": 1 } } } } }, "required": [ "name", "enabled", "operator", "conditions", "responseType" ] } } }, "required": [ "version", "rules" ], "nullable": true }, "hwidSettings": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "fallbackDeviceLimit": { "type": "number" }, "maxDevicesAnnounce": { "type": "string", "maxLength": 200, "nullable": true } }, "required": [ "enabled", "fallbackDeviceLimit", "maxDevicesAnnounce" ], "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "profileTitle", "supportLink", "profileUpdateInterval", "isProfileWebpageUrlEnabled", "serveJsonAtBaseSubscription", "isShowCustomRemarks", "customRemarks", "happAnnounce", "happRouting", "customResponseHeaders", "randomizeHosts", "responseRules", "hwidSettings", "createdAt", "updatedAt" ] } }, "required": [ "response" ] }, "FetchIpsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "jobId": { "type": "string" } }, "required": [ "jobId" ] } }, "required": [ "response" ] }, "FetchIpsResultResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isCompleted": { "type": "boolean" }, "isFailed": { "type": "boolean" }, "progress": { "type": "object", "properties": { "total": { "type": "number" }, "completed": { "type": "number" }, "percent": { "type": "number" } }, "required": [ "total", "completed", "percent" ] }, "result": { "type": "object", "properties": { "success": { "type": "boolean" }, "userUuid": { "type": "string", "format": "uuid" }, "userId": { "type": "string" }, "nodes": { "type": "array", "items": { "type": "object", "properties": { "nodeUuid": { "type": "string", "format": "uuid" }, "nodeName": { "type": "string" }, "countryCode": { "type": "string" }, "ips": { "type": "array", "items": { "type": "object", "properties": { "ip": { "type": "string" }, "lastSeen": { "type": "string", "format": "date-time" } }, "required": [ "ip", "lastSeen" ] } } }, "required": [ "nodeUuid", "nodeName", "countryCode", "ips" ] } } }, "required": [ "success", "userUuid", "userId", "nodes" ], "nullable": true } }, "required": [ "isCompleted", "isFailed", "progress", "result" ] } }, "required": [ "response" ] }, "DropConnectionsRequestDto": { "type": "object", "properties": { "dropBy": { "oneOf": [ { "description": "Drop by user UUIDs", "type": "object", "properties": { "by": { "type": "string", "enum": [ "userUuids" ] }, "userUuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } } }, "required": [ "by", "userUuids" ] }, { "description": "Drop by IP addresses", "type": "object", "properties": { "by": { "type": "string", "enum": [ "ipAddresses" ] }, "ipAddresses": { "type": "array", "minItems": 1, "items": { "type": "string" } } }, "required": [ "by", "ipAddresses" ] } ] }, "targetNodes": { "oneOf": [ { "description": "Target all connected nodes", "type": "object", "properties": { "target": { "type": "string", "enum": [ "allNodes" ] } }, "required": [ "target" ] }, { "description": "Target specific nodes", "type": "object", "properties": { "target": { "type": "string", "enum": [ "specificNodes" ] }, "nodeUuids": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uuid" } } }, "required": [ "target", "nodeUuids" ] } ] } }, "required": [ "dropBy", "targetNodes" ] }, "DropConnectionsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "eventSent": { "type": "boolean" } }, "required": [ "eventSent" ] } }, "required": [ "response" ] }, "FetchUsersIpsResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "jobId": { "type": "string" } }, "required": [ "jobId" ] } }, "required": [ "response" ] }, "FetchUsersIpsResultResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "isCompleted": { "type": "boolean" }, "isFailed": { "type": "boolean" }, "result": { "type": "object", "properties": { "success": { "type": "boolean" }, "nodeUuid": { "type": "string", "format": "uuid" }, "users": { "type": "array", "items": { "type": "object", "properties": { "userId": { "type": "string" }, "ips": { "type": "array", "items": { "type": "object", "properties": { "ip": { "type": "string" }, "lastSeen": { "type": "string", "format": "date-time" } }, "required": [ "ip", "lastSeen" ] } } }, "required": [ "userId", "ips" ] } } }, "required": [ "success", "nodeUuid", "users" ], "nullable": true } }, "required": [ "isCompleted", "isFailed", "result" ] } }, "required": [ "response" ] }, "GetUserMetadataResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] } }, "required": [ "response" ] }, "UpsertUserMetadataRequestBodyDto": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] }, "UpsertUserMetadataResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] } }, "required": [ "response" ] }, "GetNodeMetadataResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] } }, "required": [ "response" ] }, "UpsertNodeMetadataRequestBodyDto": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] }, "UpsertNodeMetadataResponseDto": { "type": "object", "properties": { "response": { "type": "object", "properties": { "metadata": { "type": "object", "properties": {} } }, "required": [ "metadata" ] } }, "required": [ "response" ] }, "RemnawaveWebhookUserEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "user" ] }, "event": { "type": "string", "enum": [ "user.created", "user.modified", "user.deleted", "user.revoked", "user.disabled", "user.enabled", "user.limited", "user.expired", "user.traffic_reset", "user.expires_in_72_hours", "user.expires_in_48_hours", "user.expires_in_24_hours", "user.expired_24_hours_ago", "user.first_connected", "user.bandwidth_usage_threshold_reached", "user.not_connected" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] }, "meta": { "type": "object", "properties": { "notConnectedAfterHours": { "type": "integer", "nullable": true } }, "nullable": true } }, "required": [ "scope", "event", "timestamp", "data", "meta" ] }, "RemnawaveWebhookUserHwidDevicesEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "user_hwid_devices" ] }, "event": { "type": "string", "enum": [ "user_hwid_devices.added", "user_hwid_devices.deleted" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "user": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] }, "hwidUserDevice": { "type": "object", "properties": { "hwid": { "type": "string" }, "userUuid": { "type": "string", "format": "uuid" }, "platform": { "type": "string", "nullable": true }, "osVersion": { "type": "string", "nullable": true }, "deviceModel": { "type": "string", "nullable": true }, "userAgent": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "hwid", "userUuid", "platform", "osVersion", "deviceModel", "userAgent", "createdAt", "updatedAt" ] } }, "required": [ "user", "hwidUserDevice" ] } }, "required": [ "scope", "event", "timestamp", "data" ] }, "RemnawaveWebhookNodeEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "node" ] }, "event": { "type": "string", "enum": [ "node.created", "node.modified", "node.disabled", "node.enabled", "node.deleted", "node.connection_lost", "node.connection_restored", "node.traffic_notify" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] } }, "required": [ "scope", "event", "timestamp", "data" ] }, "RemnawaveWebhookServiceEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "service" ] }, "event": { "type": "string", "enum": [ "service.panel_started", "service.login_attempt_failed", "service.login_attempt_success", "service.subpage_config_changed" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "loginAttempt": { "type": "object", "properties": { "username": { "type": "string" }, "ip": { "type": "string" }, "userAgent": { "type": "string" }, "description": { "type": "string" }, "password": { "type": "string" } }, "required": [ "username", "ip", "userAgent" ] }, "panelVersion": { "type": "string" }, "subpageConfig": { "type": "object", "properties": { "action": { "type": "string", "enum": [ "CREATED", "UPDATED", "DELETED" ] }, "uuid": { "type": "string", "format": "uuid" } }, "required": [ "action", "uuid" ] } } } }, "required": [ "scope", "event", "timestamp", "data" ] }, "RemnawaveWebhookErrorsEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "errors" ] }, "event": { "type": "string", "enum": [ "errors.bandwidth_usage_threshold_reached_max_notifications" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "description": { "type": "string" } }, "required": [ "description" ] } }, "required": [ "scope", "event", "timestamp", "data" ] }, "RemnawaveWebhookCrmEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "crm" ] }, "event": { "type": "string", "enum": [ "crm.infra_billing_node_payment_in_7_days", "crm.infra_billing_node_payment_in_48hrs", "crm.infra_billing_node_payment_in_24hrs", "crm.infra_billing_node_payment_due_today", "crm.infra_billing_node_payment_overdue_24hrs", "crm.infra_billing_node_payment_overdue_48hrs", "crm.infra_billing_node_payment_overdue_7_days" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "providerName": { "type": "string" }, "nodeName": { "type": "string" }, "nextBillingAt": { "type": "string", "format": "date-time" }, "loginUrl": { "type": "string" } }, "required": [ "providerName", "nodeName", "nextBillingAt", "loginUrl" ] } }, "required": [ "scope", "event", "timestamp", "data" ] }, "RemnawaveWebhookTorrentBlockerEventsDto": { "type": "object", "properties": { "scope": { "type": "string", "enum": [ "torrent_blocker" ] }, "event": { "type": "string", "enum": [ "torrent_blocker.report" ] }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "properties": { "node": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "address": { "type": "string" }, "port": { "type": "integer", "nullable": true }, "isConnected": { "type": "boolean" }, "isDisabled": { "type": "boolean" }, "isConnecting": { "type": "boolean" }, "lastStatusChange": { "type": "string", "format": "date-time", "nullable": true }, "lastStatusMessage": { "type": "string", "nullable": true }, "isTrafficTrackingActive": { "type": "boolean" }, "trafficResetDay": { "type": "integer", "nullable": true }, "trafficLimitBytes": { "type": "number", "nullable": true }, "trafficUsedBytes": { "type": "number", "nullable": true }, "notifyPercent": { "type": "integer", "nullable": true }, "viewPosition": { "type": "integer" }, "countryCode": { "type": "string" }, "consumptionMultiplier": { "type": "number" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "configProfile": { "type": "object", "properties": { "activeConfigProfileUuid": { "type": "string", "format": "uuid", "nullable": true }, "activeInbounds": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "profileUuid": { "type": "string", "format": "uuid" }, "tag": { "type": "string" }, "type": { "type": "string" }, "network": { "type": "string", "nullable": true }, "security": { "type": "string", "nullable": true }, "port": { "type": "number", "nullable": true }, "rawInbound": { "nullable": true } }, "required": [ "uuid", "profileUuid", "tag", "type", "network", "security", "port", "rawInbound" ] } } }, "required": [ "activeConfigProfileUuid", "activeInbounds" ] }, "providerUuid": { "type": "string", "format": "uuid", "nullable": true }, "provider": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "faviconLink": { "type": "string", "nullable": true }, "loginUrl": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "uuid", "name", "faviconLink", "loginUrl", "createdAt", "updatedAt" ], "nullable": true }, "activePluginUuid": { "type": "string", "format": "uuid", "nullable": true }, "system": { "type": "object", "properties": { "info": { "type": "object", "properties": { "arch": { "type": "string" }, "cpus": { "type": "integer" }, "cpuModel": { "type": "string" }, "memoryTotal": { "type": "number" }, "hostname": { "type": "string" }, "platform": { "type": "string" }, "release": { "type": "string" }, "type": { "type": "string" }, "version": { "type": "string" }, "networkInterfaces": { "type": "array", "items": { "type": "string" } } }, "required": [ "arch", "cpus", "cpuModel", "memoryTotal", "hostname", "platform", "release", "type", "version", "networkInterfaces" ] }, "stats": { "type": "object", "properties": { "memoryFree": { "type": "number" }, "memoryUsed": { "type": "number" }, "uptime": { "type": "number" }, "loadAvg": { "type": "array", "items": { "type": "number" } }, "interface": { "type": "object", "properties": { "interface": { "type": "string" }, "rxBytesPerSec": { "type": "number" }, "txBytesPerSec": { "type": "number" }, "rxTotal": { "type": "number" }, "txTotal": { "type": "number" } }, "required": [ "interface", "rxBytesPerSec", "txBytesPerSec", "rxTotal", "txTotal" ], "nullable": true } }, "required": [ "memoryFree", "memoryUsed", "uptime", "loadAvg", "interface" ] } }, "required": [ "info", "stats" ], "nullable": true }, "versions": { "type": "object", "properties": { "xray": { "type": "string" }, "node": { "type": "string" } }, "required": [ "xray", "node" ], "nullable": true }, "xrayUptime": { "type": "number" }, "usersOnline": { "type": "number" } }, "required": [ "uuid", "name", "address", "port", "isConnected", "isDisabled", "isConnecting", "lastStatusChange", "lastStatusMessage", "isTrafficTrackingActive", "trafficResetDay", "trafficLimitBytes", "trafficUsedBytes", "notifyPercent", "viewPosition", "countryCode", "consumptionMultiplier", "tags", "createdAt", "updatedAt", "configProfile", "providerUuid", "provider", "activePluginUuid", "system", "versions", "xrayUptime", "usersOnline" ] }, "user": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "id": { "type": "number" }, "shortUuid": { "type": "string" }, "username": { "type": "string" }, "status": { "type": "string", "enum": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "x-enumNames": [ "ACTIVE", "DISABLED", "LIMITED", "EXPIRED" ], "default": "ACTIVE" }, "trafficLimitBytes": { "type": "integer", "default": 0 }, "trafficLimitStrategy": { "description": "Available reset periods", "type": "string", "enum": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "x-enumNames": [ "NO_RESET", "DAY", "WEEK", "MONTH", "MONTH_ROLLING" ], "default": "NO_RESET" }, "expireAt": { "type": "string", "format": "date-time" }, "telegramId": { "type": "integer", "nullable": true }, "email": { "type": "string", "format": "email", "nullable": true }, "description": { "type": "string", "nullable": true }, "tag": { "type": "string", "nullable": true }, "hwidDeviceLimit": { "type": "integer", "nullable": true }, "externalSquadUuid": { "type": "string", "format": "uuid", "nullable": true }, "trojanPassword": { "type": "string" }, "vlessUuid": { "type": "string", "format": "uuid" }, "ssPassword": { "type": "string" }, "lastTriggeredThreshold": { "type": "integer", "default": 0 }, "subRevokedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastTrafficResetAt": { "type": "string", "format": "date-time", "nullable": true }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "subscriptionUrl": { "type": "string" }, "activeInternalSquads": { "type": "array", "items": { "type": "object", "properties": { "uuid": { "type": "string", "format": "uuid" }, "name": { "type": "string" } }, "required": [ "uuid", "name" ] } }, "userTraffic": { "type": "object", "properties": { "usedTrafficBytes": { "type": "number" }, "lifetimeUsedTrafficBytes": { "type": "number" }, "onlineAt": { "type": "string", "format": "date-time", "nullable": true }, "firstConnectedAt": { "type": "string", "format": "date-time", "nullable": true }, "lastConnectedNodeUuid": { "type": "string", "format": "uuid", "nullable": true } }, "required": [ "usedTrafficBytes", "lifetimeUsedTrafficBytes", "onlineAt", "firstConnectedAt", "lastConnectedNodeUuid" ] } }, "required": [ "uuid", "id", "shortUuid", "username", "expireAt", "telegramId", "email", "description", "tag", "hwidDeviceLimit", "externalSquadUuid", "trojanPassword", "vlessUuid", "ssPassword", "subRevokedAt", "lastTrafficResetAt", "createdAt", "updatedAt", "subscriptionUrl", "activeInternalSquads", "userTraffic" ] }, "report": { "type": "object", "properties": { "actionReport": { "type": "object", "properties": { "blocked": { "type": "boolean" }, "ip": { "type": "string" }, "blockDuration": { "type": "number" }, "willUnblockAt": { "type": "string", "format": "date-time" }, "userId": { "type": "string" }, "processedAt": { "type": "string", "format": "date-time" } }, "required": [ "blocked", "ip", "blockDuration", "willUnblockAt", "userId", "processedAt" ] }, "xrayReport": { "type": "object", "properties": { "email": { "type": "string", "nullable": true }, "level": { "type": "number", "nullable": true }, "protocol": { "type": "string", "nullable": true }, "network": { "type": "string" }, "source": { "type": "string", "nullable": true }, "destination": { "type": "string" }, "routeTarget": { "type": "string", "nullable": true }, "originalTarget": { "type": "string", "nullable": true }, "inboundTag": { "type": "string", "nullable": true }, "inboundName": { "type": "string", "nullable": true }, "inboundLocal": { "type": "string", "nullable": true }, "outboundTag": { "type": "string", "nullable": true }, "ts": { "type": "number" } }, "required": [ "email", "level", "protocol", "network", "source", "destination", "routeTarget", "originalTarget", "inboundTag", "inboundName", "inboundLocal", "outboundTag", "ts" ] } }, "required": [ "actionReport", "xrayReport" ] } }, "required": [ "node", "user", "report" ] } }, "required": [ "scope", "event", "timestamp", "data" ] } } } }