48948 lines
1.5 MiB
Plaintext
48948 lines
1.5 MiB
Plaintext
{
|
|
"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 using offset-based pagination",
|
|
"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/stream": {
|
|
"get": {
|
|
"operationId": "UsersController_getUsersStream",
|
|
"parameters": [
|
|
{
|
|
"name": "size",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Page size, no more than 1000 (default 250)",
|
|
"schema": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
{
|
|
"name": "cursor",
|
|
"required": false,
|
|
"in": "query",
|
|
"description": "Cursor from the previous response (nextCursor). Omit on the first request",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Users fetched successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GetUsersStreamResponseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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 using cursor-based (keyset) pagination",
|
|
"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/tokens/scopes": {
|
|
"get": {
|
|
"description": "Returns the catalog of scopes that can be granted to an API token, grouped by resource. Forbidden via \"API-key\", admin JWT only.",
|
|
"operationId": "ApiTokensController_getScopes",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Available API token scopes fetched successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GetApiTokenScopesResponseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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 available API token scopes",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RestartNodeRequestBodyDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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/update": {
|
|
"patch": {
|
|
"operationId": "HostsBulkActionsController_setPortToHosts",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateManyHostsRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Hosts updated successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateManyHostsResponseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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 hosts",
|
|
"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/nodes/users": {
|
|
"post": {
|
|
"operationId": "BandwidthStatsNodesController_getStatsNodesUsersUsage",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GetStatsNodesUsersUsageRequestDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Stats node users usage fetched successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GetStatsNodesUsersUsageResponseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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 Users Usage by Nodes UUIDs",
|
|
"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/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.8.0",
|
|
"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.8.0",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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"
|
|
]
|
|
},
|
|
"GetUsersStreamResponseDto": {
|
|
"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": "number",
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"nextCursor": {
|
|
"description": "Cursor to fetch the next page, or null if there are no more results",
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"hasMore": {
|
|
"description": "Whether there are more results to fetch",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"users",
|
|
"nextCursor",
|
|
"hasMore"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"requestAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"userId",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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": "number",
|
|
"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"
|
|
},
|
|
"hwidCheckup": {
|
|
"type": "object",
|
|
"properties": {
|
|
"subscriptionAllowed": {
|
|
"type": "boolean"
|
|
},
|
|
"maxDeviceReached": {
|
|
"type": "boolean"
|
|
},
|
|
"hwidNotSupported": {
|
|
"type": "boolean"
|
|
},
|
|
"limitBypassed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"subscriptionAllowed",
|
|
"maxDeviceReached",
|
|
"hwidNotSupported",
|
|
"limitBypassed"
|
|
],
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"daysLeft",
|
|
"trafficLimit",
|
|
"trafficUsed",
|
|
"lifetimeTrafficUsed",
|
|
"hwidCheckup"
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"clientTti": {
|
|
"type": "integer"
|
|
},
|
|
"congestion": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"clientMtu",
|
|
"clientTti",
|
|
"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": {
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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": [
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"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"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"serverDescription": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"xrayJsonTemplate": {
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"serverDescription",
|
|
"xrayJsonTemplate"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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",
|
|
"tags",
|
|
"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": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 2,
|
|
"maxLength": 30
|
|
},
|
|
"expiresInDays": {
|
|
"type": "number",
|
|
"minimum": 1,
|
|
"exclusiveMinimum": false
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": [
|
|
"*"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"expiresInDays"
|
|
]
|
|
},
|
|
"CreateApiTokenResponseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"response": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"expireAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"token": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"expireAt",
|
|
"scopes",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"token"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"response"
|
|
]
|
|
},
|
|
"DeleteApiTokenResponseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"response": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"response"
|
|
]
|
|
},
|
|
"GetApiTokenScopesResponseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"response": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wildcard": {
|
|
"type": "string"
|
|
},
|
|
"resources": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"resource": {
|
|
"type": "string"
|
|
},
|
|
"resourceScopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"endpoints": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"read",
|
|
"write"
|
|
]
|
|
},
|
|
"method": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"kind",
|
|
"method",
|
|
"path",
|
|
"description"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"resource",
|
|
"resourceScopes",
|
|
"endpoints"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"wildcard",
|
|
"resources"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"response"
|
|
]
|
|
},
|
|
"FindAllApiTokensResponseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"response": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tokens": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"uuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"expireAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"expireAt",
|
|
"scopes",
|
|
"createdAt",
|
|
"updatedAt"
|
|
]
|
|
}
|
|
},
|
|
"docs": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean"
|
|
},
|
|
"scalarPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"swaggerPath": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled",
|
|
"scalarPath",
|
|
"swaggerPath"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"tokens",
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"pattern": "^socks5:\\/\\/(?:[^:@/\\s]+(?::[^@/\\s]*)?@)?[^:@/\\s]+:\\d{1,5}$",
|
|
"nullable": true
|
|
},
|
|
"isTrafficTrackingActive": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"trafficLimitBytes": {
|
|
"type": "number",
|
|
"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
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"maxLength": 255
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"pattern": "^socks5:\\/\\/(?:[^:@/\\s]+(?::[^@/\\s]*)?@)?[^:@/\\s]+:\\d{1,5}$",
|
|
"nullable": true
|
|
},
|
|
"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
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"response"
|
|
]
|
|
},
|
|
"RestartNodeRequestBodyDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"forceRestart": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"forceRestart"
|
|
]
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"forceRestart"
|
|
]
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"sni": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"maxItems": 10,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
},
|
|
"isHidden": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"overrideSniFromAddress": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"keepSniBlank": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"vlessRouteId": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"exclusiveMinimum": false,
|
|
"maximum": 65535,
|
|
"exclusiveMaximum": false,
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
},
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"sni": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"maxItems": 10,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
},
|
|
"isHidden": {
|
|
"type": "boolean"
|
|
},
|
|
"overrideSniFromAddress": {
|
|
"type": "boolean"
|
|
},
|
|
"keepSniBlank": {
|
|
"type": "boolean"
|
|
},
|
|
"vlessRouteId": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"exclusiveMinimum": false,
|
|
"maximum": 65535,
|
|
"exclusiveMaximum": false,
|
|
"nullable": true
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"response"
|
|
]
|
|
},
|
|
"UpdateManyHostsRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"sni": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"maxItems": 10,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
},
|
|
"isHidden": {
|
|
"type": "boolean"
|
|
},
|
|
"overrideSniFromAddress": {
|
|
"type": "boolean"
|
|
},
|
|
"keepSniBlank": {
|
|
"type": "boolean"
|
|
},
|
|
"vlessRouteId": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"exclusiveMinimum": false,
|
|
"maximum": 65535,
|
|
"exclusiveMaximum": false,
|
|
"nullable": true
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"uuids": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"uuids"
|
|
]
|
|
},
|
|
"UpdateManyHostsResponseDto": {
|
|
"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",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"isDisabled": {
|
|
"type": "boolean"
|
|
},
|
|
"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
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"default": []
|
|
},
|
|
"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
|
|
},
|
|
"pinnedPeerCertSha256": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"verifyPeerCertByName": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"shuffleHost": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoX25519": {
|
|
"type": "boolean"
|
|
},
|
|
"mihomoIpVersion": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dual",
|
|
"ipv4",
|
|
"ipv6",
|
|
"ipv4-prefer",
|
|
"ipv6-prefer"
|
|
],
|
|
"x-enumNames": [
|
|
"DUAL",
|
|
"IPV4",
|
|
"IPV6",
|
|
"IPV4_PREFER",
|
|
"IPV6_PREFER"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"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",
|
|
"isDisabled",
|
|
"xhttpExtraParams",
|
|
"muxParams",
|
|
"sockoptParams",
|
|
"finalMask",
|
|
"inbound",
|
|
"serverDescription",
|
|
"vlessRouteId",
|
|
"pinnedPeerCertSha256",
|
|
"verifyPeerCertByName",
|
|
"shuffleHost",
|
|
"mihomoX25519",
|
|
"mihomoIpVersion",
|
|
"nodes",
|
|
"xrayJsonTemplateUuid",
|
|
"excludedInternalSquads",
|
|
"excludeFromSubscriptionTypes"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"GetStatsNodesUsersUsageRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodesUuids": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"nodesUuids"
|
|
]
|
|
},
|
|
"GetStatsNodesUsersUsageResponseDto": {
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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"
|
|
},
|
|
"requestIp": {
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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"
|
|
},
|
|
"byApp": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"app": {
|
|
"type": "string"
|
|
},
|
|
"count": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"app",
|
|
"count"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"platform",
|
|
"count",
|
|
"byApp"
|
|
]
|
|
}
|
|
},
|
|
"stats": {
|
|
"type": "object",
|
|
"properties": {
|
|
"totalUniqueDevices": {
|
|
"type": "number"
|
|
},
|
|
"totalHwidDevices": {
|
|
"type": "number"
|
|
},
|
|
"averageHwidDevicesPerUser": {
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalUniqueDevices",
|
|
"totalHwidDevices",
|
|
"averageHwidDevicesPerUser"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"byPlatform",
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodeUuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"countryCode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodeUuid",
|
|
"countryCode"
|
|
],
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"details"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodeUuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"countryCode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodeUuid",
|
|
"countryCode"
|
|
],
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"details"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodeUuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"countryCode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodeUuid",
|
|
"countryCode"
|
|
],
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"details"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodeUuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"countryCode": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodeUuid",
|
|
"countryCode"
|
|
],
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"details"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"nextBillingAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"nodeUuid",
|
|
"name",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"nextBillingAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"nodeUuid",
|
|
"name",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 255,
|
|
"nullable": true
|
|
},
|
|
"nextBillingAt": {
|
|
"description": "Next billing date. Format: 2025-01-17T15:38:45.065Z",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"providerUuid",
|
|
"nodeUuid",
|
|
"name",
|
|
"nextBillingAt"
|
|
]
|
|
},
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"nextBillingAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"nodeUuid",
|
|
"name",
|
|
"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",
|
|
"nullable": true
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"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"
|
|
],
|
|
"nullable": true
|
|
},
|
|
"nextBillingAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"nodeUuid",
|
|
"name",
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"userId",
|
|
"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"
|
|
]
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"disableHwidCheck": {
|
|
"description": "{\"markdownDescription\":\"If you set this flag to **true**, the HWID check will be disabled. **This modification have higher priority than settings from Subscription Settings.**\"}",
|
|
"type": "boolean"
|
|
},
|
|
"encryption": {
|
|
"description": "{\"markdownDescription\":\"Encrypt response body with given parameters. Generate keypairs with Rescue CLI: `docker exec -it remnawave cli`, select \\\"Generate keypairs\\\".\"}",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"age1",
|
|
"age1pq1"
|
|
]
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"key"
|
|
]
|
|
},
|
|
"excludeHostsByTags": {
|
|
"description": "{\"markdownDescription\":\"Excludes hosts from the subscription output if at least one tag in the host matches the given tags.\"}",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"disableHwidCheck": {
|
|
"description": "{\"markdownDescription\":\"If you set this flag to **true**, the HWID check will be disabled. **This modification have higher priority than settings from Subscription Settings.**\"}",
|
|
"type": "boolean"
|
|
},
|
|
"encryption": {
|
|
"description": "{\"markdownDescription\":\"Encrypt response body with given parameters. Generate keypairs with Rescue CLI: `docker exec -it remnawave cli`, select \\\"Generate keypairs\\\".\"}",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"age1",
|
|
"age1pq1"
|
|
]
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"key"
|
|
]
|
|
},
|
|
"excludeHostsByTags": {
|
|
"description": "{\"markdownDescription\":\"Excludes hosts from the subscription output if at least one tag in the host matches the given tags.\"}",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"disableHwidCheck": {
|
|
"description": "{\"markdownDescription\":\"If you set this flag to **true**, the HWID check will be disabled. **This modification have higher priority than settings from Subscription Settings.**\"}",
|
|
"type": "boolean"
|
|
},
|
|
"encryption": {
|
|
"description": "{\"markdownDescription\":\"Encrypt response body with given parameters. Generate keypairs with Rescue CLI: `docker exec -it remnawave cli`, select \\\"Generate keypairs\\\".\"}",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"age1",
|
|
"age1pq1"
|
|
]
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"key"
|
|
]
|
|
},
|
|
"excludeHostsByTags": {
|
|
"description": "{\"markdownDescription\":\"Excludes hosts from the subscription output if at least one tag in the host matches the given tags.\"}",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"disableHwidCheck": {
|
|
"description": "{\"markdownDescription\":\"If you set this flag to **true**, the HWID check will be disabled. **This modification have higher priority than settings from Subscription Settings.**\"}",
|
|
"type": "boolean"
|
|
},
|
|
"encryption": {
|
|
"description": "{\"markdownDescription\":\"Encrypt response body with given parameters. Generate keypairs with Rescue CLI: `docker exec -it remnawave cli`, select \\\"Generate keypairs\\\".\"}",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"age1",
|
|
"age1pq1"
|
|
]
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"key"
|
|
]
|
|
},
|
|
"excludeHostsByTags": {
|
|
"description": "{\"markdownDescription\":\"Excludes hosts from the subscription output if at least one tag in the host matches the given tags.\"}",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"disableHwidCheck": {
|
|
"description": "{\"markdownDescription\":\"If you set this flag to **true**, the HWID check will be disabled. **This modification have higher priority than settings from Subscription Settings.**\"}",
|
|
"type": "boolean"
|
|
},
|
|
"encryption": {
|
|
"description": "{\"markdownDescription\":\"Encrypt response body with given parameters. Generate keypairs with Rescue CLI: `docker exec -it remnawave cli`, select \\\"Generate keypairs\\\".\"}",
|
|
"type": "object",
|
|
"properties": {
|
|
"method": {
|
|
"type": "string",
|
|
"enum": [
|
|
"age1",
|
|
"age1pq1"
|
|
]
|
|
},
|
|
"key": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"method",
|
|
"key"
|
|
]
|
|
},
|
|
"excludeHostsByTags": {
|
|
"description": "{\"markdownDescription\":\"Excludes hosts from the subscription output if at least one tag in the host matches the given tags.\"}",
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[A-Z0-9_:]+$",
|
|
"maxLength": 36
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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.first_connected",
|
|
"user.bandwidth_usage_threshold_reached",
|
|
"user.not_connected",
|
|
"user.expiration"
|
|
]
|
|
},
|
|
"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": "number",
|
|
"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": "number",
|
|
"nullable": true
|
|
},
|
|
"expiration": {
|
|
"type": "number",
|
|
"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": "number",
|
|
"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"
|
|
},
|
|
"userId": {
|
|
"type": "number"
|
|
},
|
|
"platform": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"osVersion": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"deviceModel": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"userAgent": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"requestIp": {
|
|
"type": "string",
|
|
"nullable": true
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"updatedAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"hwid",
|
|
"userId",
|
|
"platform",
|
|
"osVersion",
|
|
"deviceModel",
|
|
"userAgent",
|
|
"requestIp",
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
}
|
|
},
|
|
"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",
|
|
"service.api_token_created",
|
|
"service.api_token_deleted"
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"apiToken": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"uuid": {
|
|
"type": "string",
|
|
"format": "uuid"
|
|
},
|
|
"expireAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"uuid",
|
|
"expireAt",
|
|
"scopes"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"proxyUrl": {
|
|
"type": "string",
|
|
"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"
|
|
},
|
|
"nodeConsumptionMultiplier": {
|
|
"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"
|
|
},
|
|
"note": {
|
|
"type": "string",
|
|
"nullable": true
|
|
}
|
|
},
|
|
"required": [
|
|
"uuid",
|
|
"name",
|
|
"address",
|
|
"port",
|
|
"proxyUrl",
|
|
"isConnected",
|
|
"isDisabled",
|
|
"isConnecting",
|
|
"lastStatusChange",
|
|
"lastStatusMessage",
|
|
"isTrafficTrackingActive",
|
|
"trafficResetDay",
|
|
"trafficLimitBytes",
|
|
"trafficUsedBytes",
|
|
"notifyPercent",
|
|
"viewPosition",
|
|
"countryCode",
|
|
"consumptionMultiplier",
|
|
"nodeConsumptionMultiplier",
|
|
"tags",
|
|
"createdAt",
|
|
"updatedAt",
|
|
"configProfile",
|
|
"providerUuid",
|
|
"provider",
|
|
"activePluginUuid",
|
|
"system",
|
|
"versions",
|
|
"xrayUptime",
|
|
"usersOnline",
|
|
"note"
|
|
]
|
|
},
|
|
"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": "number",
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|