unrealon 1.0.9__py3-none-any.whl → 1.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unrealon/__init__.py +23 -21
- unrealon-1.1.1.dist-info/METADATA +722 -0
- unrealon-1.1.1.dist-info/RECORD +82 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info}/WHEEL +1 -1
- unrealon-1.1.1.dist-info/entry_points.txt +9 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info/licenses}/LICENSE +1 -1
- unrealon_bridge/__init__.py +114 -0
- unrealon_bridge/cli.py +316 -0
- unrealon_bridge/client/__init__.py +93 -0
- unrealon_bridge/client/base.py +78 -0
- unrealon_bridge/client/commands.py +89 -0
- unrealon_bridge/client/connection.py +90 -0
- unrealon_bridge/client/events.py +65 -0
- unrealon_bridge/client/health.py +38 -0
- unrealon_bridge/client/html_parser.py +146 -0
- unrealon_bridge/client/logging.py +139 -0
- unrealon_bridge/client/proxy.py +70 -0
- unrealon_bridge/client/scheduler.py +450 -0
- unrealon_bridge/client/session.py +70 -0
- unrealon_bridge/configs/__init__.py +14 -0
- unrealon_bridge/configs/bridge_config.py +212 -0
- unrealon_bridge/configs/bridge_config.yaml +39 -0
- unrealon_bridge/models/__init__.py +138 -0
- unrealon_bridge/models/base.py +28 -0
- unrealon_bridge/models/command.py +41 -0
- unrealon_bridge/models/events.py +40 -0
- unrealon_bridge/models/html_parser.py +79 -0
- unrealon_bridge/models/logging.py +55 -0
- unrealon_bridge/models/parser.py +63 -0
- unrealon_bridge/models/proxy.py +41 -0
- unrealon_bridge/models/requests.py +95 -0
- unrealon_bridge/models/responses.py +88 -0
- unrealon_bridge/models/scheduler.py +592 -0
- unrealon_bridge/models/session.py +28 -0
- unrealon_bridge/server/__init__.py +91 -0
- unrealon_bridge/server/base.py +171 -0
- unrealon_bridge/server/handlers/__init__.py +23 -0
- unrealon_bridge/server/handlers/command.py +110 -0
- unrealon_bridge/server/handlers/html_parser.py +139 -0
- unrealon_bridge/server/handlers/logging.py +95 -0
- unrealon_bridge/server/handlers/parser.py +95 -0
- unrealon_bridge/server/handlers/proxy.py +75 -0
- unrealon_bridge/server/handlers/scheduler.py +545 -0
- unrealon_bridge/server/handlers/session.py +66 -0
- unrealon_browser/__init__.py +61 -18
- unrealon_browser/{src/cli → cli}/browser_cli.py +6 -13
- unrealon_browser/{src/cli → cli}/cookies_cli.py +5 -1
- unrealon_browser/{src/core → core}/browser_manager.py +2 -2
- unrealon_browser/{src/managers → managers}/captcha.py +1 -1
- unrealon_browser/{src/managers → managers}/cookies.py +1 -1
- unrealon_browser/managers/logger_bridge.py +231 -0
- unrealon_browser/{src/managers → managers}/profile.py +1 -1
- unrealon_driver/__init__.py +73 -19
- unrealon_driver/browser/__init__.py +8 -0
- unrealon_driver/browser/config.py +74 -0
- unrealon_driver/browser/manager.py +416 -0
- unrealon_driver/exceptions.py +28 -0
- unrealon_driver/parser/__init__.py +55 -0
- unrealon_driver/parser/cli_manager.py +141 -0
- unrealon_driver/parser/daemon_manager.py +227 -0
- unrealon_driver/parser/managers/__init__.py +46 -0
- unrealon_driver/parser/managers/browser.py +51 -0
- unrealon_driver/parser/managers/config.py +281 -0
- unrealon_driver/parser/managers/error.py +412 -0
- unrealon_driver/parser/managers/html.py +732 -0
- unrealon_driver/parser/managers/logging.py +609 -0
- unrealon_driver/parser/managers/result.py +321 -0
- unrealon_driver/parser/parser_manager.py +628 -0
- unrealon/sdk_config.py +0 -88
- unrealon-1.0.9.dist-info/METADATA +0 -810
- unrealon-1.0.9.dist-info/RECORD +0 -246
- unrealon_browser/pyproject.toml +0 -182
- unrealon_browser/src/__init__.py +0 -62
- unrealon_browser/src/managers/logger_bridge.py +0 -395
- unrealon_driver/README.md +0 -204
- unrealon_driver/pyproject.toml +0 -187
- unrealon_driver/src/__init__.py +0 -90
- unrealon_driver/src/cli/__init__.py +0 -10
- unrealon_driver/src/cli/main.py +0 -66
- unrealon_driver/src/cli/simple.py +0 -510
- unrealon_driver/src/config/__init__.py +0 -11
- unrealon_driver/src/config/auto_config.py +0 -478
- unrealon_driver/src/core/__init__.py +0 -18
- unrealon_driver/src/core/exceptions.py +0 -289
- unrealon_driver/src/core/parser.py +0 -638
- unrealon_driver/src/dto/__init__.py +0 -66
- unrealon_driver/src/dto/cli.py +0 -119
- unrealon_driver/src/dto/config.py +0 -18
- unrealon_driver/src/dto/events.py +0 -237
- unrealon_driver/src/dto/execution.py +0 -313
- unrealon_driver/src/dto/services.py +0 -311
- unrealon_driver/src/execution/__init__.py +0 -23
- unrealon_driver/src/execution/daemon_mode.py +0 -317
- unrealon_driver/src/execution/interactive_mode.py +0 -88
- unrealon_driver/src/execution/modes.py +0 -45
- unrealon_driver/src/execution/scheduled_mode.py +0 -209
- unrealon_driver/src/execution/test_mode.py +0 -250
- unrealon_driver/src/logging/__init__.py +0 -24
- unrealon_driver/src/logging/driver_logger.py +0 -512
- unrealon_driver/src/services/__init__.py +0 -24
- unrealon_driver/src/services/browser_service.py +0 -726
- unrealon_driver/src/services/llm/__init__.py +0 -15
- unrealon_driver/src/services/llm/browser_llm_service.py +0 -363
- unrealon_driver/src/services/llm/llm.py +0 -195
- unrealon_driver/src/services/logger_service.py +0 -232
- unrealon_driver/src/services/metrics_service.py +0 -185
- unrealon_driver/src/services/scheduler_service.py +0 -489
- unrealon_driver/src/services/websocket_service.py +0 -362
- unrealon_driver/src/utils/__init__.py +0 -16
- unrealon_driver/src/utils/service_factory.py +0 -317
- unrealon_driver/src/utils/time_formatter.py +0 -338
- unrealon_llm/README.md +0 -44
- unrealon_llm/__init__.py +0 -26
- unrealon_llm/pyproject.toml +0 -154
- unrealon_llm/src/__init__.py +0 -228
- unrealon_llm/src/cli/__init__.py +0 -0
- unrealon_llm/src/core/__init__.py +0 -11
- unrealon_llm/src/core/smart_client.py +0 -438
- unrealon_llm/src/dto/__init__.py +0 -155
- unrealon_llm/src/dto/models/__init__.py +0 -0
- unrealon_llm/src/dto/models/config.py +0 -343
- unrealon_llm/src/dto/models/core.py +0 -328
- unrealon_llm/src/dto/models/enums.py +0 -123
- unrealon_llm/src/dto/models/html_analysis.py +0 -345
- unrealon_llm/src/dto/models/statistics.py +0 -473
- unrealon_llm/src/dto/models/translation.py +0 -383
- unrealon_llm/src/dto/models/type_conversion.py +0 -462
- unrealon_llm/src/dto/schemas/__init__.py +0 -0
- unrealon_llm/src/exceptions.py +0 -392
- unrealon_llm/src/llm_config/__init__.py +0 -20
- unrealon_llm/src/llm_config/logging_config.py +0 -178
- unrealon_llm/src/llm_logging/__init__.py +0 -42
- unrealon_llm/src/llm_logging/llm_events.py +0 -107
- unrealon_llm/src/llm_logging/llm_logger.py +0 -466
- unrealon_llm/src/managers/__init__.py +0 -15
- unrealon_llm/src/managers/cache_manager.py +0 -67
- unrealon_llm/src/managers/cost_manager.py +0 -107
- unrealon_llm/src/managers/request_manager.py +0 -298
- unrealon_llm/src/modules/__init__.py +0 -0
- unrealon_llm/src/modules/html_processor/__init__.py +0 -25
- unrealon_llm/src/modules/html_processor/base_processor.py +0 -415
- unrealon_llm/src/modules/html_processor/details_processor.py +0 -85
- unrealon_llm/src/modules/html_processor/listing_processor.py +0 -91
- unrealon_llm/src/modules/html_processor/models/__init__.py +0 -20
- unrealon_llm/src/modules/html_processor/models/processing_models.py +0 -40
- unrealon_llm/src/modules/html_processor/models/universal_model.py +0 -56
- unrealon_llm/src/modules/html_processor/processor.py +0 -102
- unrealon_llm/src/modules/llm/__init__.py +0 -0
- unrealon_llm/src/modules/translator/__init__.py +0 -0
- unrealon_llm/src/provider.py +0 -116
- unrealon_llm/src/utils/__init__.py +0 -95
- unrealon_llm/src/utils/common.py +0 -64
- unrealon_llm/src/utils/data_extractor.py +0 -188
- unrealon_llm/src/utils/html_cleaner.py +0 -767
- unrealon_llm/src/utils/language_detector.py +0 -308
- unrealon_llm/src/utils/models_cache.py +0 -592
- unrealon_llm/src/utils/smart_counter.py +0 -229
- unrealon_llm/src/utils/token_counter.py +0 -189
- unrealon_sdk/README.md +0 -25
- unrealon_sdk/__init__.py +0 -30
- unrealon_sdk/pyproject.toml +0 -231
- unrealon_sdk/src/__init__.py +0 -150
- unrealon_sdk/src/cli/__init__.py +0 -12
- unrealon_sdk/src/cli/commands/__init__.py +0 -22
- unrealon_sdk/src/cli/commands/benchmark.py +0 -42
- unrealon_sdk/src/cli/commands/diagnostics.py +0 -573
- unrealon_sdk/src/cli/commands/health.py +0 -46
- unrealon_sdk/src/cli/commands/integration.py +0 -498
- unrealon_sdk/src/cli/commands/reports.py +0 -43
- unrealon_sdk/src/cli/commands/security.py +0 -36
- unrealon_sdk/src/cli/commands/server.py +0 -483
- unrealon_sdk/src/cli/commands/servers.py +0 -56
- unrealon_sdk/src/cli/commands/tests.py +0 -55
- unrealon_sdk/src/cli/main.py +0 -126
- unrealon_sdk/src/cli/utils/reporter.py +0 -519
- unrealon_sdk/src/clients/openapi.yaml +0 -3347
- unrealon_sdk/src/clients/python_http/__init__.py +0 -3
- unrealon_sdk/src/clients/python_http/api_config.py +0 -228
- unrealon_sdk/src/clients/python_http/models/BaseModel.py +0 -12
- unrealon_sdk/src/clients/python_http/models/BroadcastDeliveryStats.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastMessage.py +0 -17
- unrealon_sdk/src/clients/python_http/models/BroadcastMessageRequest.py +0 -35
- unrealon_sdk/src/clients/python_http/models/BroadcastPriority.py +0 -10
- unrealon_sdk/src/clients/python_http/models/BroadcastResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/BroadcastResultResponse.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastTarget.py +0 -11
- unrealon_sdk/src/clients/python_http/models/ConnectionStats.py +0 -27
- unrealon_sdk/src/clients/python_http/models/ConnectionsResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/DeveloperMessageResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ErrorResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/HTTPValidationError.py +0 -16
- unrealon_sdk/src/clients/python_http/models/HealthResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/HealthStatus.py +0 -33
- unrealon_sdk/src/clients/python_http/models/LogLevel.py +0 -10
- unrealon_sdk/src/clients/python_http/models/LoggingRequest.py +0 -27
- unrealon_sdk/src/clients/python_http/models/LoggingResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/MaintenanceMode.py +0 -9
- unrealon_sdk/src/clients/python_http/models/MaintenanceModeRequest.py +0 -33
- unrealon_sdk/src/clients/python_http/models/MaintenanceStatusResponse.py +0 -39
- unrealon_sdk/src/clients/python_http/models/ParserCommandRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserMessageResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationRequest.py +0 -28
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserType.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyBlockRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyEndpointResponse.py +0 -20
- unrealon_sdk/src/clients/python_http/models/ProxyListResponse.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyProvider.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyPurchaseRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ProxyResponse.py +0 -47
- unrealon_sdk/src/clients/python_http/models/ProxyRotationRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ProxyStatus.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyUsageRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyUsageStatsResponse.py +0 -26
- unrealon_sdk/src/clients/python_http/models/ServiceRegistrationDto.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ServiceStatsResponse.py +0 -31
- unrealon_sdk/src/clients/python_http/models/SessionStartRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/SuccessResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/SystemNotificationResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ValidationError.py +0 -18
- unrealon_sdk/src/clients/python_http/models/ValidationErrorResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/WebSocketMetrics.py +0 -21
- unrealon_sdk/src/clients/python_http/models/__init__.py +0 -44
- unrealon_sdk/src/clients/python_http/services/None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/SocketLogging_service.py +0 -187
- unrealon_sdk/src/clients/python_http/services/SystemHealth_service.py +0 -119
- unrealon_sdk/src/clients/python_http/services/WebSocketAPI_service.py +0 -198
- unrealon_sdk/src/clients/python_http/services/__init__.py +0 -0
- unrealon_sdk/src/clients/python_http/services/admin_service.py +0 -125
- unrealon_sdk/src/clients/python_http/services/async_None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/async_ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/async_ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/async_SocketLogging_service.py +0 -189
- unrealon_sdk/src/clients/python_http/services/async_SystemHealth_service.py +0 -123
- unrealon_sdk/src/clients/python_http/services/async_WebSocketAPI_service.py +0 -200
- unrealon_sdk/src/clients/python_http/services/async_admin_service.py +0 -125
- unrealon_sdk/src/clients/python_websocket/__init__.py +0 -28
- unrealon_sdk/src/clients/python_websocket/client.py +0 -490
- unrealon_sdk/src/clients/python_websocket/events.py +0 -732
- unrealon_sdk/src/clients/python_websocket/example.py +0 -136
- unrealon_sdk/src/clients/python_websocket/types.py +0 -871
- unrealon_sdk/src/core/__init__.py +0 -64
- unrealon_sdk/src/core/client.py +0 -556
- unrealon_sdk/src/core/config.py +0 -465
- unrealon_sdk/src/core/exceptions.py +0 -239
- unrealon_sdk/src/core/metadata.py +0 -191
- unrealon_sdk/src/core/models.py +0 -142
- unrealon_sdk/src/core/types.py +0 -68
- unrealon_sdk/src/dto/__init__.py +0 -268
- unrealon_sdk/src/dto/authentication.py +0 -108
- unrealon_sdk/src/dto/cache.py +0 -208
- unrealon_sdk/src/dto/common.py +0 -19
- unrealon_sdk/src/dto/concurrency.py +0 -393
- unrealon_sdk/src/dto/events.py +0 -108
- unrealon_sdk/src/dto/health.py +0 -339
- unrealon_sdk/src/dto/load_balancing.py +0 -336
- unrealon_sdk/src/dto/logging.py +0 -230
- unrealon_sdk/src/dto/performance.py +0 -165
- unrealon_sdk/src/dto/rate_limiting.py +0 -295
- unrealon_sdk/src/dto/resource_pooling.py +0 -128
- unrealon_sdk/src/dto/structured_logging.py +0 -112
- unrealon_sdk/src/dto/task_scheduling.py +0 -121
- unrealon_sdk/src/dto/websocket.py +0 -55
- unrealon_sdk/src/enterprise/__init__.py +0 -59
- unrealon_sdk/src/enterprise/authentication.py +0 -401
- unrealon_sdk/src/enterprise/cache_manager.py +0 -578
- unrealon_sdk/src/enterprise/error_recovery.py +0 -494
- unrealon_sdk/src/enterprise/event_system.py +0 -549
- unrealon_sdk/src/enterprise/health_monitor.py +0 -747
- unrealon_sdk/src/enterprise/load_balancer.py +0 -964
- unrealon_sdk/src/enterprise/logging/__init__.py +0 -68
- unrealon_sdk/src/enterprise/logging/cleanup.py +0 -156
- unrealon_sdk/src/enterprise/logging/development.py +0 -744
- unrealon_sdk/src/enterprise/logging/service.py +0 -410
- unrealon_sdk/src/enterprise/multithreading_manager.py +0 -853
- unrealon_sdk/src/enterprise/performance_monitor.py +0 -539
- unrealon_sdk/src/enterprise/proxy_manager.py +0 -696
- unrealon_sdk/src/enterprise/rate_limiter.py +0 -652
- unrealon_sdk/src/enterprise/resource_pool.py +0 -763
- unrealon_sdk/src/enterprise/task_scheduler.py +0 -709
- unrealon_sdk/src/internal/__init__.py +0 -10
- unrealon_sdk/src/internal/command_router.py +0 -497
- unrealon_sdk/src/internal/connection_manager.py +0 -397
- unrealon_sdk/src/internal/http_client.py +0 -446
- unrealon_sdk/src/internal/websocket_client.py +0 -420
- unrealon_sdk/src/provider.py +0 -471
- unrealon_sdk/src/utils.py +0 -234
- /unrealon_browser/{src/cli → cli}/__init__.py +0 -0
- /unrealon_browser/{src/cli → cli}/interactive_mode.py +0 -0
- /unrealon_browser/{src/cli → cli}/main.py +0 -0
- /unrealon_browser/{src/core → core}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/config.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/core.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/dataclasses.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/detection.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/enums.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/statistics.py +0 -0
- /unrealon_browser/{src/managers → managers}/__init__.py +0 -0
- /unrealon_browser/{src/managers → managers}/stealth.py +0 -0
|
@@ -1,3347 +0,0 @@
|
|
|
1
|
-
components:
|
|
2
|
-
schemas:
|
|
3
|
-
BaseModel:
|
|
4
|
-
properties: {}
|
|
5
|
-
title: BaseModel
|
|
6
|
-
type: object
|
|
7
|
-
BroadcastDeliveryStats:
|
|
8
|
-
description: Broadcast delivery statistics.
|
|
9
|
-
properties:
|
|
10
|
-
data:
|
|
11
|
-
anyOf:
|
|
12
|
-
- additionalProperties: true
|
|
13
|
-
type: object
|
|
14
|
-
- type: null
|
|
15
|
-
description: Optional response data
|
|
16
|
-
title: Data
|
|
17
|
-
delivered:
|
|
18
|
-
description: Successfully delivered count
|
|
19
|
-
minimum: 0.0
|
|
20
|
-
title: Delivered
|
|
21
|
-
type: integer
|
|
22
|
-
delivery_rate:
|
|
23
|
-
description: Delivery success rate percentage
|
|
24
|
-
maximum: 100.0
|
|
25
|
-
minimum: 0.0
|
|
26
|
-
title: Delivery Rate
|
|
27
|
-
type: number
|
|
28
|
-
failed:
|
|
29
|
-
description: Failed delivery count
|
|
30
|
-
minimum: 0.0
|
|
31
|
-
title: Failed
|
|
32
|
-
type: integer
|
|
33
|
-
message:
|
|
34
|
-
description: Success message
|
|
35
|
-
title: Message
|
|
36
|
-
type: string
|
|
37
|
-
pending:
|
|
38
|
-
description: Pending delivery count
|
|
39
|
-
minimum: 0.0
|
|
40
|
-
title: Pending
|
|
41
|
-
type: integer
|
|
42
|
-
request_id:
|
|
43
|
-
anyOf:
|
|
44
|
-
- type: string
|
|
45
|
-
- type: null
|
|
46
|
-
description: Original request tracking ID
|
|
47
|
-
title: Request Id
|
|
48
|
-
success:
|
|
49
|
-
default: true
|
|
50
|
-
description: Operation success status
|
|
51
|
-
title: Success
|
|
52
|
-
type: boolean
|
|
53
|
-
timestamp:
|
|
54
|
-
description: Response timestamp
|
|
55
|
-
format: date-time
|
|
56
|
-
title: Timestamp
|
|
57
|
-
type: string
|
|
58
|
-
total_targeted:
|
|
59
|
-
description: Total users targeted
|
|
60
|
-
minimum: 0.0
|
|
61
|
-
title: Total Targeted
|
|
62
|
-
type: integer
|
|
63
|
-
required:
|
|
64
|
-
- message
|
|
65
|
-
- total_targeted
|
|
66
|
-
- delivered
|
|
67
|
-
- failed
|
|
68
|
-
- pending
|
|
69
|
-
- delivery_rate
|
|
70
|
-
title: BroadcastDeliveryStats
|
|
71
|
-
type: object
|
|
72
|
-
BroadcastMessage:
|
|
73
|
-
description: Message to broadcast to a room.
|
|
74
|
-
properties:
|
|
75
|
-
data:
|
|
76
|
-
additionalProperties: true
|
|
77
|
-
title: Data
|
|
78
|
-
type: object
|
|
79
|
-
event:
|
|
80
|
-
default: message
|
|
81
|
-
title: Event
|
|
82
|
-
type: string
|
|
83
|
-
required:
|
|
84
|
-
- data
|
|
85
|
-
title: BroadcastMessage
|
|
86
|
-
type: object
|
|
87
|
-
BroadcastMessageRequest:
|
|
88
|
-
additionalProperties: false
|
|
89
|
-
description: Request to broadcast message to users.
|
|
90
|
-
properties:
|
|
91
|
-
admin_context:
|
|
92
|
-
anyOf:
|
|
93
|
-
- additionalProperties: true
|
|
94
|
-
type: object
|
|
95
|
-
- type: null
|
|
96
|
-
description: Admin context metadata
|
|
97
|
-
title: Admin Context
|
|
98
|
-
expires_at:
|
|
99
|
-
anyOf:
|
|
100
|
-
- format: date-time
|
|
101
|
-
type: string
|
|
102
|
-
- type: null
|
|
103
|
-
description: Message expiration timestamp
|
|
104
|
-
title: Expires At
|
|
105
|
-
message:
|
|
106
|
-
description: Broadcast message content
|
|
107
|
-
maxLength: 2000
|
|
108
|
-
minLength: 1
|
|
109
|
-
title: Message
|
|
110
|
-
type: string
|
|
111
|
-
metadata:
|
|
112
|
-
additionalProperties: true
|
|
113
|
-
description: Additional message metadata
|
|
114
|
-
title: Metadata
|
|
115
|
-
type: object
|
|
116
|
-
persistent:
|
|
117
|
-
default: false
|
|
118
|
-
description: Whether message persists for offline users
|
|
119
|
-
title: Persistent
|
|
120
|
-
type: boolean
|
|
121
|
-
priority:
|
|
122
|
-
$ref: '#/components/schemas/BroadcastPriority'
|
|
123
|
-
default: normal
|
|
124
|
-
description: Message priority level
|
|
125
|
-
request_id:
|
|
126
|
-
anyOf:
|
|
127
|
-
- type: string
|
|
128
|
-
- type: null
|
|
129
|
-
description: Optional request tracking ID
|
|
130
|
-
title: Request Id
|
|
131
|
-
target:
|
|
132
|
-
$ref: '#/components/schemas/BroadcastTarget'
|
|
133
|
-
default: all_users
|
|
134
|
-
description: Broadcast target audience
|
|
135
|
-
target_room:
|
|
136
|
-
anyOf:
|
|
137
|
-
- maxLength: 100
|
|
138
|
-
type: string
|
|
139
|
-
- type: null
|
|
140
|
-
description: Specific room name (required if target=specific_room)
|
|
141
|
-
title: Target Room
|
|
142
|
-
target_users:
|
|
143
|
-
anyOf:
|
|
144
|
-
- items:
|
|
145
|
-
type: string
|
|
146
|
-
maxItems: 1000
|
|
147
|
-
type: array
|
|
148
|
-
- type: null
|
|
149
|
-
description: Specific user IDs (required if target=specific_users)
|
|
150
|
-
title: Target Users
|
|
151
|
-
title:
|
|
152
|
-
anyOf:
|
|
153
|
-
- maxLength: 200
|
|
154
|
-
type: string
|
|
155
|
-
- type: null
|
|
156
|
-
description: Optional message title
|
|
157
|
-
title: Title
|
|
158
|
-
required:
|
|
159
|
-
- message
|
|
160
|
-
title: BroadcastMessageRequest
|
|
161
|
-
type: object
|
|
162
|
-
BroadcastPriority:
|
|
163
|
-
description: Broadcast message priority levels.
|
|
164
|
-
enum:
|
|
165
|
-
- low
|
|
166
|
-
- normal
|
|
167
|
-
- high
|
|
168
|
-
- urgent
|
|
169
|
-
- critical
|
|
170
|
-
title: BroadcastPriority
|
|
171
|
-
type: string
|
|
172
|
-
BroadcastResponse:
|
|
173
|
-
description: Response model for broadcast operations.
|
|
174
|
-
example:
|
|
175
|
-
event: notification
|
|
176
|
-
message_sent: true
|
|
177
|
-
room: global
|
|
178
|
-
success: true
|
|
179
|
-
properties:
|
|
180
|
-
event:
|
|
181
|
-
description: Event type
|
|
182
|
-
title: Event
|
|
183
|
-
type: string
|
|
184
|
-
message_sent:
|
|
185
|
-
description: Whether message was sent
|
|
186
|
-
title: Message Sent
|
|
187
|
-
type: boolean
|
|
188
|
-
room:
|
|
189
|
-
description: Target room
|
|
190
|
-
title: Room
|
|
191
|
-
type: string
|
|
192
|
-
success:
|
|
193
|
-
description: Whether broadcast was successful
|
|
194
|
-
title: Success
|
|
195
|
-
type: boolean
|
|
196
|
-
required:
|
|
197
|
-
- success
|
|
198
|
-
- room
|
|
199
|
-
- event
|
|
200
|
-
- message_sent
|
|
201
|
-
title: BroadcastResponse
|
|
202
|
-
type: object
|
|
203
|
-
BroadcastResultResponse:
|
|
204
|
-
description: Response from broadcast operation.
|
|
205
|
-
properties:
|
|
206
|
-
broadcast_id:
|
|
207
|
-
description: Unique broadcast identifier
|
|
208
|
-
title: Broadcast Id
|
|
209
|
-
type: string
|
|
210
|
-
data:
|
|
211
|
-
anyOf:
|
|
212
|
-
- additionalProperties: true
|
|
213
|
-
type: object
|
|
214
|
-
- type: null
|
|
215
|
-
description: Optional response data
|
|
216
|
-
title: Data
|
|
217
|
-
delivery_stats:
|
|
218
|
-
$ref: '#/components/schemas/BroadcastDeliveryStats'
|
|
219
|
-
description: Delivery statistics
|
|
220
|
-
estimated_delivery_time:
|
|
221
|
-
anyOf:
|
|
222
|
-
- format: date-time
|
|
223
|
-
type: string
|
|
224
|
-
- type: null
|
|
225
|
-
description: Estimated completion time for delivery
|
|
226
|
-
title: Estimated Delivery Time
|
|
227
|
-
message:
|
|
228
|
-
description: Success message
|
|
229
|
-
title: Message
|
|
230
|
-
type: string
|
|
231
|
-
request_id:
|
|
232
|
-
anyOf:
|
|
233
|
-
- type: string
|
|
234
|
-
- type: null
|
|
235
|
-
description: Original request tracking ID
|
|
236
|
-
title: Request Id
|
|
237
|
-
success:
|
|
238
|
-
default: true
|
|
239
|
-
description: Operation success status
|
|
240
|
-
title: Success
|
|
241
|
-
type: boolean
|
|
242
|
-
target_info:
|
|
243
|
-
additionalProperties: true
|
|
244
|
-
description: Target audience information
|
|
245
|
-
title: Target Info
|
|
246
|
-
type: object
|
|
247
|
-
timestamp:
|
|
248
|
-
description: Response timestamp
|
|
249
|
-
format: date-time
|
|
250
|
-
title: Timestamp
|
|
251
|
-
type: string
|
|
252
|
-
required:
|
|
253
|
-
- message
|
|
254
|
-
- broadcast_id
|
|
255
|
-
- delivery_stats
|
|
256
|
-
- target_info
|
|
257
|
-
title: BroadcastResultResponse
|
|
258
|
-
type: object
|
|
259
|
-
BroadcastTarget:
|
|
260
|
-
description: Broadcast target types.
|
|
261
|
-
enum:
|
|
262
|
-
- all_users
|
|
263
|
-
- admins_only
|
|
264
|
-
- developers_only
|
|
265
|
-
- parsers_only
|
|
266
|
-
- specific_room
|
|
267
|
-
- specific_users
|
|
268
|
-
title: BroadcastTarget
|
|
269
|
-
type: string
|
|
270
|
-
ConnectionStats:
|
|
271
|
-
description: Pydantic model for WebSocket connection statistics.
|
|
272
|
-
example:
|
|
273
|
-
active_rooms: 12
|
|
274
|
-
client_connections: 105
|
|
275
|
-
max_connections: 1000
|
|
276
|
-
metrics:
|
|
277
|
-
connections_closed: 1100
|
|
278
|
-
connections_opened: 1250
|
|
279
|
-
messages_received: 12300
|
|
280
|
-
messages_sent: 15450
|
|
281
|
-
parser_connections: 45
|
|
282
|
-
total_connections: 150
|
|
283
|
-
properties:
|
|
284
|
-
active_rooms:
|
|
285
|
-
description: Number of active rooms
|
|
286
|
-
title: Active Rooms
|
|
287
|
-
type: integer
|
|
288
|
-
client_connections:
|
|
289
|
-
description: Client connections
|
|
290
|
-
title: Client Connections
|
|
291
|
-
type: integer
|
|
292
|
-
max_connections:
|
|
293
|
-
description: Maximum allowed connections
|
|
294
|
-
title: Max Connections
|
|
295
|
-
type: integer
|
|
296
|
-
metrics:
|
|
297
|
-
$ref: '#/components/schemas/WebSocketMetrics'
|
|
298
|
-
description: Performance metrics
|
|
299
|
-
parser_connections:
|
|
300
|
-
description: Parser connections
|
|
301
|
-
title: Parser Connections
|
|
302
|
-
type: integer
|
|
303
|
-
total_connections:
|
|
304
|
-
description: Total active connections
|
|
305
|
-
title: Total Connections
|
|
306
|
-
type: integer
|
|
307
|
-
required:
|
|
308
|
-
- total_connections
|
|
309
|
-
- parser_connections
|
|
310
|
-
- client_connections
|
|
311
|
-
- active_rooms
|
|
312
|
-
- max_connections
|
|
313
|
-
title: ConnectionStats
|
|
314
|
-
type: object
|
|
315
|
-
ConnectionsResponse:
|
|
316
|
-
description: Response model for connections information.
|
|
317
|
-
example:
|
|
318
|
-
connected_developers:
|
|
319
|
-
- dev_123456
|
|
320
|
-
- dev_789012
|
|
321
|
-
connected_parsers:
|
|
322
|
-
- automotive_parser_001
|
|
323
|
-
- automotive_parser_002
|
|
324
|
-
total_developers: 2
|
|
325
|
-
total_parsers: 2
|
|
326
|
-
properties:
|
|
327
|
-
connected_developers:
|
|
328
|
-
description: List of connected developer IDs
|
|
329
|
-
items:
|
|
330
|
-
type: string
|
|
331
|
-
title: Connected Developers
|
|
332
|
-
type: array
|
|
333
|
-
connected_parsers:
|
|
334
|
-
description: List of connected parser IDs
|
|
335
|
-
items:
|
|
336
|
-
type: string
|
|
337
|
-
title: Connected Parsers
|
|
338
|
-
type: array
|
|
339
|
-
total_developers:
|
|
340
|
-
description: Total number of connected developers
|
|
341
|
-
title: Total Developers
|
|
342
|
-
type: integer
|
|
343
|
-
total_parsers:
|
|
344
|
-
description: Total number of connected parsers
|
|
345
|
-
title: Total Parsers
|
|
346
|
-
type: integer
|
|
347
|
-
required:
|
|
348
|
-
- connected_parsers
|
|
349
|
-
- connected_developers
|
|
350
|
-
- total_parsers
|
|
351
|
-
- total_developers
|
|
352
|
-
title: ConnectionsResponse
|
|
353
|
-
type: object
|
|
354
|
-
DeveloperMessageResponse:
|
|
355
|
-
description: Response model for developer message operations.
|
|
356
|
-
example:
|
|
357
|
-
developer_id: dev_123456
|
|
358
|
-
event: notification
|
|
359
|
-
message_sent: true
|
|
360
|
-
sessions_reached: 2
|
|
361
|
-
success: true
|
|
362
|
-
properties:
|
|
363
|
-
developer_id:
|
|
364
|
-
description: Target developer ID
|
|
365
|
-
title: Developer Id
|
|
366
|
-
type: string
|
|
367
|
-
event:
|
|
368
|
-
description: Event type
|
|
369
|
-
title: Event
|
|
370
|
-
type: string
|
|
371
|
-
message_sent:
|
|
372
|
-
description: Whether message was sent
|
|
373
|
-
title: Message Sent
|
|
374
|
-
type: boolean
|
|
375
|
-
sessions_reached:
|
|
376
|
-
description: Number of sessions reached
|
|
377
|
-
title: Sessions Reached
|
|
378
|
-
type: integer
|
|
379
|
-
success:
|
|
380
|
-
description: Whether message was sent
|
|
381
|
-
title: Success
|
|
382
|
-
type: boolean
|
|
383
|
-
required:
|
|
384
|
-
- success
|
|
385
|
-
- developer_id
|
|
386
|
-
- event
|
|
387
|
-
- sessions_reached
|
|
388
|
-
- message_sent
|
|
389
|
-
title: DeveloperMessageResponse
|
|
390
|
-
type: object
|
|
391
|
-
ErrorResponse:
|
|
392
|
-
description: Standard error response model.
|
|
393
|
-
example:
|
|
394
|
-
details:
|
|
395
|
-
api_key_format: Must start with 'up_'
|
|
396
|
-
min_length: 20
|
|
397
|
-
error: Invalid API key provided
|
|
398
|
-
error_code: AUTH_001
|
|
399
|
-
message: Authentication failed
|
|
400
|
-
success: false
|
|
401
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
402
|
-
properties:
|
|
403
|
-
details:
|
|
404
|
-
anyOf:
|
|
405
|
-
- additionalProperties: true
|
|
406
|
-
type: object
|
|
407
|
-
- type: null
|
|
408
|
-
description: Additional error details
|
|
409
|
-
title: Details
|
|
410
|
-
error:
|
|
411
|
-
description: Error message describing what went wrong
|
|
412
|
-
title: Error
|
|
413
|
-
type: string
|
|
414
|
-
error_code:
|
|
415
|
-
anyOf:
|
|
416
|
-
- type: string
|
|
417
|
-
- type: null
|
|
418
|
-
description: Machine-readable error code
|
|
419
|
-
title: Error Code
|
|
420
|
-
message:
|
|
421
|
-
anyOf:
|
|
422
|
-
- type: string
|
|
423
|
-
- type: null
|
|
424
|
-
description: Human-readable message about the operation
|
|
425
|
-
title: Message
|
|
426
|
-
success:
|
|
427
|
-
default: false
|
|
428
|
-
description: Always false for error responses
|
|
429
|
-
title: Success
|
|
430
|
-
type: boolean
|
|
431
|
-
timestamp:
|
|
432
|
-
anyOf:
|
|
433
|
-
- type: string
|
|
434
|
-
- type: null
|
|
435
|
-
description: ISO timestamp when response was generated
|
|
436
|
-
title: Timestamp
|
|
437
|
-
required:
|
|
438
|
-
- error
|
|
439
|
-
title: ErrorResponse
|
|
440
|
-
type: object
|
|
441
|
-
HTTPValidationError:
|
|
442
|
-
properties:
|
|
443
|
-
detail:
|
|
444
|
-
items:
|
|
445
|
-
$ref: '#/components/schemas/ValidationError'
|
|
446
|
-
title: Detail
|
|
447
|
-
type: array
|
|
448
|
-
title: HTTPValidationError
|
|
449
|
-
type: object
|
|
450
|
-
HealthResponse:
|
|
451
|
-
description: Health check response model.
|
|
452
|
-
example:
|
|
453
|
-
components:
|
|
454
|
-
database:
|
|
455
|
-
response_time_ms: 5
|
|
456
|
-
status: healthy
|
|
457
|
-
redis:
|
|
458
|
-
response_time_ms: 2
|
|
459
|
-
status: healthy
|
|
460
|
-
websocket:
|
|
461
|
-
active_connections: 42
|
|
462
|
-
status: healthy
|
|
463
|
-
service: unrealon-server
|
|
464
|
-
status: healthy
|
|
465
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
466
|
-
version: 3.0.0
|
|
467
|
-
properties:
|
|
468
|
-
components:
|
|
469
|
-
anyOf:
|
|
470
|
-
- additionalProperties:
|
|
471
|
-
additionalProperties: true
|
|
472
|
-
type: object
|
|
473
|
-
type: object
|
|
474
|
-
- type: null
|
|
475
|
-
description: Health status of individual components
|
|
476
|
-
title: Components
|
|
477
|
-
service:
|
|
478
|
-
description: Service name
|
|
479
|
-
examples:
|
|
480
|
-
- unrealon-server
|
|
481
|
-
title: Service
|
|
482
|
-
type: string
|
|
483
|
-
status:
|
|
484
|
-
description: Overall health status
|
|
485
|
-
examples:
|
|
486
|
-
- healthy
|
|
487
|
-
- unhealthy
|
|
488
|
-
title: Status
|
|
489
|
-
type: string
|
|
490
|
-
timestamp:
|
|
491
|
-
description: Health check timestamp
|
|
492
|
-
title: Timestamp
|
|
493
|
-
type: string
|
|
494
|
-
version:
|
|
495
|
-
description: Service version
|
|
496
|
-
examples:
|
|
497
|
-
- 3.0.0
|
|
498
|
-
title: Version
|
|
499
|
-
type: string
|
|
500
|
-
required:
|
|
501
|
-
- status
|
|
502
|
-
- service
|
|
503
|
-
- version
|
|
504
|
-
- timestamp
|
|
505
|
-
title: HealthResponse
|
|
506
|
-
type: object
|
|
507
|
-
HealthStatus:
|
|
508
|
-
description: Pydantic model for WebSocket service health status.
|
|
509
|
-
example:
|
|
510
|
-
active_connections: 150
|
|
511
|
-
active_rooms: 12
|
|
512
|
-
connected_developers: 105
|
|
513
|
-
connected_parsers: 45
|
|
514
|
-
max_connections: 1000
|
|
515
|
-
metrics:
|
|
516
|
-
connections_closed: 1100
|
|
517
|
-
connections_opened: 1250
|
|
518
|
-
messages_received: 12300
|
|
519
|
-
messages_sent: 15450
|
|
520
|
-
status: healthy
|
|
521
|
-
websocket_server: socket.io
|
|
522
|
-
properties:
|
|
523
|
-
active_connections:
|
|
524
|
-
description: Number of active connections
|
|
525
|
-
title: Active Connections
|
|
526
|
-
type: integer
|
|
527
|
-
active_rooms:
|
|
528
|
-
description: Number of active rooms
|
|
529
|
-
title: Active Rooms
|
|
530
|
-
type: integer
|
|
531
|
-
connected_developers:
|
|
532
|
-
description: Number of connected developers
|
|
533
|
-
title: Connected Developers
|
|
534
|
-
type: integer
|
|
535
|
-
connected_parsers:
|
|
536
|
-
description: Number of connected parsers
|
|
537
|
-
title: Connected Parsers
|
|
538
|
-
type: integer
|
|
539
|
-
error:
|
|
540
|
-
anyOf:
|
|
541
|
-
- type: string
|
|
542
|
-
- type: null
|
|
543
|
-
description: Error message if unhealthy
|
|
544
|
-
title: Error
|
|
545
|
-
max_connections:
|
|
546
|
-
description: Maximum allowed connections
|
|
547
|
-
title: Max Connections
|
|
548
|
-
type: integer
|
|
549
|
-
metrics:
|
|
550
|
-
$ref: '#/components/schemas/WebSocketMetrics'
|
|
551
|
-
description: Performance metrics
|
|
552
|
-
status:
|
|
553
|
-
description: Health status
|
|
554
|
-
title: Status
|
|
555
|
-
type: string
|
|
556
|
-
websocket_server:
|
|
557
|
-
default: socket.io
|
|
558
|
-
description: WebSocket server type
|
|
559
|
-
title: Websocket Server
|
|
560
|
-
type: string
|
|
561
|
-
required:
|
|
562
|
-
- status
|
|
563
|
-
- active_connections
|
|
564
|
-
- connected_parsers
|
|
565
|
-
- connected_developers
|
|
566
|
-
- active_rooms
|
|
567
|
-
- max_connections
|
|
568
|
-
title: HealthStatus
|
|
569
|
-
type: object
|
|
570
|
-
LogLevel:
|
|
571
|
-
description: Log level enumeration.
|
|
572
|
-
enum:
|
|
573
|
-
- debug
|
|
574
|
-
- info
|
|
575
|
-
- warning
|
|
576
|
-
- error
|
|
577
|
-
- critical
|
|
578
|
-
title: LogLevel
|
|
579
|
-
type: string
|
|
580
|
-
LoggingRequest:
|
|
581
|
-
description: Request for logging operation.
|
|
582
|
-
properties:
|
|
583
|
-
context:
|
|
584
|
-
additionalProperties: true
|
|
585
|
-
description: Additional context
|
|
586
|
-
title: Context
|
|
587
|
-
type: object
|
|
588
|
-
level:
|
|
589
|
-
$ref: '#/components/schemas/LogLevel'
|
|
590
|
-
description: Log level
|
|
591
|
-
message:
|
|
592
|
-
description: Log message
|
|
593
|
-
maxLength: 10000
|
|
594
|
-
minLength: 1
|
|
595
|
-
title: Message
|
|
596
|
-
type: string
|
|
597
|
-
session_id:
|
|
598
|
-
anyOf:
|
|
599
|
-
- type: string
|
|
600
|
-
- type: null
|
|
601
|
-
description: Session ID (auto-generated if not provided)
|
|
602
|
-
title: Session Id
|
|
603
|
-
source:
|
|
604
|
-
description: Source code location
|
|
605
|
-
title: Source
|
|
606
|
-
type: string
|
|
607
|
-
tags:
|
|
608
|
-
description: Log tags
|
|
609
|
-
items:
|
|
610
|
-
type: string
|
|
611
|
-
title: Tags
|
|
612
|
-
type: array
|
|
613
|
-
required:
|
|
614
|
-
- level
|
|
615
|
-
- message
|
|
616
|
-
- source
|
|
617
|
-
title: LoggingRequest
|
|
618
|
-
type: object
|
|
619
|
-
LoggingResponse:
|
|
620
|
-
description: Response from logging operation.
|
|
621
|
-
properties:
|
|
622
|
-
entry_id:
|
|
623
|
-
anyOf:
|
|
624
|
-
- type: string
|
|
625
|
-
- type: null
|
|
626
|
-
description: Log entry identifier
|
|
627
|
-
title: Entry Id
|
|
628
|
-
error:
|
|
629
|
-
anyOf:
|
|
630
|
-
- type: string
|
|
631
|
-
- type: null
|
|
632
|
-
description: Error message if failed
|
|
633
|
-
title: Error
|
|
634
|
-
message:
|
|
635
|
-
description: Response message
|
|
636
|
-
title: Message
|
|
637
|
-
type: string
|
|
638
|
-
session_id:
|
|
639
|
-
description: Session identifier
|
|
640
|
-
title: Session Id
|
|
641
|
-
type: string
|
|
642
|
-
success:
|
|
643
|
-
description: Operation success status
|
|
644
|
-
title: Success
|
|
645
|
-
type: boolean
|
|
646
|
-
required:
|
|
647
|
-
- success
|
|
648
|
-
- session_id
|
|
649
|
-
- message
|
|
650
|
-
title: LoggingResponse
|
|
651
|
-
type: object
|
|
652
|
-
MaintenanceMode:
|
|
653
|
-
description: Maintenance mode types.
|
|
654
|
-
enum:
|
|
655
|
-
- full_system
|
|
656
|
-
- read_only
|
|
657
|
-
- partial_service
|
|
658
|
-
- scheduled_restart
|
|
659
|
-
title: MaintenanceMode
|
|
660
|
-
type: string
|
|
661
|
-
MaintenanceModeRequest:
|
|
662
|
-
additionalProperties: false
|
|
663
|
-
description: Request to manage maintenance mode.
|
|
664
|
-
properties:
|
|
665
|
-
admin_context:
|
|
666
|
-
anyOf:
|
|
667
|
-
- additionalProperties: true
|
|
668
|
-
type: object
|
|
669
|
-
- type: null
|
|
670
|
-
description: Admin context metadata
|
|
671
|
-
title: Admin Context
|
|
672
|
-
affected_services:
|
|
673
|
-
anyOf:
|
|
674
|
-
- items:
|
|
675
|
-
type: string
|
|
676
|
-
type: array
|
|
677
|
-
- type: null
|
|
678
|
-
description: List of affected services (for partial maintenance)
|
|
679
|
-
title: Affected Services
|
|
680
|
-
enable:
|
|
681
|
-
description: Whether to enable or disable maintenance mode
|
|
682
|
-
title: Enable
|
|
683
|
-
type: boolean
|
|
684
|
-
estimated_duration_minutes:
|
|
685
|
-
anyOf:
|
|
686
|
-
- maximum: 1440.0
|
|
687
|
-
minimum: 1.0
|
|
688
|
-
type: integer
|
|
689
|
-
- type: null
|
|
690
|
-
description: Estimated maintenance duration
|
|
691
|
-
title: Estimated Duration Minutes
|
|
692
|
-
grace_period_minutes:
|
|
693
|
-
default: 5
|
|
694
|
-
description: Grace period before maintenance starts
|
|
695
|
-
maximum: 60.0
|
|
696
|
-
minimum: 0.0
|
|
697
|
-
title: Grace Period Minutes
|
|
698
|
-
type: integer
|
|
699
|
-
mode:
|
|
700
|
-
$ref: '#/components/schemas/MaintenanceMode'
|
|
701
|
-
default: full_system
|
|
702
|
-
description: Type of maintenance mode
|
|
703
|
-
notify_users:
|
|
704
|
-
default: true
|
|
705
|
-
description: Whether to notify users about maintenance
|
|
706
|
-
title: Notify Users
|
|
707
|
-
type: boolean
|
|
708
|
-
reason:
|
|
709
|
-
description: Reason for maintenance
|
|
710
|
-
maxLength: 500
|
|
711
|
-
minLength: 5
|
|
712
|
-
title: Reason
|
|
713
|
-
type: string
|
|
714
|
-
request_id:
|
|
715
|
-
anyOf:
|
|
716
|
-
- type: string
|
|
717
|
-
- type: null
|
|
718
|
-
description: Optional request tracking ID
|
|
719
|
-
title: Request Id
|
|
720
|
-
required:
|
|
721
|
-
- enable
|
|
722
|
-
- reason
|
|
723
|
-
title: MaintenanceModeRequest
|
|
724
|
-
type: object
|
|
725
|
-
MaintenanceStatusResponse:
|
|
726
|
-
description: Current maintenance status response.
|
|
727
|
-
properties:
|
|
728
|
-
affected_services:
|
|
729
|
-
description: Currently affected services
|
|
730
|
-
items:
|
|
731
|
-
type: string
|
|
732
|
-
title: Affected Services
|
|
733
|
-
type: array
|
|
734
|
-
data:
|
|
735
|
-
anyOf:
|
|
736
|
-
- additionalProperties: true
|
|
737
|
-
type: object
|
|
738
|
-
- type: null
|
|
739
|
-
description: Optional response data
|
|
740
|
-
title: Data
|
|
741
|
-
estimated_end:
|
|
742
|
-
anyOf:
|
|
743
|
-
- format: date-time
|
|
744
|
-
type: string
|
|
745
|
-
- type: null
|
|
746
|
-
description: Estimated maintenance end time
|
|
747
|
-
title: Estimated End
|
|
748
|
-
grace_period_remaining:
|
|
749
|
-
anyOf:
|
|
750
|
-
- minimum: 0.0
|
|
751
|
-
type: integer
|
|
752
|
-
- type: null
|
|
753
|
-
description: Remaining grace period in seconds
|
|
754
|
-
title: Grace Period Remaining
|
|
755
|
-
maintenance_active:
|
|
756
|
-
description: Whether maintenance mode is currently active
|
|
757
|
-
title: Maintenance Active
|
|
758
|
-
type: boolean
|
|
759
|
-
message:
|
|
760
|
-
description: Success message
|
|
761
|
-
title: Message
|
|
762
|
-
type: string
|
|
763
|
-
mode:
|
|
764
|
-
anyOf:
|
|
765
|
-
- $ref: '#/components/schemas/MaintenanceMode'
|
|
766
|
-
- type: null
|
|
767
|
-
description: Current maintenance mode type
|
|
768
|
-
reason:
|
|
769
|
-
anyOf:
|
|
770
|
-
- type: string
|
|
771
|
-
- type: null
|
|
772
|
-
description: Current maintenance reason
|
|
773
|
-
title: Reason
|
|
774
|
-
request_id:
|
|
775
|
-
anyOf:
|
|
776
|
-
- type: string
|
|
777
|
-
- type: null
|
|
778
|
-
description: Original request tracking ID
|
|
779
|
-
title: Request Id
|
|
780
|
-
started_at:
|
|
781
|
-
anyOf:
|
|
782
|
-
- format: date-time
|
|
783
|
-
type: string
|
|
784
|
-
- type: null
|
|
785
|
-
description: Maintenance start timestamp
|
|
786
|
-
title: Started At
|
|
787
|
-
success:
|
|
788
|
-
default: true
|
|
789
|
-
description: Operation success status
|
|
790
|
-
title: Success
|
|
791
|
-
type: boolean
|
|
792
|
-
timestamp:
|
|
793
|
-
description: Response timestamp
|
|
794
|
-
format: date-time
|
|
795
|
-
title: Timestamp
|
|
796
|
-
type: string
|
|
797
|
-
required:
|
|
798
|
-
- message
|
|
799
|
-
- maintenance_active
|
|
800
|
-
title: MaintenanceStatusResponse
|
|
801
|
-
type: object
|
|
802
|
-
ParserCommandRequest:
|
|
803
|
-
description: Request model for sending commands to parsers.
|
|
804
|
-
example:
|
|
805
|
-
callback_url: https://your-app.com/webhooks/parser-complete
|
|
806
|
-
command: scrape_listings
|
|
807
|
-
metadata:
|
|
808
|
-
request_id: req_12345
|
|
809
|
-
user_id: user_67890
|
|
810
|
-
parameters:
|
|
811
|
-
location: Seoul
|
|
812
|
-
make: Toyota
|
|
813
|
-
max_results: 50
|
|
814
|
-
model: Camry
|
|
815
|
-
year_from: 2020
|
|
816
|
-
year_to: 2024
|
|
817
|
-
priority: normal
|
|
818
|
-
timeout: 300
|
|
819
|
-
properties:
|
|
820
|
-
callback_url:
|
|
821
|
-
anyOf:
|
|
822
|
-
- type: string
|
|
823
|
-
- type: null
|
|
824
|
-
description: URL to receive command completion notification
|
|
825
|
-
title: Callback Url
|
|
826
|
-
command:
|
|
827
|
-
description: Command to execute
|
|
828
|
-
examples:
|
|
829
|
-
- scrape_listings
|
|
830
|
-
- get_car_details
|
|
831
|
-
- search_by_criteria
|
|
832
|
-
minLength: 1
|
|
833
|
-
title: Command
|
|
834
|
-
type: string
|
|
835
|
-
metadata:
|
|
836
|
-
anyOf:
|
|
837
|
-
- additionalProperties: true
|
|
838
|
-
type: object
|
|
839
|
-
- type: null
|
|
840
|
-
description: Additional metadata for the command
|
|
841
|
-
title: Metadata
|
|
842
|
-
parameters:
|
|
843
|
-
additionalProperties: true
|
|
844
|
-
description: Command parameters
|
|
845
|
-
title: Parameters
|
|
846
|
-
type: object
|
|
847
|
-
priority:
|
|
848
|
-
default: normal
|
|
849
|
-
description: Command priority
|
|
850
|
-
examples:
|
|
851
|
-
- low
|
|
852
|
-
- normal
|
|
853
|
-
- high
|
|
854
|
-
- urgent
|
|
855
|
-
title: Priority
|
|
856
|
-
type: string
|
|
857
|
-
timeout:
|
|
858
|
-
default: 300
|
|
859
|
-
description: Command timeout in seconds
|
|
860
|
-
maximum: 3600.0
|
|
861
|
-
minimum: 1.0
|
|
862
|
-
title: Timeout
|
|
863
|
-
type: integer
|
|
864
|
-
required:
|
|
865
|
-
- command
|
|
866
|
-
title: ParserCommandRequest
|
|
867
|
-
type: object
|
|
868
|
-
ParserMessageResponse:
|
|
869
|
-
description: Response model for parser message operations.
|
|
870
|
-
example:
|
|
871
|
-
event: command
|
|
872
|
-
message_sent: true
|
|
873
|
-
parser_id: automotive_parser_001
|
|
874
|
-
success: true
|
|
875
|
-
properties:
|
|
876
|
-
event:
|
|
877
|
-
description: Event type
|
|
878
|
-
title: Event
|
|
879
|
-
type: string
|
|
880
|
-
message_sent:
|
|
881
|
-
description: Whether message was sent
|
|
882
|
-
title: Message Sent
|
|
883
|
-
type: boolean
|
|
884
|
-
parser_id:
|
|
885
|
-
description: Target parser ID
|
|
886
|
-
title: Parser Id
|
|
887
|
-
type: string
|
|
888
|
-
success:
|
|
889
|
-
description: Whether message was sent
|
|
890
|
-
title: Success
|
|
891
|
-
type: boolean
|
|
892
|
-
required:
|
|
893
|
-
- success
|
|
894
|
-
- parser_id
|
|
895
|
-
- event
|
|
896
|
-
- message_sent
|
|
897
|
-
title: ParserMessageResponse
|
|
898
|
-
type: object
|
|
899
|
-
ParserRegistrationRequest:
|
|
900
|
-
description: Request DTO for parser registration.
|
|
901
|
-
properties:
|
|
902
|
-
api_key:
|
|
903
|
-
description: Developer API key for authentication
|
|
904
|
-
minLength: 20
|
|
905
|
-
title: Api Key
|
|
906
|
-
type: string
|
|
907
|
-
metadata:
|
|
908
|
-
additionalProperties: true
|
|
909
|
-
description: Additional parser metadata
|
|
910
|
-
title: Metadata
|
|
911
|
-
type: object
|
|
912
|
-
parser_id:
|
|
913
|
-
description: Unique parser identifier
|
|
914
|
-
maxLength: 100
|
|
915
|
-
minLength: 3
|
|
916
|
-
title: Parser Id
|
|
917
|
-
type: string
|
|
918
|
-
parser_name:
|
|
919
|
-
description: Human-readable parser name
|
|
920
|
-
maxLength: 200
|
|
921
|
-
minLength: 1
|
|
922
|
-
title: Parser Name
|
|
923
|
-
type: string
|
|
924
|
-
parser_type:
|
|
925
|
-
$ref: '#/components/schemas/ParserType'
|
|
926
|
-
description: Type of parser (encar, etc.)
|
|
927
|
-
services:
|
|
928
|
-
description: List of services to register
|
|
929
|
-
items:
|
|
930
|
-
$ref: '#/components/schemas/ServiceRegistrationDto'
|
|
931
|
-
title: Services
|
|
932
|
-
type: array
|
|
933
|
-
required:
|
|
934
|
-
- parser_id
|
|
935
|
-
- parser_name
|
|
936
|
-
- parser_type
|
|
937
|
-
- api_key
|
|
938
|
-
title: ParserRegistrationRequest
|
|
939
|
-
type: object
|
|
940
|
-
ParserRegistrationResponse:
|
|
941
|
-
description: Response DTO for parser registration.
|
|
942
|
-
properties:
|
|
943
|
-
developer_id:
|
|
944
|
-
anyOf:
|
|
945
|
-
- type: string
|
|
946
|
-
- type: null
|
|
947
|
-
description: Developer ID who registered the parser
|
|
948
|
-
title: Developer Id
|
|
949
|
-
error:
|
|
950
|
-
anyOf:
|
|
951
|
-
- type: string
|
|
952
|
-
- type: null
|
|
953
|
-
description: Error message if registration failed
|
|
954
|
-
title: Error
|
|
955
|
-
message:
|
|
956
|
-
default: ''
|
|
957
|
-
description: Success or informational message
|
|
958
|
-
title: Message
|
|
959
|
-
type: string
|
|
960
|
-
parser_id:
|
|
961
|
-
anyOf:
|
|
962
|
-
- type: string
|
|
963
|
-
- type: null
|
|
964
|
-
description: Parser ID if registration successful
|
|
965
|
-
title: Parser Id
|
|
966
|
-
registered_services:
|
|
967
|
-
description: List of successfully registered service IDs
|
|
968
|
-
items:
|
|
969
|
-
type: string
|
|
970
|
-
title: Registered Services
|
|
971
|
-
type: array
|
|
972
|
-
success:
|
|
973
|
-
description: Whether the registration was successful
|
|
974
|
-
title: Success
|
|
975
|
-
type: boolean
|
|
976
|
-
required:
|
|
977
|
-
- success
|
|
978
|
-
title: ParserRegistrationResponse
|
|
979
|
-
type: object
|
|
980
|
-
ParserType:
|
|
981
|
-
description: Types of parsers supported.
|
|
982
|
-
enum:
|
|
983
|
-
- encar
|
|
984
|
-
- mobile
|
|
985
|
-
- realestate
|
|
986
|
-
- custom
|
|
987
|
-
- general
|
|
988
|
-
title: ParserType
|
|
989
|
-
type: string
|
|
990
|
-
ProxyBlockRequest:
|
|
991
|
-
description: Request to report blocked proxy.
|
|
992
|
-
properties:
|
|
993
|
-
parser_id:
|
|
994
|
-
description: Parser reporting the block
|
|
995
|
-
title: Parser Id
|
|
996
|
-
type: string
|
|
997
|
-
proxy_id:
|
|
998
|
-
description: Blocked proxy identifier
|
|
999
|
-
title: Proxy Id
|
|
1000
|
-
type: string
|
|
1001
|
-
reason:
|
|
1002
|
-
anyOf:
|
|
1003
|
-
- type: string
|
|
1004
|
-
- type: null
|
|
1005
|
-
description: Reason for blocking
|
|
1006
|
-
title: Reason
|
|
1007
|
-
required:
|
|
1008
|
-
- parser_id
|
|
1009
|
-
- proxy_id
|
|
1010
|
-
title: ProxyBlockRequest
|
|
1011
|
-
type: object
|
|
1012
|
-
ProxyEndpointResponse:
|
|
1013
|
-
properties:
|
|
1014
|
-
connection_string:
|
|
1015
|
-
anyOf:
|
|
1016
|
-
- type: string
|
|
1017
|
-
- type: null
|
|
1018
|
-
title: Connection String
|
|
1019
|
-
host:
|
|
1020
|
-
title: Host
|
|
1021
|
-
type: string
|
|
1022
|
-
port:
|
|
1023
|
-
title: Port
|
|
1024
|
-
type: integer
|
|
1025
|
-
protocol:
|
|
1026
|
-
title: Protocol
|
|
1027
|
-
type: string
|
|
1028
|
-
required:
|
|
1029
|
-
- host
|
|
1030
|
-
- port
|
|
1031
|
-
- protocol
|
|
1032
|
-
title: ProxyEndpointResponse
|
|
1033
|
-
type: object
|
|
1034
|
-
ProxyListResponse:
|
|
1035
|
-
description: Response model for proxy list endpoint.
|
|
1036
|
-
properties:
|
|
1037
|
-
items:
|
|
1038
|
-
description: List of proxy objects
|
|
1039
|
-
items:
|
|
1040
|
-
$ref: '#/components/schemas/ProxyResponse'
|
|
1041
|
-
title: Items
|
|
1042
|
-
type: array
|
|
1043
|
-
total:
|
|
1044
|
-
description: Total number of proxies
|
|
1045
|
-
minimum: 0.0
|
|
1046
|
-
title: Total
|
|
1047
|
-
type: integer
|
|
1048
|
-
required:
|
|
1049
|
-
- items
|
|
1050
|
-
- total
|
|
1051
|
-
title: ProxyListResponse
|
|
1052
|
-
type: object
|
|
1053
|
-
ProxyProvider:
|
|
1054
|
-
description: Supported proxy providers.
|
|
1055
|
-
enum:
|
|
1056
|
-
- proxy6
|
|
1057
|
-
- proxy_cheap
|
|
1058
|
-
- proxy_seller
|
|
1059
|
-
- oxylabs
|
|
1060
|
-
- bright_data
|
|
1061
|
-
title: ProxyProvider
|
|
1062
|
-
type: string
|
|
1063
|
-
ProxyPurchaseRequest:
|
|
1064
|
-
description: Request to purchase proxies.
|
|
1065
|
-
properties:
|
|
1066
|
-
count:
|
|
1067
|
-
description: Number of proxies to purchase
|
|
1068
|
-
maximum: 1000.0
|
|
1069
|
-
minimum: 1.0
|
|
1070
|
-
title: Count
|
|
1071
|
-
type: integer
|
|
1072
|
-
country:
|
|
1073
|
-
description: Target country code
|
|
1074
|
-
maxLength: 3
|
|
1075
|
-
minLength: 2
|
|
1076
|
-
title: Country
|
|
1077
|
-
type: string
|
|
1078
|
-
description:
|
|
1079
|
-
anyOf:
|
|
1080
|
-
- type: string
|
|
1081
|
-
- type: null
|
|
1082
|
-
description: Purchase description
|
|
1083
|
-
title: Description
|
|
1084
|
-
duration_days:
|
|
1085
|
-
description: Proxy duration in days
|
|
1086
|
-
maximum: 365.0
|
|
1087
|
-
minimum: 1.0
|
|
1088
|
-
title: Duration Days
|
|
1089
|
-
type: integer
|
|
1090
|
-
provider:
|
|
1091
|
-
description: Proxy provider
|
|
1092
|
-
title: Provider
|
|
1093
|
-
type: string
|
|
1094
|
-
shared:
|
|
1095
|
-
default: false
|
|
1096
|
-
description: Whether to purchase shared proxies
|
|
1097
|
-
title: Shared
|
|
1098
|
-
type: boolean
|
|
1099
|
-
required:
|
|
1100
|
-
- provider
|
|
1101
|
-
- count
|
|
1102
|
-
- duration_days
|
|
1103
|
-
- country
|
|
1104
|
-
title: ProxyPurchaseRequest
|
|
1105
|
-
type: object
|
|
1106
|
-
ProxyResponse:
|
|
1107
|
-
properties:
|
|
1108
|
-
city:
|
|
1109
|
-
anyOf:
|
|
1110
|
-
- type: string
|
|
1111
|
-
- type: null
|
|
1112
|
-
title: City
|
|
1113
|
-
country:
|
|
1114
|
-
anyOf:
|
|
1115
|
-
- type: string
|
|
1116
|
-
- type: null
|
|
1117
|
-
title: Country
|
|
1118
|
-
created_at:
|
|
1119
|
-
format: date-time
|
|
1120
|
-
title: Created At
|
|
1121
|
-
type: string
|
|
1122
|
-
display_name:
|
|
1123
|
-
anyOf:
|
|
1124
|
-
- type: string
|
|
1125
|
-
- type: null
|
|
1126
|
-
title: Display Name
|
|
1127
|
-
endpoint:
|
|
1128
|
-
$ref: '#/components/schemas/ProxyEndpointResponse'
|
|
1129
|
-
expires_at:
|
|
1130
|
-
anyOf:
|
|
1131
|
-
- format: date-time
|
|
1132
|
-
type: string
|
|
1133
|
-
- type: null
|
|
1134
|
-
title: Expires At
|
|
1135
|
-
is_expired:
|
|
1136
|
-
anyOf:
|
|
1137
|
-
- type: boolean
|
|
1138
|
-
- type: null
|
|
1139
|
-
title: Is Expired
|
|
1140
|
-
is_healthy:
|
|
1141
|
-
anyOf:
|
|
1142
|
-
- type: boolean
|
|
1143
|
-
- type: null
|
|
1144
|
-
title: Is Healthy
|
|
1145
|
-
metadata:
|
|
1146
|
-
additionalProperties: true
|
|
1147
|
-
default: {}
|
|
1148
|
-
title: Metadata
|
|
1149
|
-
type: object
|
|
1150
|
-
provider:
|
|
1151
|
-
title: Provider
|
|
1152
|
-
type: string
|
|
1153
|
-
provider_proxy_id:
|
|
1154
|
-
anyOf:
|
|
1155
|
-
- type: string
|
|
1156
|
-
- type: null
|
|
1157
|
-
title: Provider Proxy Id
|
|
1158
|
-
proxy_id:
|
|
1159
|
-
title: Proxy Id
|
|
1160
|
-
type: string
|
|
1161
|
-
region:
|
|
1162
|
-
anyOf:
|
|
1163
|
-
- type: string
|
|
1164
|
-
- type: null
|
|
1165
|
-
title: Region
|
|
1166
|
-
status:
|
|
1167
|
-
title: Status
|
|
1168
|
-
type: string
|
|
1169
|
-
tags:
|
|
1170
|
-
default: []
|
|
1171
|
-
items:
|
|
1172
|
-
type: string
|
|
1173
|
-
title: Tags
|
|
1174
|
-
type: array
|
|
1175
|
-
usage_stats:
|
|
1176
|
-
$ref: '#/components/schemas/ProxyUsageStatsResponse'
|
|
1177
|
-
required:
|
|
1178
|
-
- proxy_id
|
|
1179
|
-
- provider
|
|
1180
|
-
- endpoint
|
|
1181
|
-
- status
|
|
1182
|
-
- usage_stats
|
|
1183
|
-
- created_at
|
|
1184
|
-
title: ProxyResponse
|
|
1185
|
-
type: object
|
|
1186
|
-
ProxyRotationRequest:
|
|
1187
|
-
description: Request for proxy rotation via API.
|
|
1188
|
-
properties:
|
|
1189
|
-
country:
|
|
1190
|
-
anyOf:
|
|
1191
|
-
- type: string
|
|
1192
|
-
- type: null
|
|
1193
|
-
description: Preferred country code
|
|
1194
|
-
title: Country
|
|
1195
|
-
exclude_proxy_ids:
|
|
1196
|
-
description: Proxy IDs to exclude
|
|
1197
|
-
items:
|
|
1198
|
-
type: string
|
|
1199
|
-
title: Exclude Proxy Ids
|
|
1200
|
-
type: array
|
|
1201
|
-
force_rotation:
|
|
1202
|
-
default: false
|
|
1203
|
-
description: Force new proxy selection
|
|
1204
|
-
title: Force Rotation
|
|
1205
|
-
type: boolean
|
|
1206
|
-
parser_id:
|
|
1207
|
-
description: Parser requesting the proxy
|
|
1208
|
-
title: Parser Id
|
|
1209
|
-
type: string
|
|
1210
|
-
strategy:
|
|
1211
|
-
default: success_rate
|
|
1212
|
-
description: Rotation strategy
|
|
1213
|
-
title: Strategy
|
|
1214
|
-
type: string
|
|
1215
|
-
required:
|
|
1216
|
-
- parser_id
|
|
1217
|
-
title: ProxyRotationRequest
|
|
1218
|
-
type: object
|
|
1219
|
-
ProxyStatus:
|
|
1220
|
-
description: Proxy status enumeration.
|
|
1221
|
-
enum:
|
|
1222
|
-
- active
|
|
1223
|
-
- inactive
|
|
1224
|
-
- expired
|
|
1225
|
-
- blocked
|
|
1226
|
-
- error
|
|
1227
|
-
title: ProxyStatus
|
|
1228
|
-
type: string
|
|
1229
|
-
ProxyUsageRequest:
|
|
1230
|
-
description: Request to record proxy usage.
|
|
1231
|
-
properties:
|
|
1232
|
-
error_reason:
|
|
1233
|
-
anyOf:
|
|
1234
|
-
- type: string
|
|
1235
|
-
- type: null
|
|
1236
|
-
description: Reason for failure if not successful
|
|
1237
|
-
title: Error Reason
|
|
1238
|
-
response_time_ms:
|
|
1239
|
-
anyOf:
|
|
1240
|
-
- type: number
|
|
1241
|
-
- type: null
|
|
1242
|
-
description: Response time in milliseconds
|
|
1243
|
-
title: Response Time Ms
|
|
1244
|
-
success:
|
|
1245
|
-
description: Whether the request was successful
|
|
1246
|
-
title: Success
|
|
1247
|
-
type: boolean
|
|
1248
|
-
required:
|
|
1249
|
-
- success
|
|
1250
|
-
title: ProxyUsageRequest
|
|
1251
|
-
type: object
|
|
1252
|
-
ProxyUsageStatsResponse:
|
|
1253
|
-
properties:
|
|
1254
|
-
avg_response_time_ms:
|
|
1255
|
-
anyOf:
|
|
1256
|
-
- minimum: 0.0
|
|
1257
|
-
type: number
|
|
1258
|
-
- type: null
|
|
1259
|
-
title: Avg Response Time Ms
|
|
1260
|
-
consecutive_failures:
|
|
1261
|
-
minimum: 0.0
|
|
1262
|
-
title: Consecutive Failures
|
|
1263
|
-
type: integer
|
|
1264
|
-
failed_requests:
|
|
1265
|
-
minimum: 0.0
|
|
1266
|
-
title: Failed Requests
|
|
1267
|
-
type: integer
|
|
1268
|
-
last_used_at:
|
|
1269
|
-
anyOf:
|
|
1270
|
-
- format: date-time
|
|
1271
|
-
type: string
|
|
1272
|
-
- type: null
|
|
1273
|
-
title: Last Used At
|
|
1274
|
-
success_rate:
|
|
1275
|
-
maximum: 100.0
|
|
1276
|
-
minimum: 0.0
|
|
1277
|
-
title: Success Rate
|
|
1278
|
-
type: number
|
|
1279
|
-
successful_requests:
|
|
1280
|
-
minimum: 0.0
|
|
1281
|
-
title: Successful Requests
|
|
1282
|
-
type: integer
|
|
1283
|
-
total_requests:
|
|
1284
|
-
minimum: 0.0
|
|
1285
|
-
title: Total Requests
|
|
1286
|
-
type: integer
|
|
1287
|
-
required:
|
|
1288
|
-
- success_rate
|
|
1289
|
-
- total_requests
|
|
1290
|
-
- successful_requests
|
|
1291
|
-
- failed_requests
|
|
1292
|
-
- consecutive_failures
|
|
1293
|
-
title: ProxyUsageStatsResponse
|
|
1294
|
-
type: object
|
|
1295
|
-
ServiceRegistrationDto:
|
|
1296
|
-
description: DTO for service registration.
|
|
1297
|
-
properties:
|
|
1298
|
-
capabilities:
|
|
1299
|
-
additionalProperties: true
|
|
1300
|
-
description: Service capabilities configuration
|
|
1301
|
-
title: Capabilities
|
|
1302
|
-
type: object
|
|
1303
|
-
config:
|
|
1304
|
-
additionalProperties: true
|
|
1305
|
-
description: Service configuration parameters
|
|
1306
|
-
title: Config
|
|
1307
|
-
type: object
|
|
1308
|
-
service_id:
|
|
1309
|
-
description: Unique service identifier
|
|
1310
|
-
minLength: 1
|
|
1311
|
-
title: Service Id
|
|
1312
|
-
type: string
|
|
1313
|
-
service_name:
|
|
1314
|
-
description: Human-readable service name
|
|
1315
|
-
minLength: 1
|
|
1316
|
-
title: Service Name
|
|
1317
|
-
type: string
|
|
1318
|
-
service_type:
|
|
1319
|
-
description: Type of service (scraper, processor, etc.)
|
|
1320
|
-
minLength: 1
|
|
1321
|
-
title: Service Type
|
|
1322
|
-
type: string
|
|
1323
|
-
required:
|
|
1324
|
-
- service_id
|
|
1325
|
-
- service_name
|
|
1326
|
-
- service_type
|
|
1327
|
-
title: ServiceRegistrationDto
|
|
1328
|
-
type: object
|
|
1329
|
-
ServiceStatsResponse:
|
|
1330
|
-
description: Base model for service statistics responses.
|
|
1331
|
-
properties:
|
|
1332
|
-
additional_metrics:
|
|
1333
|
-
additionalProperties: true
|
|
1334
|
-
description: Additional service-specific metrics
|
|
1335
|
-
title: Additional Metrics
|
|
1336
|
-
type: object
|
|
1337
|
-
error_rate:
|
|
1338
|
-
default: 0.0
|
|
1339
|
-
description: Error rate percentage
|
|
1340
|
-
title: Error Rate
|
|
1341
|
-
type: number
|
|
1342
|
-
errors_encountered:
|
|
1343
|
-
default: 0
|
|
1344
|
-
description: Total errors encountered
|
|
1345
|
-
title: Errors Encountered
|
|
1346
|
-
type: integer
|
|
1347
|
-
initialized:
|
|
1348
|
-
description: Whether service is initialized
|
|
1349
|
-
title: Initialized
|
|
1350
|
-
type: boolean
|
|
1351
|
-
last_operation:
|
|
1352
|
-
anyOf:
|
|
1353
|
-
- format: date-time
|
|
1354
|
-
type: string
|
|
1355
|
-
- type: null
|
|
1356
|
-
description: Timestamp of last operation
|
|
1357
|
-
title: Last Operation
|
|
1358
|
-
operations_performed:
|
|
1359
|
-
default: 0
|
|
1360
|
-
description: Total operations performed
|
|
1361
|
-
title: Operations Performed
|
|
1362
|
-
type: integer
|
|
1363
|
-
service_name:
|
|
1364
|
-
description: Name of the service
|
|
1365
|
-
title: Service Name
|
|
1366
|
-
type: string
|
|
1367
|
-
status:
|
|
1368
|
-
default: healthy
|
|
1369
|
-
description: Service status
|
|
1370
|
-
title: Status
|
|
1371
|
-
type: string
|
|
1372
|
-
uptime_seconds:
|
|
1373
|
-
anyOf:
|
|
1374
|
-
- type: number
|
|
1375
|
-
- type: null
|
|
1376
|
-
description: Service uptime in seconds
|
|
1377
|
-
title: Uptime Seconds
|
|
1378
|
-
required:
|
|
1379
|
-
- service_name
|
|
1380
|
-
- initialized
|
|
1381
|
-
title: ServiceStatsResponse
|
|
1382
|
-
type: object
|
|
1383
|
-
SessionStartRequest:
|
|
1384
|
-
description: Request to start a new logging session.
|
|
1385
|
-
properties:
|
|
1386
|
-
auto_expire:
|
|
1387
|
-
default: true
|
|
1388
|
-
description: Auto-expire session
|
|
1389
|
-
title: Auto Expire
|
|
1390
|
-
type: boolean
|
|
1391
|
-
max_entries:
|
|
1392
|
-
default: 1000
|
|
1393
|
-
description: Maximum log entries
|
|
1394
|
-
maximum: 10000.0
|
|
1395
|
-
minimum: 1.0
|
|
1396
|
-
title: Max Entries
|
|
1397
|
-
type: integer
|
|
1398
|
-
metadata:
|
|
1399
|
-
additionalProperties: true
|
|
1400
|
-
description: Session metadata
|
|
1401
|
-
title: Metadata
|
|
1402
|
-
type: object
|
|
1403
|
-
retention_hours:
|
|
1404
|
-
default: 24
|
|
1405
|
-
description: Log retention hours
|
|
1406
|
-
maximum: 168.0
|
|
1407
|
-
minimum: 1.0
|
|
1408
|
-
title: Retention Hours
|
|
1409
|
-
type: integer
|
|
1410
|
-
tags:
|
|
1411
|
-
description: Session tags
|
|
1412
|
-
items:
|
|
1413
|
-
type: string
|
|
1414
|
-
title: Tags
|
|
1415
|
-
type: array
|
|
1416
|
-
title: SessionStartRequest
|
|
1417
|
-
type: object
|
|
1418
|
-
SuccessResponse:
|
|
1419
|
-
description: Standard success response model with automatic Pydantic object
|
|
1420
|
-
serialization.
|
|
1421
|
-
example:
|
|
1422
|
-
data:
|
|
1423
|
-
id: resource_123
|
|
1424
|
-
status: active
|
|
1425
|
-
message: Operation completed successfully
|
|
1426
|
-
success: true
|
|
1427
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
1428
|
-
properties:
|
|
1429
|
-
data:
|
|
1430
|
-
anyOf:
|
|
1431
|
-
- additionalProperties: true
|
|
1432
|
-
type: object
|
|
1433
|
-
- $ref: '#/components/schemas/BaseModel'
|
|
1434
|
-
- items:
|
|
1435
|
-
$ref: '#/components/schemas/BaseModel'
|
|
1436
|
-
type: array
|
|
1437
|
-
- items:
|
|
1438
|
-
additionalProperties: true
|
|
1439
|
-
type: object
|
|
1440
|
-
type: array
|
|
1441
|
-
- type: null
|
|
1442
|
-
description: Response data payload (auto-serializes Pydantic objects)
|
|
1443
|
-
title: Data
|
|
1444
|
-
message:
|
|
1445
|
-
anyOf:
|
|
1446
|
-
- type: string
|
|
1447
|
-
- type: null
|
|
1448
|
-
description: Human-readable message about the operation
|
|
1449
|
-
title: Message
|
|
1450
|
-
success:
|
|
1451
|
-
default: true
|
|
1452
|
-
description: Always true for success responses
|
|
1453
|
-
title: Success
|
|
1454
|
-
type: boolean
|
|
1455
|
-
timestamp:
|
|
1456
|
-
anyOf:
|
|
1457
|
-
- type: string
|
|
1458
|
-
- type: null
|
|
1459
|
-
description: ISO timestamp when response was generated
|
|
1460
|
-
title: Timestamp
|
|
1461
|
-
title: SuccessResponse
|
|
1462
|
-
type: object
|
|
1463
|
-
SystemNotificationResponse:
|
|
1464
|
-
description: Response model for system notification broadcast.
|
|
1465
|
-
example:
|
|
1466
|
-
broadcasted: true
|
|
1467
|
-
content: Scheduled maintenance will begin in 30 minutes
|
|
1468
|
-
priority: high
|
|
1469
|
-
success: true
|
|
1470
|
-
title: System Maintenance
|
|
1471
|
-
properties:
|
|
1472
|
-
broadcasted:
|
|
1473
|
-
description: Whether notification was broadcasted
|
|
1474
|
-
title: Broadcasted
|
|
1475
|
-
type: boolean
|
|
1476
|
-
content:
|
|
1477
|
-
description: Notification content
|
|
1478
|
-
title: Content
|
|
1479
|
-
type: string
|
|
1480
|
-
priority:
|
|
1481
|
-
description: Notification priority
|
|
1482
|
-
title: Priority
|
|
1483
|
-
type: string
|
|
1484
|
-
success:
|
|
1485
|
-
description: Whether notification was sent
|
|
1486
|
-
title: Success
|
|
1487
|
-
type: boolean
|
|
1488
|
-
title:
|
|
1489
|
-
description: Notification title
|
|
1490
|
-
title: Title
|
|
1491
|
-
type: string
|
|
1492
|
-
required:
|
|
1493
|
-
- success
|
|
1494
|
-
- title
|
|
1495
|
-
- content
|
|
1496
|
-
- priority
|
|
1497
|
-
- broadcasted
|
|
1498
|
-
title: SystemNotificationResponse
|
|
1499
|
-
type: object
|
|
1500
|
-
ValidationError:
|
|
1501
|
-
properties:
|
|
1502
|
-
loc:
|
|
1503
|
-
items:
|
|
1504
|
-
anyOf:
|
|
1505
|
-
- type: string
|
|
1506
|
-
- type: integer
|
|
1507
|
-
title: Location
|
|
1508
|
-
type: array
|
|
1509
|
-
msg:
|
|
1510
|
-
title: Message
|
|
1511
|
-
type: string
|
|
1512
|
-
type:
|
|
1513
|
-
title: Error Type
|
|
1514
|
-
type: string
|
|
1515
|
-
required:
|
|
1516
|
-
- loc
|
|
1517
|
-
- msg
|
|
1518
|
-
- type
|
|
1519
|
-
title: ValidationError
|
|
1520
|
-
type: object
|
|
1521
|
-
ValidationErrorResponse:
|
|
1522
|
-
description: Validation error response for request validation failures.
|
|
1523
|
-
example:
|
|
1524
|
-
error: Validation failed
|
|
1525
|
-
error_code: VALIDATION_ERROR
|
|
1526
|
-
success: false
|
|
1527
|
-
validation_errors:
|
|
1528
|
-
- constraint: min_length=1
|
|
1529
|
-
field: parser_name
|
|
1530
|
-
input: ''
|
|
1531
|
-
message: String too short
|
|
1532
|
-
- constraint: pattern=^up_
|
|
1533
|
-
field: api_key
|
|
1534
|
-
input: invalid_key
|
|
1535
|
-
message: API key must start with 'up_'
|
|
1536
|
-
properties:
|
|
1537
|
-
error:
|
|
1538
|
-
default: Validation failed
|
|
1539
|
-
description: Error message
|
|
1540
|
-
title: Error
|
|
1541
|
-
type: string
|
|
1542
|
-
error_code:
|
|
1543
|
-
default: VALIDATION_ERROR
|
|
1544
|
-
description: Error code
|
|
1545
|
-
title: Error Code
|
|
1546
|
-
type: string
|
|
1547
|
-
success:
|
|
1548
|
-
default: false
|
|
1549
|
-
description: Always false for validation errors
|
|
1550
|
-
title: Success
|
|
1551
|
-
type: boolean
|
|
1552
|
-
validation_errors:
|
|
1553
|
-
description: List of specific validation errors
|
|
1554
|
-
items:
|
|
1555
|
-
additionalProperties: true
|
|
1556
|
-
type: object
|
|
1557
|
-
title: Validation Errors
|
|
1558
|
-
type: array
|
|
1559
|
-
required:
|
|
1560
|
-
- validation_errors
|
|
1561
|
-
title: ValidationErrorResponse
|
|
1562
|
-
type: object
|
|
1563
|
-
WebSocketMetrics:
|
|
1564
|
-
description: Pydantic model for WebSocket performance metrics.
|
|
1565
|
-
example:
|
|
1566
|
-
connections_closed: 1100
|
|
1567
|
-
connections_opened: 1250
|
|
1568
|
-
messages_received: 12300
|
|
1569
|
-
messages_sent: 15450
|
|
1570
|
-
properties:
|
|
1571
|
-
connections_closed:
|
|
1572
|
-
default: 0
|
|
1573
|
-
description: Total connections closed
|
|
1574
|
-
title: Connections Closed
|
|
1575
|
-
type: integer
|
|
1576
|
-
connections_opened:
|
|
1577
|
-
default: 0
|
|
1578
|
-
description: Total connections opened
|
|
1579
|
-
title: Connections Opened
|
|
1580
|
-
type: integer
|
|
1581
|
-
messages_received:
|
|
1582
|
-
default: 0
|
|
1583
|
-
description: Total messages received
|
|
1584
|
-
title: Messages Received
|
|
1585
|
-
type: integer
|
|
1586
|
-
messages_sent:
|
|
1587
|
-
default: 0
|
|
1588
|
-
description: Total messages sent
|
|
1589
|
-
title: Messages Sent
|
|
1590
|
-
type: integer
|
|
1591
|
-
title: WebSocketMetrics
|
|
1592
|
-
type: object
|
|
1593
|
-
info:
|
|
1594
|
-
contact:
|
|
1595
|
-
email: support@unrealon.com
|
|
1596
|
-
name: UnrealOn Server Team
|
|
1597
|
-
url: https://unrealon.com/contact
|
|
1598
|
-
description: "\n # \U0001F680 UnrealOn Server v3.0 - Enterprise Parser Orchestration\
|
|
1599
|
-
\ Platform\n\n **The most advanced real-time parsing orchestration platform\
|
|
1600
|
-
\ built with Clean Architecture.**\n\n ## \U0001F3AF Overview\n\n \
|
|
1601
|
-
\ UnrealOn Server provides a comprehensive platform for managing and orchestrating\
|
|
1602
|
-
\ parsing services\n across multiple data sources with real-time WebSocket\
|
|
1603
|
-
\ communication, enterprise-grade security,\n and horizontal scalability.\n\
|
|
1604
|
-
\n ## \u2728 Key Features\n\n ### \U0001F504 Real-time Communication\n\
|
|
1605
|
-
\ - **WebSocket Integration**: Bi-directional real-time communication\n\
|
|
1606
|
-
\ - **Command Routing**: Intelligent command distribution to parsers\n\
|
|
1607
|
-
\ - **Live Status Updates**: Real-time parser and command status\n \
|
|
1608
|
-
\ - **Event Broadcasting**: Multi-room notification system\n\n ### \U0001F6E1\
|
|
1609
|
-
\uFE0F Enterprise Security\n - **API Key Authentication**: Secure access\
|
|
1610
|
-
\ control with developer permissions\n - **Rate Limiting**: Configurable\
|
|
1611
|
-
\ request throttling\n - **Input Validation**: Comprehensive request validation\
|
|
1612
|
-
\ with Pydantic v2\n - **Error Handling**: Detailed error responses with\
|
|
1613
|
-
\ troubleshooting info\n\n ### \U0001F4CA Parser Management\n -\
|
|
1614
|
-
\ **Dynamic Registration**: Self-service parser registration workflow\n \
|
|
1615
|
-
\ - **Health Monitoring**: Continuous parser health and performance tracking\n\
|
|
1616
|
-
\ - **Load Balancing**: Intelligent command distribution across parser\
|
|
1617
|
-
\ instances\n - **Auto-scaling**: Dynamic parser scaling based on workload\n\
|
|
1618
|
-
\n ### \U0001F527 Developer Experience\n - **OpenAPI Documentation**:\
|
|
1619
|
-
\ Complete API documentation with examples\n - **SDK Generation**: Auto-generated\
|
|
1620
|
-
\ client SDKs for multiple languages\n - **Testing Tools**: Built-in testing\
|
|
1621
|
-
\ and debugging capabilities\n - **Webhook Support**: Callback notifications\
|
|
1622
|
-
\ for asynchronous operations\n\n ## \U0001F3D7\uFE0F Architecture\n\n\
|
|
1623
|
-
\ Built following **Clean Architecture** principles with:\n - **Domain-Driven\
|
|
1624
|
-
\ Design**: Pure business logic in domain layer\n - **Dependency Injection**:\
|
|
1625
|
-
\ Centralized composition root with type safety\n - **CQRS Pattern**: Separate\
|
|
1626
|
-
\ read/write operations for optimal performance\n - **Event Sourcing**:\
|
|
1627
|
-
\ Complete audit trail of all operations\n\n ## \U0001F680 Getting Started\n\
|
|
1628
|
-
\n 1. **Get API Key**: Register as developer to receive API key\n \
|
|
1629
|
-
\ 2. **Register Parser**: Use `/api/v1/parsers/register` to register your parser\n\
|
|
1630
|
-
\ 3. **Connect WebSocket**: Establish WebSocket connection for real-time\
|
|
1631
|
-
\ communication\n 4. **Execute Commands**: Send commands via HTTP or WebSocket\n\
|
|
1632
|
-
\ 5. **Monitor Status**: Track parser health and command execution\n\n\
|
|
1633
|
-
\ ## \U0001F4DA API Endpoints\n\n ### Parser Management\n \
|
|
1634
|
-
\ - `POST /api/v1/parsers/register` - Register new parser\n - `GET /api/v1/parsers/`\
|
|
1635
|
-
\ - List registered parsers\n - `GET /api/v1/parsers/{id}` - Get parser\
|
|
1636
|
-
\ details\n - `POST /api/v1/parsers/{id}/commands` - Execute commands\n\
|
|
1637
|
-
\ - `GET /api/v1/parsers/{id}/status` - Get parser status\n\n ###\
|
|
1638
|
-
\ WebSocket Communication (Socket.IO)\n - **Socket.IO Connection**: `ws://localhost:8000/socket.io/`\
|
|
1639
|
-
\ \n - `GET /api/v1/ws/health` - WebSocket health check\n - `GET\
|
|
1640
|
-
\ /api/v1/ws/stats` - Connection statistics\n - `POST /api/v1/ws/broadcast/{room}`\
|
|
1641
|
-
\ - Broadcast to room\n - `POST /api/v1/ws/send/parser/{parser_id}` - Send\
|
|
1642
|
-
\ to parser\n - `POST /api/v1/ws/send/developer/{developer_id}` - Send\
|
|
1643
|
-
\ to developer\n - `GET /api/v1/ws/connections` - Active connections\n\
|
|
1644
|
-
\ - `POST /api/v1/ws/notification/system` - System notifications\n\n \
|
|
1645
|
-
\ ## \U0001F517 Resources\n\n - **GitHub**: [UnrealOn Server Repository](https://github.com/unrealserver/unrealserver)\n\
|
|
1646
|
-
\ - **Documentation**: [Complete Developer Guide](https://docs.unrealon.com)\n\
|
|
1647
|
-
\ - **Support**: [Community Forum](https://community.unrealon.com)\n \
|
|
1648
|
-
\ - **Status**: [Service Status Page](https://status.unrealon.com)\n\n \
|
|
1649
|
-
\ ---\n **\U0001F4B0 Built for Enterprise Performance - Quality Code\
|
|
1650
|
-
\ that Scales! \U0001F4B0**\n "
|
|
1651
|
-
license:
|
|
1652
|
-
name: MIT License
|
|
1653
|
-
url: https://opensource.org/licenses/MIT
|
|
1654
|
-
title: UnrealOn Server API
|
|
1655
|
-
version: 3.0.0
|
|
1656
|
-
openapi: 3.0.3
|
|
1657
|
-
paths:
|
|
1658
|
-
/:
|
|
1659
|
-
get:
|
|
1660
|
-
description: Root endpoint.
|
|
1661
|
-
operationId: root__get
|
|
1662
|
-
responses:
|
|
1663
|
-
'200':
|
|
1664
|
-
content:
|
|
1665
|
-
application/json:
|
|
1666
|
-
schema: {}
|
|
1667
|
-
description: Successful Response
|
|
1668
|
-
summary: Root
|
|
1669
|
-
/api/v1/admin/broadcast:
|
|
1670
|
-
post:
|
|
1671
|
-
description: "Broadcast administrative message to connected clients using AdminService\
|
|
1672
|
-
\ v2.0.\n \n **Admin v2.0 Features:**\n - Service-level events with\
|
|
1673
|
-
\ AdminEventMiddleware\n - Advanced targeting (all_users, admins_only,\
|
|
1674
|
-
\ specific_room, etc.)\n - Priority levels with intelligent delivery\n\
|
|
1675
|
-
\ - Real-time delivery statistics\n - Audit trail with proper event\
|
|
1676
|
-
\ logging\n \n **New in v2.0:**\n - Event-driven architecture (not\
|
|
1677
|
-
\ database triggers)\n - WebSocket room-based targeting \n - Comprehensive\
|
|
1678
|
-
\ delivery tracking\n - Admin event emission for monitoring"
|
|
1679
|
-
operationId: broadcast_message_api_v1_admin_broadcast_post
|
|
1680
|
-
parameters:
|
|
1681
|
-
- in: header
|
|
1682
|
-
name: authorization
|
|
1683
|
-
required: false
|
|
1684
|
-
schema:
|
|
1685
|
-
anyOf:
|
|
1686
|
-
- type: string
|
|
1687
|
-
- type: null
|
|
1688
|
-
title: Authorization
|
|
1689
|
-
requestBody:
|
|
1690
|
-
content:
|
|
1691
|
-
application/json:
|
|
1692
|
-
schema:
|
|
1693
|
-
$ref: '#/components/schemas/BroadcastMessageRequest'
|
|
1694
|
-
required: true
|
|
1695
|
-
responses:
|
|
1696
|
-
'200':
|
|
1697
|
-
content:
|
|
1698
|
-
application/json:
|
|
1699
|
-
schema:
|
|
1700
|
-
$ref: '#/components/schemas/BroadcastResultResponse'
|
|
1701
|
-
description: Successful Response
|
|
1702
|
-
'422':
|
|
1703
|
-
content:
|
|
1704
|
-
application/json:
|
|
1705
|
-
schema:
|
|
1706
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
1707
|
-
description: Validation Error
|
|
1708
|
-
summary: Broadcast Admin Message v2.0
|
|
1709
|
-
tags:
|
|
1710
|
-
- admin
|
|
1711
|
-
/api/v1/admin/maintenance:
|
|
1712
|
-
post:
|
|
1713
|
-
description: "Enable or disable system maintenance mode using AdminService v2.0.\n\
|
|
1714
|
-
\ \n **Admin v2.0 Features:**\n - Service-level event emission for\
|
|
1715
|
-
\ maintenance state changes\n - Advanced maintenance modes (full_system,\
|
|
1716
|
-
\ read_only, partial_service)\n - Grace period management with countdown\
|
|
1717
|
-
\ notifications\n - Affected services specification for partial maintenance\n\
|
|
1718
|
-
\ - Automatic user broadcast notifications via AdminEventMiddleware\n \
|
|
1719
|
-
\ \n **New in v2.0:**\n - Event-driven maintenance notifications\n\
|
|
1720
|
-
\ - Comprehensive audit trail\n - Real-time status tracking\n - Clean\
|
|
1721
|
-
\ Architecture compliance"
|
|
1722
|
-
operationId: manage_maintenance_mode_api_v1_admin_maintenance_post
|
|
1723
|
-
parameters:
|
|
1724
|
-
- in: header
|
|
1725
|
-
name: authorization
|
|
1726
|
-
required: false
|
|
1727
|
-
schema:
|
|
1728
|
-
anyOf:
|
|
1729
|
-
- type: string
|
|
1730
|
-
- type: null
|
|
1731
|
-
title: Authorization
|
|
1732
|
-
requestBody:
|
|
1733
|
-
content:
|
|
1734
|
-
application/json:
|
|
1735
|
-
schema:
|
|
1736
|
-
$ref: '#/components/schemas/MaintenanceModeRequest'
|
|
1737
|
-
required: true
|
|
1738
|
-
responses:
|
|
1739
|
-
'200':
|
|
1740
|
-
content:
|
|
1741
|
-
application/json:
|
|
1742
|
-
schema:
|
|
1743
|
-
$ref: '#/components/schemas/MaintenanceStatusResponse'
|
|
1744
|
-
description: Successful Response
|
|
1745
|
-
'422':
|
|
1746
|
-
content:
|
|
1747
|
-
application/json:
|
|
1748
|
-
schema:
|
|
1749
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
1750
|
-
description: Validation Error
|
|
1751
|
-
summary: Manage Maintenance Mode v2.0
|
|
1752
|
-
tags:
|
|
1753
|
-
- admin
|
|
1754
|
-
/api/v1/admin/maintenance/status:
|
|
1755
|
-
get:
|
|
1756
|
-
description: "Get current maintenance mode status using AdminService v2.0.\n\
|
|
1757
|
-
\ \n **Admin v2.0 Features:**\n - Comprehensive maintenance state\
|
|
1758
|
-
\ information\n - Grace period countdown tracking\n - Affected services\
|
|
1759
|
-
\ enumeration\n - Real-time status updates\n - Event-driven status changes\n\
|
|
1760
|
-
\ \n **Returns:**\n - Current maintenance mode status\n - Maintenance\
|
|
1761
|
-
\ timing and schedule\n - Affected services and configurations\n - Grace\
|
|
1762
|
-
\ period remaining (if applicable)"
|
|
1763
|
-
operationId: get_maintenance_status_api_v1_admin_maintenance_status_get
|
|
1764
|
-
parameters:
|
|
1765
|
-
- in: header
|
|
1766
|
-
name: authorization
|
|
1767
|
-
required: false
|
|
1768
|
-
schema:
|
|
1769
|
-
anyOf:
|
|
1770
|
-
- type: string
|
|
1771
|
-
- type: null
|
|
1772
|
-
title: Authorization
|
|
1773
|
-
responses:
|
|
1774
|
-
'200':
|
|
1775
|
-
content:
|
|
1776
|
-
application/json:
|
|
1777
|
-
schema:
|
|
1778
|
-
$ref: '#/components/schemas/MaintenanceStatusResponse'
|
|
1779
|
-
description: Successful Response
|
|
1780
|
-
'422':
|
|
1781
|
-
content:
|
|
1782
|
-
application/json:
|
|
1783
|
-
schema:
|
|
1784
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
1785
|
-
description: Validation Error
|
|
1786
|
-
summary: Get Maintenance Status v2.0
|
|
1787
|
-
tags:
|
|
1788
|
-
- admin
|
|
1789
|
-
/api/v1/admin/stats:
|
|
1790
|
-
get:
|
|
1791
|
-
description: "Get AdminService v2.0 statistics and operational metrics.\n \
|
|
1792
|
-
\ \n **AdminService v2.0 Metrics:**\n - Service uptime and initialization\
|
|
1793
|
-
\ status\n - Operations performed (broadcasts, maintenance, etc.)\n \
|
|
1794
|
-
\ - Event processing statistics\n - Error rates and service health\n \
|
|
1795
|
-
\ - Admin-specific operational metrics\n \n **New in v2.0:**\n -\
|
|
1796
|
-
\ AdminEventMiddleware statistics\n - WebSocket room management metrics\n\
|
|
1797
|
-
\ - Service-level event processing stats\n - Clean Architecture compliance\
|
|
1798
|
-
\ metrics\n \n **Note:** For system-wide analytics, use specialized\
|
|
1799
|
-
\ endpoints:\n - `/api/v1/health/` - System health and metrics\n - `/api/v1/logging/stats`\
|
|
1800
|
-
\ - Logging service metrics"
|
|
1801
|
-
operationId: get_admin_service_stats_api_v1_admin_stats_get
|
|
1802
|
-
parameters:
|
|
1803
|
-
- in: header
|
|
1804
|
-
name: authorization
|
|
1805
|
-
required: false
|
|
1806
|
-
schema:
|
|
1807
|
-
anyOf:
|
|
1808
|
-
- type: string
|
|
1809
|
-
- type: null
|
|
1810
|
-
title: Authorization
|
|
1811
|
-
responses:
|
|
1812
|
-
'200':
|
|
1813
|
-
content:
|
|
1814
|
-
application/json:
|
|
1815
|
-
schema:
|
|
1816
|
-
$ref: '#/components/schemas/ServiceStatsResponse'
|
|
1817
|
-
description: Successful Response
|
|
1818
|
-
'422':
|
|
1819
|
-
content:
|
|
1820
|
-
application/json:
|
|
1821
|
-
schema:
|
|
1822
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
1823
|
-
description: Validation Error
|
|
1824
|
-
summary: Get AdminService v2.0 Statistics
|
|
1825
|
-
tags:
|
|
1826
|
-
- admin
|
|
1827
|
-
/api/v1/health/:
|
|
1828
|
-
get:
|
|
1829
|
-
description: "Comprehensive system health check with component status.\n \
|
|
1830
|
-
\ \n Returns detailed health information for all system components including:\n\
|
|
1831
|
-
\ \n **Component Health:**\n - Database connectivity and performance\n\
|
|
1832
|
-
\ - Redis cache status and response times \n - WebSocket server status\
|
|
1833
|
-
\ and connections\n - Response times for all components\n \n **System\
|
|
1834
|
-
\ Metrics:**\n - CPU usage percentage\n - Memory usage and availability\n\
|
|
1835
|
-
\ - Disk usage statistics\n - System load average\n \n **Service\
|
|
1836
|
-
\ Information:**\n - Service uptime since last restart\n - Version information\n\
|
|
1837
|
-
\ - Overall system status\n \n **Status Levels:**\n - `healthy`:\
|
|
1838
|
-
\ All components operational\n - `degraded`: Some components have issues\
|
|
1839
|
-
\ but system is functional\n - `unhealthy`: Critical components are down\n\
|
|
1840
|
-
\ - `timeout`: Health check took too long to complete\n \n **Response\
|
|
1841
|
-
\ Codes:**\n - 200: System is healthy or degraded but functional\n -\
|
|
1842
|
-
\ 503: System is unhealthy or timed out\n \n This endpoint is designed\
|
|
1843
|
-
\ for:\n - Load balancer health checks\n - Monitoring system integration\n\
|
|
1844
|
-
\ - Operational status verification\n - Debugging system issues"
|
|
1845
|
-
operationId: system_health_check_api_v1_health__get
|
|
1846
|
-
responses:
|
|
1847
|
-
'200':
|
|
1848
|
-
content:
|
|
1849
|
-
application/json:
|
|
1850
|
-
example:
|
|
1851
|
-
components:
|
|
1852
|
-
cache:
|
|
1853
|
-
details:
|
|
1854
|
-
check_type: full_health_check
|
|
1855
|
-
hit_rate: 94.5
|
|
1856
|
-
memory_usage: 45.2MB
|
|
1857
|
-
response_time_ms: 2.1
|
|
1858
|
-
status: healthy
|
|
1859
|
-
database:
|
|
1860
|
-
details:
|
|
1861
|
-
check_type: full_health_check
|
|
1862
|
-
pool_active: 8
|
|
1863
|
-
pool_max: 10
|
|
1864
|
-
response_time_ms: 5.2
|
|
1865
|
-
status: healthy
|
|
1866
|
-
websocket:
|
|
1867
|
-
details:
|
|
1868
|
-
active_connections: 42
|
|
1869
|
-
max_connections: 1000
|
|
1870
|
-
messages_per_sec: 125.6
|
|
1871
|
-
response_time_ms: 1.8
|
|
1872
|
-
status: healthy
|
|
1873
|
-
message: All systems operational
|
|
1874
|
-
service: unrealon-server
|
|
1875
|
-
status: healthy
|
|
1876
|
-
system:
|
|
1877
|
-
cpu_usage: 23.5
|
|
1878
|
-
disk_usage: 67.2
|
|
1879
|
-
load_average: 0.8
|
|
1880
|
-
memory_usage: 512.8
|
|
1881
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
1882
|
-
uptime: 72h 35m 12s
|
|
1883
|
-
version: 3.0.0
|
|
1884
|
-
schema:
|
|
1885
|
-
$ref: '#/components/schemas/HealthResponse'
|
|
1886
|
-
description: System health check completed successfully
|
|
1887
|
-
'503':
|
|
1888
|
-
content:
|
|
1889
|
-
application/json:
|
|
1890
|
-
example:
|
|
1891
|
-
components:
|
|
1892
|
-
cache:
|
|
1893
|
-
response_time_ms: 2.3
|
|
1894
|
-
status: healthy
|
|
1895
|
-
database:
|
|
1896
|
-
error: Connection timeout after 5 seconds
|
|
1897
|
-
status: unhealthy
|
|
1898
|
-
error: Database connection failed
|
|
1899
|
-
message: System experiencing critical issues
|
|
1900
|
-
service: unrealon-server
|
|
1901
|
-
status: unhealthy
|
|
1902
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
1903
|
-
version: 3.0.0
|
|
1904
|
-
description: System is unhealthy or timed out
|
|
1905
|
-
summary: System Health Check
|
|
1906
|
-
tags:
|
|
1907
|
-
- System Health
|
|
1908
|
-
/api/v1/health/statistics:
|
|
1909
|
-
get:
|
|
1910
|
-
description: "Get health monitoring service statistics and metrics.\n \n\
|
|
1911
|
-
\ Returns information about the health monitoring system itself:\n -\
|
|
1912
|
-
\ Health check frequency and counts\n - Service uptime and start time\n\
|
|
1913
|
-
\ - Health check timeouts and configuration\n - Performance metrics"
|
|
1914
|
-
operationId: health_statistics_api_v1_health_statistics_get
|
|
1915
|
-
responses:
|
|
1916
|
-
'200':
|
|
1917
|
-
content:
|
|
1918
|
-
application/json:
|
|
1919
|
-
schema:
|
|
1920
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
1921
|
-
description: Health statistics retrieved successfully
|
|
1922
|
-
'500':
|
|
1923
|
-
content:
|
|
1924
|
-
application/json:
|
|
1925
|
-
schema:
|
|
1926
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
1927
|
-
description: Failed to get health statistics
|
|
1928
|
-
summary: Health Service Statistics
|
|
1929
|
-
tags:
|
|
1930
|
-
- System Health
|
|
1931
|
-
/api/v1/health/status:
|
|
1932
|
-
get:
|
|
1933
|
-
description: "Quick health status check for basic monitoring.\n \n Returns\
|
|
1934
|
-
\ a simplified health status without detailed component checks.\n This\
|
|
1935
|
-
\ endpoint is optimized for:\n - High-frequency health checks\n - Load\
|
|
1936
|
-
\ balancer health probes\n - Simple monitoring systems\n \n **Response\
|
|
1937
|
-
\ Format:**\n - `status`: Overall system status (healthy/degraded/unhealthy)\n\
|
|
1938
|
-
\ - `service`: Service name\n - `timestamp`: Current timestamp\n \
|
|
1939
|
-
\ - `uptime`: Service uptime"
|
|
1940
|
-
operationId: quick_health_status_api_v1_health_status_get
|
|
1941
|
-
responses:
|
|
1942
|
-
'200':
|
|
1943
|
-
content:
|
|
1944
|
-
application/json:
|
|
1945
|
-
example:
|
|
1946
|
-
service: unrealon-server
|
|
1947
|
-
status: healthy
|
|
1948
|
-
timestamp: '2024-01-01T12:00:00Z'
|
|
1949
|
-
uptime: 72h 35m 12s
|
|
1950
|
-
schema:
|
|
1951
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
1952
|
-
description: Quick status retrieved successfully
|
|
1953
|
-
summary: Quick Health Status
|
|
1954
|
-
tags:
|
|
1955
|
-
- System Health
|
|
1956
|
-
/api/v1/logging/log:
|
|
1957
|
-
post:
|
|
1958
|
-
description: "Add a log entry to an active logging session.\n \n **Log\
|
|
1959
|
-
\ Levels:**\n - `DEBUG`: Detailed debugging information\n - `INFO`:\
|
|
1960
|
-
\ General information messages\n - `WARNING`: Warning messages for potential\
|
|
1961
|
-
\ issues\n - `ERROR`: Error messages for failures\n - `CRITICAL`: Critical\
|
|
1962
|
-
\ system failures\n \n **Log Fields:**\n - `session_id`: Target session\
|
|
1963
|
-
\ (auto-created if not provided)\n - `level`: Log severity level\n -\
|
|
1964
|
-
\ `message`: Log message content (1-10,000 chars)\n - `source`: Source\
|
|
1965
|
-
\ code location or identifier\n - `context`: Additional context data (JSON)\n\
|
|
1966
|
-
\ - `tags`: Custom tags for filtering\n \n **Real-time Delivery:**\n\
|
|
1967
|
-
\ - Logs are immediately sent to connected WebSocket clients\n - Perfect\
|
|
1968
|
-
\ for real-time debugging and monitoring"
|
|
1969
|
-
operationId: add_log_entry_api_v1_logging_log_post
|
|
1970
|
-
parameters:
|
|
1971
|
-
- in: header
|
|
1972
|
-
name: authorization
|
|
1973
|
-
required: false
|
|
1974
|
-
schema:
|
|
1975
|
-
anyOf:
|
|
1976
|
-
- type: string
|
|
1977
|
-
- type: null
|
|
1978
|
-
title: Authorization
|
|
1979
|
-
requestBody:
|
|
1980
|
-
content:
|
|
1981
|
-
application/json:
|
|
1982
|
-
schema:
|
|
1983
|
-
$ref: '#/components/schemas/LoggingRequest'
|
|
1984
|
-
required: true
|
|
1985
|
-
responses:
|
|
1986
|
-
'200':
|
|
1987
|
-
content:
|
|
1988
|
-
application/json:
|
|
1989
|
-
schema:
|
|
1990
|
-
$ref: '#/components/schemas/LoggingResponse'
|
|
1991
|
-
description: Log entry added successfully
|
|
1992
|
-
'400':
|
|
1993
|
-
description: Invalid log request
|
|
1994
|
-
'401':
|
|
1995
|
-
description: Authentication required
|
|
1996
|
-
'404':
|
|
1997
|
-
description: Session not found
|
|
1998
|
-
'422':
|
|
1999
|
-
content:
|
|
2000
|
-
application/json:
|
|
2001
|
-
schema:
|
|
2002
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2003
|
-
description: Validation Error
|
|
2004
|
-
summary: Add Log Entry
|
|
2005
|
-
tags:
|
|
2006
|
-
- Socket Logging
|
|
2007
|
-
/api/v1/logging/sessions:
|
|
2008
|
-
get:
|
|
2009
|
-
description: "Get all logging sessions for the authenticated developer.\n \
|
|
2010
|
-
\ \n **Returns:**\n - List of all sessions (active, paused, terminated,\
|
|
2011
|
-
\ expired)\n - Session statistics and metadata\n - Current status and\
|
|
2012
|
-
\ configuration\n - Creation and activity timestamps\n \n **Session\
|
|
2013
|
-
\ Status Types:**\n - `ACTIVE`: Currently accepting log entries\n -\
|
|
2014
|
-
\ `PAUSED`: Temporarily paused\n - `TERMINATED`: Manually terminated\n\
|
|
2015
|
-
\ - `EXPIRED`: Automatically expired\n \n **Use Cases:**\n - Session\
|
|
2016
|
-
\ management dashboard\n - Historical session review\n - Development\
|
|
2017
|
-
\ session tracking"
|
|
2018
|
-
operationId: list_developer_sessions_api_v1_logging_sessions_get
|
|
2019
|
-
parameters:
|
|
2020
|
-
- in: header
|
|
2021
|
-
name: authorization
|
|
2022
|
-
required: false
|
|
2023
|
-
schema:
|
|
2024
|
-
anyOf:
|
|
2025
|
-
- type: string
|
|
2026
|
-
- type: null
|
|
2027
|
-
title: Authorization
|
|
2028
|
-
responses:
|
|
2029
|
-
'200':
|
|
2030
|
-
content:
|
|
2031
|
-
application/json:
|
|
2032
|
-
schema:
|
|
2033
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2034
|
-
description: Developer sessions retrieved successfully
|
|
2035
|
-
'401':
|
|
2036
|
-
description: Authentication required
|
|
2037
|
-
'422':
|
|
2038
|
-
content:
|
|
2039
|
-
application/json:
|
|
2040
|
-
schema:
|
|
2041
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2042
|
-
description: Validation Error
|
|
2043
|
-
summary: List Developer Sessions
|
|
2044
|
-
tags:
|
|
2045
|
-
- Socket Logging
|
|
2046
|
-
/api/v1/logging/sessions/start:
|
|
2047
|
-
post:
|
|
2048
|
-
description: "Start a new real-time logging session for development assistance.\n\
|
|
2049
|
-
\ \n **Features:**\n - Real-time log streaming via WebSocket\n \
|
|
2050
|
-
\ - Configurable retention and limits\n - Auto-expiration support\n \
|
|
2051
|
-
\ - Developer-specific sessions\n \n **Use Cases:**\n - Debug parser\
|
|
2052
|
-
\ development\n - Monitor real-time operations\n - Track code execution\
|
|
2053
|
-
\ flow\n - Development assistance\n \n **Session Configuration:**\n\
|
|
2054
|
-
\ - `max_entries`: Maximum log entries (1-10,000)\n - `retention_hours`:\
|
|
2055
|
-
\ How long to keep logs (1-168 hours)\n - `auto_expire`: Automatically\
|
|
2056
|
-
\ expire session\n - `tags`: Custom tags for organization\n - `metadata`:\
|
|
2057
|
-
\ Additional session metadata"
|
|
2058
|
-
operationId: start_logging_session_api_v1_logging_sessions_start_post
|
|
2059
|
-
parameters:
|
|
2060
|
-
- in: header
|
|
2061
|
-
name: authorization
|
|
2062
|
-
required: false
|
|
2063
|
-
schema:
|
|
2064
|
-
anyOf:
|
|
2065
|
-
- type: string
|
|
2066
|
-
- type: null
|
|
2067
|
-
title: Authorization
|
|
2068
|
-
requestBody:
|
|
2069
|
-
content:
|
|
2070
|
-
application/json:
|
|
2071
|
-
schema:
|
|
2072
|
-
$ref: '#/components/schemas/SessionStartRequest'
|
|
2073
|
-
required: true
|
|
2074
|
-
responses:
|
|
2075
|
-
'200':
|
|
2076
|
-
content:
|
|
2077
|
-
application/json:
|
|
2078
|
-
schema:
|
|
2079
|
-
$ref: '#/components/schemas/LoggingResponse'
|
|
2080
|
-
description: Successful Response
|
|
2081
|
-
'201':
|
|
2082
|
-
description: Logging session started successfully
|
|
2083
|
-
'400':
|
|
2084
|
-
description: Invalid session configuration
|
|
2085
|
-
'401':
|
|
2086
|
-
description: Authentication required
|
|
2087
|
-
'422':
|
|
2088
|
-
content:
|
|
2089
|
-
application/json:
|
|
2090
|
-
schema:
|
|
2091
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2092
|
-
description: Validation Error
|
|
2093
|
-
'429':
|
|
2094
|
-
description: Session limit exceeded
|
|
2095
|
-
summary: Start Logging Session
|
|
2096
|
-
tags:
|
|
2097
|
-
- Socket Logging
|
|
2098
|
-
/api/v1/logging/sessions/{session_id}:
|
|
2099
|
-
delete:
|
|
2100
|
-
description: "Terminate an active logging session.\n \n **Actions Performed:**\n\
|
|
2101
|
-
\ - Changes session status to TERMINATED\n - Stops accepting new log\
|
|
2102
|
-
\ entries\n - Removes from active session pool\n - Maintains session\
|
|
2103
|
-
\ data for retention period\n \n **Access Control:**\n - Only session\
|
|
2104
|
-
\ owner can terminate\n - Cannot terminate already terminated sessions\n\
|
|
2105
|
-
\ \n **Note:** Terminated sessions can still be accessed for\n historical\
|
|
2106
|
-
\ log retrieval until retention period expires."
|
|
2107
|
-
operationId: terminate_session_api_v1_logging_sessions__session_id__delete
|
|
2108
|
-
parameters:
|
|
2109
|
-
- in: path
|
|
2110
|
-
name: session_id
|
|
2111
|
-
required: true
|
|
2112
|
-
schema:
|
|
2113
|
-
title: Session Id
|
|
2114
|
-
type: string
|
|
2115
|
-
- in: header
|
|
2116
|
-
name: authorization
|
|
2117
|
-
required: false
|
|
2118
|
-
schema:
|
|
2119
|
-
anyOf:
|
|
2120
|
-
- type: string
|
|
2121
|
-
- type: null
|
|
2122
|
-
title: Authorization
|
|
2123
|
-
responses:
|
|
2124
|
-
'200':
|
|
2125
|
-
content:
|
|
2126
|
-
application/json:
|
|
2127
|
-
schema:
|
|
2128
|
-
$ref: '#/components/schemas/LoggingResponse'
|
|
2129
|
-
description: Session terminated successfully
|
|
2130
|
-
'401':
|
|
2131
|
-
description: Authentication required
|
|
2132
|
-
'403':
|
|
2133
|
-
description: Access denied - session belongs to different developer
|
|
2134
|
-
'404':
|
|
2135
|
-
description: Session not found
|
|
2136
|
-
'422':
|
|
2137
|
-
content:
|
|
2138
|
-
application/json:
|
|
2139
|
-
schema:
|
|
2140
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2141
|
-
description: Validation Error
|
|
2142
|
-
summary: Terminate Session
|
|
2143
|
-
tags:
|
|
2144
|
-
- Socket Logging
|
|
2145
|
-
/api/v1/logging/sessions/{session_id}/logs:
|
|
2146
|
-
get:
|
|
2147
|
-
description: "Retrieve recent log entries from a specific logging session.\n\
|
|
2148
|
-
\ \n **Parameters:**\n - `session_id`: Target session identifier\n\
|
|
2149
|
-
\ - `count`: Number of recent entries to return (default: 100)\n \n\
|
|
2150
|
-
\ **Response Includes:**\n - Recent log entries with full details\n\
|
|
2151
|
-
\ - Session status and metadata\n - Entry statistics by log level\n\
|
|
2152
|
-
\ - Session configuration info\n \n **Access Control:**\n - Only\
|
|
2153
|
-
\ session owner can access logs\n - Session must belong to authenticated\
|
|
2154
|
-
\ developer"
|
|
2155
|
-
operationId: get_session_logs_api_v1_logging_sessions__session_id__logs_get
|
|
2156
|
-
parameters:
|
|
2157
|
-
- in: path
|
|
2158
|
-
name: session_id
|
|
2159
|
-
required: true
|
|
2160
|
-
schema:
|
|
2161
|
-
title: Session Id
|
|
2162
|
-
type: string
|
|
2163
|
-
- in: query
|
|
2164
|
-
name: count
|
|
2165
|
-
required: false
|
|
2166
|
-
schema:
|
|
2167
|
-
default: 100
|
|
2168
|
-
title: Count
|
|
2169
|
-
type: integer
|
|
2170
|
-
- in: header
|
|
2171
|
-
name: authorization
|
|
2172
|
-
required: false
|
|
2173
|
-
schema:
|
|
2174
|
-
anyOf:
|
|
2175
|
-
- type: string
|
|
2176
|
-
- type: null
|
|
2177
|
-
title: Authorization
|
|
2178
|
-
responses:
|
|
2179
|
-
'200':
|
|
2180
|
-
content:
|
|
2181
|
-
application/json:
|
|
2182
|
-
schema:
|
|
2183
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2184
|
-
description: Session logs retrieved successfully
|
|
2185
|
-
'401':
|
|
2186
|
-
description: Authentication required
|
|
2187
|
-
'403':
|
|
2188
|
-
description: Access denied - session belongs to different developer
|
|
2189
|
-
'404':
|
|
2190
|
-
description: Session not found
|
|
2191
|
-
'422':
|
|
2192
|
-
content:
|
|
2193
|
-
application/json:
|
|
2194
|
-
schema:
|
|
2195
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2196
|
-
description: Validation Error
|
|
2197
|
-
summary: Get Session Logs
|
|
2198
|
-
tags:
|
|
2199
|
-
- Socket Logging
|
|
2200
|
-
/api/v1/logging/stats:
|
|
2201
|
-
get:
|
|
2202
|
-
description: "Get socket logging service statistics and metrics.\n \n \
|
|
2203
|
-
\ **Metrics Included:**\n - Active sessions count\n - Total developers\
|
|
2204
|
-
\ using service\n - Total sessions created\n - Total log entries processed\n\
|
|
2205
|
-
\ - Active WebSocket connections\n - Service configuration details\n\
|
|
2206
|
-
\ \n **Admin Information:**\n - Session limits and quotas\n -\
|
|
2207
|
-
\ Cleanup intervals\n - Service health status"
|
|
2208
|
-
operationId: get_logging_stats_api_v1_logging_stats_get
|
|
2209
|
-
responses:
|
|
2210
|
-
'200':
|
|
2211
|
-
content:
|
|
2212
|
-
application/json:
|
|
2213
|
-
schema:
|
|
2214
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2215
|
-
description: Service statistics retrieved successfully
|
|
2216
|
-
'401':
|
|
2217
|
-
description: Authentication required
|
|
2218
|
-
summary: Logging Service Statistics
|
|
2219
|
-
tags:
|
|
2220
|
-
- Socket Logging
|
|
2221
|
-
/api/v1/parsers/:
|
|
2222
|
-
get:
|
|
2223
|
-
description: Get list of parsers for authenticated developer
|
|
2224
|
-
operationId: list_parsers_api_v1_parsers__get
|
|
2225
|
-
parameters:
|
|
2226
|
-
- in: header
|
|
2227
|
-
name: authorization
|
|
2228
|
-
required: false
|
|
2229
|
-
schema:
|
|
2230
|
-
anyOf:
|
|
2231
|
-
- type: string
|
|
2232
|
-
- type: null
|
|
2233
|
-
title: Authorization
|
|
2234
|
-
responses:
|
|
2235
|
-
'200':
|
|
2236
|
-
content:
|
|
2237
|
-
application/json:
|
|
2238
|
-
schema:
|
|
2239
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2240
|
-
description: Successful Response
|
|
2241
|
-
'422':
|
|
2242
|
-
content:
|
|
2243
|
-
application/json:
|
|
2244
|
-
schema:
|
|
2245
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2246
|
-
description: Validation Error
|
|
2247
|
-
summary: List parsers
|
|
2248
|
-
tags:
|
|
2249
|
-
- Parser Management
|
|
2250
|
-
/api/v1/parsers/register:
|
|
2251
|
-
post:
|
|
2252
|
-
description: "Register a new parser with the UnrealOn Server platform.\n \
|
|
2253
|
-
\ \n This endpoint allows developers to register their parsing services\
|
|
2254
|
-
\ with the platform,\n enabling real-time communication and command routing\
|
|
2255
|
-
\ capabilities.\n \n **Requirements:**\n - Valid API key with parser:write\
|
|
2256
|
-
\ permission\n - Unique parser ID within the platform\n - At least one\
|
|
2257
|
-
\ service configuration\n - Valid parser type (encar, autotrader, etc.)\n\
|
|
2258
|
-
\ \n **Process:**\n 1. Validates API key and developer permissions\n\
|
|
2259
|
-
\ 2. Checks parser ID uniqueness\n 3. Validates service configurations\n\
|
|
2260
|
-
\ 4. Creates parser entity in database\n 5. Establishes WebSocket communication\
|
|
2261
|
-
\ channel\n 6. Returns registration confirmation with connection details"
|
|
2262
|
-
operationId: register_parser_api_v1_parsers_register_post
|
|
2263
|
-
parameters:
|
|
2264
|
-
- in: header
|
|
2265
|
-
name: authorization
|
|
2266
|
-
required: false
|
|
2267
|
-
schema:
|
|
2268
|
-
anyOf:
|
|
2269
|
-
- type: string
|
|
2270
|
-
- type: null
|
|
2271
|
-
title: Authorization
|
|
2272
|
-
requestBody:
|
|
2273
|
-
content:
|
|
2274
|
-
application/json:
|
|
2275
|
-
schema:
|
|
2276
|
-
$ref: '#/components/schemas/ParserRegistrationRequest'
|
|
2277
|
-
required: true
|
|
2278
|
-
responses:
|
|
2279
|
-
'201':
|
|
2280
|
-
content:
|
|
2281
|
-
application/json:
|
|
2282
|
-
schema:
|
|
2283
|
-
$ref: '#/components/schemas/ParserRegistrationResponse'
|
|
2284
|
-
description: Parser registered successfully
|
|
2285
|
-
'400':
|
|
2286
|
-
content:
|
|
2287
|
-
application/json:
|
|
2288
|
-
schema:
|
|
2289
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2290
|
-
description: Registration failed due to validation error
|
|
2291
|
-
'401':
|
|
2292
|
-
content:
|
|
2293
|
-
application/json:
|
|
2294
|
-
schema:
|
|
2295
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2296
|
-
description: Invalid or missing API key
|
|
2297
|
-
'409':
|
|
2298
|
-
content:
|
|
2299
|
-
application/json:
|
|
2300
|
-
schema:
|
|
2301
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2302
|
-
description: Parser ID already exists
|
|
2303
|
-
'422':
|
|
2304
|
-
content:
|
|
2305
|
-
application/json:
|
|
2306
|
-
schema:
|
|
2307
|
-
$ref: '#/components/schemas/ValidationErrorResponse'
|
|
2308
|
-
description: Invalid request data
|
|
2309
|
-
summary: Register New Parser
|
|
2310
|
-
tags:
|
|
2311
|
-
- Parser Management
|
|
2312
|
-
- Parser Registration
|
|
2313
|
-
/api/v1/parsers/{parser_id}:
|
|
2314
|
-
delete:
|
|
2315
|
-
description: "Remove parser from the platform permanently.\n \n **Warning:**\
|
|
2316
|
-
\ This operation is irreversible and will:\n - Disconnect the parser from\
|
|
2317
|
-
\ WebSocket\n - Remove all associated data\n - Cancel any pending commands\n\
|
|
2318
|
-
\ - Revoke access tokens\n \n **Requirements:**\n - Parser must\
|
|
2319
|
-
\ be owned by authenticated developer\n - No critical commands in progress\n\
|
|
2320
|
-
\ - Proper cleanup of associated resources"
|
|
2321
|
-
operationId: delete_parser_api_v1_parsers__parser_id__delete
|
|
2322
|
-
parameters:
|
|
2323
|
-
- in: path
|
|
2324
|
-
name: parser_id
|
|
2325
|
-
required: true
|
|
2326
|
-
schema:
|
|
2327
|
-
title: Parser Id
|
|
2328
|
-
type: string
|
|
2329
|
-
- in: header
|
|
2330
|
-
name: authorization
|
|
2331
|
-
required: false
|
|
2332
|
-
schema:
|
|
2333
|
-
anyOf:
|
|
2334
|
-
- type: string
|
|
2335
|
-
- type: null
|
|
2336
|
-
title: Authorization
|
|
2337
|
-
responses:
|
|
2338
|
-
'204':
|
|
2339
|
-
description: Parser deleted successfully
|
|
2340
|
-
'401':
|
|
2341
|
-
content:
|
|
2342
|
-
application/json:
|
|
2343
|
-
schema:
|
|
2344
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2345
|
-
description: Invalid or missing API key
|
|
2346
|
-
'403':
|
|
2347
|
-
content:
|
|
2348
|
-
application/json:
|
|
2349
|
-
schema:
|
|
2350
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2351
|
-
description: Insufficient permissions
|
|
2352
|
-
'404':
|
|
2353
|
-
content:
|
|
2354
|
-
application/json:
|
|
2355
|
-
schema:
|
|
2356
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2357
|
-
description: Parser not found
|
|
2358
|
-
'409':
|
|
2359
|
-
content:
|
|
2360
|
-
application/json:
|
|
2361
|
-
schema:
|
|
2362
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2363
|
-
description: Parser has active commands
|
|
2364
|
-
'422':
|
|
2365
|
-
content:
|
|
2366
|
-
application/json:
|
|
2367
|
-
schema:
|
|
2368
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2369
|
-
description: Validation Error
|
|
2370
|
-
summary: Delete Parser
|
|
2371
|
-
tags:
|
|
2372
|
-
- Parser Management
|
|
2373
|
-
- Parser Management
|
|
2374
|
-
get:
|
|
2375
|
-
description: Get detailed information about specific parser
|
|
2376
|
-
operationId: get_parser_api_v1_parsers__parser_id__get
|
|
2377
|
-
parameters:
|
|
2378
|
-
- in: path
|
|
2379
|
-
name: parser_id
|
|
2380
|
-
required: true
|
|
2381
|
-
schema:
|
|
2382
|
-
title: Parser Id
|
|
2383
|
-
type: string
|
|
2384
|
-
- in: header
|
|
2385
|
-
name: authorization
|
|
2386
|
-
required: false
|
|
2387
|
-
schema:
|
|
2388
|
-
anyOf:
|
|
2389
|
-
- type: string
|
|
2390
|
-
- type: null
|
|
2391
|
-
title: Authorization
|
|
2392
|
-
responses:
|
|
2393
|
-
'200':
|
|
2394
|
-
content:
|
|
2395
|
-
application/json:
|
|
2396
|
-
schema:
|
|
2397
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2398
|
-
description: Successful Response
|
|
2399
|
-
'422':
|
|
2400
|
-
content:
|
|
2401
|
-
application/json:
|
|
2402
|
-
schema:
|
|
2403
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2404
|
-
description: Validation Error
|
|
2405
|
-
summary: Get parser details
|
|
2406
|
-
tags:
|
|
2407
|
-
- Parser Management
|
|
2408
|
-
/api/v1/parsers/{parser_id}/commands:
|
|
2409
|
-
post:
|
|
2410
|
-
description: "Execute a command on the specified parser with real-time tracking.\n\
|
|
2411
|
-
\ \n This endpoint enables real-time command execution on connected\
|
|
2412
|
-
\ parsers\n through WebSocket communication with comprehensive error handling\
|
|
2413
|
-
\ and timeout management.\n \n **Features:**\n - Real-time command\
|
|
2414
|
-
\ execution via WebSocket\n - Command timeout and retry handling\n -\
|
|
2415
|
-
\ Priority-based command queuing\n - Execution status tracking\n - Response\
|
|
2416
|
-
\ caching and persistence\n \n **Command Types:**\n - `scrape_listings`:\
|
|
2417
|
-
\ Scrape vehicle listings\n - `get_car_details`: Get detailed vehicle information\n\
|
|
2418
|
-
\ - `search_by_criteria`: Search with specific criteria\n - `health_check`:\
|
|
2419
|
-
\ Check parser health status\n - `update_config`: Update parser configuration\n\
|
|
2420
|
-
\ \n **Process:**\n 1. Validates parser connection status\n 2.\
|
|
2421
|
-
\ Creates unique command identifier\n 3. Routes command via WebSocket to\
|
|
2422
|
-
\ parser\n 4. Tracks execution status in real-time\n 5. Returns command\
|
|
2423
|
-
\ ID for status polling\n 6. Notifies completion via WebSocket/callback"
|
|
2424
|
-
operationId: execute_parser_command_api_v1_parsers__parser_id__commands_post
|
|
2425
|
-
parameters:
|
|
2426
|
-
- in: path
|
|
2427
|
-
name: parser_id
|
|
2428
|
-
required: true
|
|
2429
|
-
schema:
|
|
2430
|
-
title: Parser Id
|
|
2431
|
-
type: string
|
|
2432
|
-
- in: header
|
|
2433
|
-
name: authorization
|
|
2434
|
-
required: false
|
|
2435
|
-
schema:
|
|
2436
|
-
anyOf:
|
|
2437
|
-
- type: string
|
|
2438
|
-
- type: null
|
|
2439
|
-
title: Authorization
|
|
2440
|
-
requestBody:
|
|
2441
|
-
content:
|
|
2442
|
-
application/json:
|
|
2443
|
-
schema:
|
|
2444
|
-
$ref: '#/components/schemas/ParserCommandRequest'
|
|
2445
|
-
required: true
|
|
2446
|
-
responses:
|
|
2447
|
-
'202':
|
|
2448
|
-
content:
|
|
2449
|
-
application/json:
|
|
2450
|
-
example:
|
|
2451
|
-
command_id: cmd_abc123def456
|
|
2452
|
-
estimated_completion: '2024-01-01T12:05:00Z'
|
|
2453
|
-
parser_id: automotive_parser_001
|
|
2454
|
-
status: accepted
|
|
2455
|
-
success: true
|
|
2456
|
-
tracking_url: /api/v1/commands/cmd_abc123def456/status
|
|
2457
|
-
schema:
|
|
2458
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2459
|
-
description: Command accepted and queued for execution
|
|
2460
|
-
'400':
|
|
2461
|
-
content:
|
|
2462
|
-
application/json:
|
|
2463
|
-
schema:
|
|
2464
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2465
|
-
description: Invalid command or parameters
|
|
2466
|
-
'401':
|
|
2467
|
-
content:
|
|
2468
|
-
application/json:
|
|
2469
|
-
schema:
|
|
2470
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2471
|
-
description: Invalid or missing API key
|
|
2472
|
-
'404':
|
|
2473
|
-
content:
|
|
2474
|
-
application/json:
|
|
2475
|
-
schema:
|
|
2476
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2477
|
-
description: Parser not found or not connected
|
|
2478
|
-
'422':
|
|
2479
|
-
content:
|
|
2480
|
-
application/json:
|
|
2481
|
-
schema:
|
|
2482
|
-
$ref: '#/components/schemas/ValidationErrorResponse'
|
|
2483
|
-
description: Invalid request data
|
|
2484
|
-
'503':
|
|
2485
|
-
content:
|
|
2486
|
-
application/json:
|
|
2487
|
-
schema:
|
|
2488
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2489
|
-
description: Parser temporarily unavailable
|
|
2490
|
-
summary: Execute Command on Parser
|
|
2491
|
-
tags:
|
|
2492
|
-
- Parser Management
|
|
2493
|
-
- Command Execution
|
|
2494
|
-
/api/v1/parsers/{parser_id}/status:
|
|
2495
|
-
get:
|
|
2496
|
-
description: "Get comprehensive status information for the specified parser.\n\
|
|
2497
|
-
\ \n **Status Information:**\n - Connection status (connected/disconnected)\n\
|
|
2498
|
-
\ - Current activity and workload\n - Performance metrics\n - Recent\
|
|
2499
|
-
\ command history\n - Health indicators\n - Configuration details"
|
|
2500
|
-
operationId: get_parser_status_api_v1_parsers__parser_id__status_get
|
|
2501
|
-
parameters:
|
|
2502
|
-
- in: path
|
|
2503
|
-
name: parser_id
|
|
2504
|
-
required: true
|
|
2505
|
-
schema:
|
|
2506
|
-
title: Parser Id
|
|
2507
|
-
type: string
|
|
2508
|
-
- in: header
|
|
2509
|
-
name: authorization
|
|
2510
|
-
required: false
|
|
2511
|
-
schema:
|
|
2512
|
-
anyOf:
|
|
2513
|
-
- type: string
|
|
2514
|
-
- type: null
|
|
2515
|
-
title: Authorization
|
|
2516
|
-
responses:
|
|
2517
|
-
'200':
|
|
2518
|
-
content:
|
|
2519
|
-
application/json:
|
|
2520
|
-
example:
|
|
2521
|
-
capabilities:
|
|
2522
|
-
max_concurrent: 5
|
|
2523
|
-
rate_limit: 100
|
|
2524
|
-
supported_commands:
|
|
2525
|
-
- scrape_listings
|
|
2526
|
-
- get_car_details
|
|
2527
|
-
connected: true
|
|
2528
|
-
current_load:
|
|
2529
|
-
active_commands: 3
|
|
2530
|
-
cpu_usage: 45.2
|
|
2531
|
-
memory_usage: 67.8
|
|
2532
|
-
queued_commands: 1
|
|
2533
|
-
last_seen: '2024-01-01T12:00:00Z'
|
|
2534
|
-
metrics:
|
|
2535
|
-
avg_response_time_ms: 850
|
|
2536
|
-
commands_executed: 1247
|
|
2537
|
-
success_rate: 98.5
|
|
2538
|
-
uptime_hours: 72.5
|
|
2539
|
-
parser_id: automotive_parser_001
|
|
2540
|
-
status: active
|
|
2541
|
-
schema:
|
|
2542
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2543
|
-
description: Parser status retrieved successfully
|
|
2544
|
-
'401':
|
|
2545
|
-
content:
|
|
2546
|
-
application/json:
|
|
2547
|
-
schema:
|
|
2548
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2549
|
-
description: Invalid or missing API key
|
|
2550
|
-
'404':
|
|
2551
|
-
content:
|
|
2552
|
-
application/json:
|
|
2553
|
-
schema:
|
|
2554
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2555
|
-
description: Parser not found
|
|
2556
|
-
'422':
|
|
2557
|
-
content:
|
|
2558
|
-
application/json:
|
|
2559
|
-
schema:
|
|
2560
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2561
|
-
description: Validation Error
|
|
2562
|
-
summary: Get Parser Status
|
|
2563
|
-
tags:
|
|
2564
|
-
- Parser Management
|
|
2565
|
-
- Parser Status
|
|
2566
|
-
/api/v1/proxies/:
|
|
2567
|
-
get:
|
|
2568
|
-
description: "Get list of proxies with optional filtering and pagination.\n\
|
|
2569
|
-
\ \n **Filters:**\n - `status`: Filter by proxy status (active, inactive,\
|
|
2570
|
-
\ expired, blocked)\n - `country`: Filter by country code (US, KR, etc.)\n\
|
|
2571
|
-
\ - `provider`: Filter by provider (proxy6, oxylabs, etc.)\n - `healthy_only`:\
|
|
2572
|
-
\ Show only healthy proxies with good performance\n \n **Pagination:**\n\
|
|
2573
|
-
\ - `skip`: Number of records to skip\n - `limit`: Maximum number of\
|
|
2574
|
-
\ records to return\n \n **Response includes:**\n - List of proxy\
|
|
2575
|
-
\ objects with full details\n - Total count for pagination\n - Statistics\
|
|
2576
|
-
\ summary"
|
|
2577
|
-
operationId: list_proxies_api_v1_proxies__get
|
|
2578
|
-
parameters:
|
|
2579
|
-
- description: Filter by proxy status
|
|
2580
|
-
in: query
|
|
2581
|
-
name: status
|
|
2582
|
-
required: false
|
|
2583
|
-
schema:
|
|
2584
|
-
anyOf:
|
|
2585
|
-
- $ref: '#/components/schemas/ProxyStatus'
|
|
2586
|
-
- type: null
|
|
2587
|
-
description: Filter by proxy status
|
|
2588
|
-
title: Status
|
|
2589
|
-
- description: Filter by country code
|
|
2590
|
-
in: query
|
|
2591
|
-
name: country
|
|
2592
|
-
required: false
|
|
2593
|
-
schema:
|
|
2594
|
-
anyOf:
|
|
2595
|
-
- type: string
|
|
2596
|
-
- type: null
|
|
2597
|
-
description: Filter by country code
|
|
2598
|
-
title: Country
|
|
2599
|
-
- description: Filter by provider
|
|
2600
|
-
in: query
|
|
2601
|
-
name: provider
|
|
2602
|
-
required: false
|
|
2603
|
-
schema:
|
|
2604
|
-
anyOf:
|
|
2605
|
-
- $ref: '#/components/schemas/ProxyProvider'
|
|
2606
|
-
- type: null
|
|
2607
|
-
description: Filter by provider
|
|
2608
|
-
title: Provider
|
|
2609
|
-
- description: Show only healthy proxies
|
|
2610
|
-
in: query
|
|
2611
|
-
name: healthy_only
|
|
2612
|
-
required: false
|
|
2613
|
-
schema:
|
|
2614
|
-
default: false
|
|
2615
|
-
description: Show only healthy proxies
|
|
2616
|
-
title: Healthy Only
|
|
2617
|
-
type: boolean
|
|
2618
|
-
- description: Number of records to skip
|
|
2619
|
-
in: query
|
|
2620
|
-
name: skip
|
|
2621
|
-
required: false
|
|
2622
|
-
schema:
|
|
2623
|
-
default: 0
|
|
2624
|
-
description: Number of records to skip
|
|
2625
|
-
minimum: 0
|
|
2626
|
-
title: Skip
|
|
2627
|
-
type: integer
|
|
2628
|
-
- description: Maximum records to return
|
|
2629
|
-
in: query
|
|
2630
|
-
name: limit
|
|
2631
|
-
required: false
|
|
2632
|
-
schema:
|
|
2633
|
-
default: 50
|
|
2634
|
-
description: Maximum records to return
|
|
2635
|
-
maximum: 1000
|
|
2636
|
-
minimum: 1
|
|
2637
|
-
title: Limit
|
|
2638
|
-
type: integer
|
|
2639
|
-
- in: header
|
|
2640
|
-
name: authorization
|
|
2641
|
-
required: false
|
|
2642
|
-
schema:
|
|
2643
|
-
anyOf:
|
|
2644
|
-
- type: string
|
|
2645
|
-
- type: null
|
|
2646
|
-
title: Authorization
|
|
2647
|
-
responses:
|
|
2648
|
-
'200':
|
|
2649
|
-
content:
|
|
2650
|
-
application/json:
|
|
2651
|
-
example:
|
|
2652
|
-
data:
|
|
2653
|
-
limit: 50
|
|
2654
|
-
proxies:
|
|
2655
|
-
- country: US
|
|
2656
|
-
endpoint:
|
|
2657
|
-
host: 185.123.45.67
|
|
2658
|
-
port: 8080
|
|
2659
|
-
protocol: http
|
|
2660
|
-
expires_at: '2024-12-31T23:59:59Z'
|
|
2661
|
-
provider: proxy6
|
|
2662
|
-
proxy_id: proxy_proxy6_001234
|
|
2663
|
-
status: active
|
|
2664
|
-
usage_stats:
|
|
2665
|
-
consecutive_failures: 0
|
|
2666
|
-
success_rate: 95.5
|
|
2667
|
-
total_requests: 1500
|
|
2668
|
-
skip: 0
|
|
2669
|
-
total: 1
|
|
2670
|
-
message: Proxies retrieved successfully
|
|
2671
|
-
success: true
|
|
2672
|
-
schema:
|
|
2673
|
-
$ref: '#/components/schemas/ProxyListResponse'
|
|
2674
|
-
description: Proxies retrieved successfully
|
|
2675
|
-
'401':
|
|
2676
|
-
content:
|
|
2677
|
-
application/json:
|
|
2678
|
-
schema:
|
|
2679
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2680
|
-
description: Invalid or missing API key
|
|
2681
|
-
'422':
|
|
2682
|
-
content:
|
|
2683
|
-
application/json:
|
|
2684
|
-
schema:
|
|
2685
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2686
|
-
description: Validation Error
|
|
2687
|
-
'500':
|
|
2688
|
-
content:
|
|
2689
|
-
application/json:
|
|
2690
|
-
schema:
|
|
2691
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2692
|
-
description: Internal server error
|
|
2693
|
-
summary: List Proxies
|
|
2694
|
-
tags:
|
|
2695
|
-
- Proxy Management
|
|
2696
|
-
/api/v1/proxies/maintenance/cleanup:
|
|
2697
|
-
post:
|
|
2698
|
-
description: "Perform maintenance cleanup of expired proxies.\n \n **Actions:**\n\
|
|
2699
|
-
\ - Marks expired proxies as inactive\n - Cleans up stale allocations\n\
|
|
2700
|
-
\ - Updates proxy statistics\n - Returns cleanup summary"
|
|
2701
|
-
operationId: cleanup_expired_proxies_api_v1_proxies_maintenance_cleanup_post
|
|
2702
|
-
parameters:
|
|
2703
|
-
- in: header
|
|
2704
|
-
name: authorization
|
|
2705
|
-
required: false
|
|
2706
|
-
schema:
|
|
2707
|
-
anyOf:
|
|
2708
|
-
- type: string
|
|
2709
|
-
- type: null
|
|
2710
|
-
title: Authorization
|
|
2711
|
-
responses:
|
|
2712
|
-
'200':
|
|
2713
|
-
content:
|
|
2714
|
-
application/json:
|
|
2715
|
-
schema:
|
|
2716
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2717
|
-
description: Cleanup completed successfully
|
|
2718
|
-
'401':
|
|
2719
|
-
content:
|
|
2720
|
-
application/json:
|
|
2721
|
-
schema:
|
|
2722
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2723
|
-
description: Invalid or missing API key
|
|
2724
|
-
'422':
|
|
2725
|
-
content:
|
|
2726
|
-
application/json:
|
|
2727
|
-
schema:
|
|
2728
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2729
|
-
description: Validation Error
|
|
2730
|
-
summary: Cleanup Expired Proxies
|
|
2731
|
-
tags:
|
|
2732
|
-
- Proxy Management
|
|
2733
|
-
/api/v1/proxies/maintenance/sync:
|
|
2734
|
-
get:
|
|
2735
|
-
description: "Synchronize proxies with all configured providers.\n \n \
|
|
2736
|
-
\ **Actions:**\n - Fetches active proxies from each provider\n - Updates\
|
|
2737
|
-
\ local database with new proxies\n - Updates status of existing proxies\n\
|
|
2738
|
-
\ - Marks expired proxies\n - Returns synchronization summary per provider"
|
|
2739
|
-
operationId: sync_proxies_api_v1_proxies_maintenance_sync_get
|
|
2740
|
-
parameters:
|
|
2741
|
-
- in: header
|
|
2742
|
-
name: authorization
|
|
2743
|
-
required: false
|
|
2744
|
-
schema:
|
|
2745
|
-
anyOf:
|
|
2746
|
-
- type: string
|
|
2747
|
-
- type: null
|
|
2748
|
-
title: Authorization
|
|
2749
|
-
responses:
|
|
2750
|
-
'200':
|
|
2751
|
-
content:
|
|
2752
|
-
application/json:
|
|
2753
|
-
schema:
|
|
2754
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2755
|
-
description: Synchronization completed successfully
|
|
2756
|
-
'401':
|
|
2757
|
-
content:
|
|
2758
|
-
application/json:
|
|
2759
|
-
schema:
|
|
2760
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2761
|
-
description: Invalid or missing API key
|
|
2762
|
-
'422':
|
|
2763
|
-
content:
|
|
2764
|
-
application/json:
|
|
2765
|
-
schema:
|
|
2766
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2767
|
-
description: Validation Error
|
|
2768
|
-
summary: Synchronize Proxies
|
|
2769
|
-
tags:
|
|
2770
|
-
- Proxy Management
|
|
2771
|
-
/api/v1/proxies/procurement/purchase:
|
|
2772
|
-
post:
|
|
2773
|
-
description: "Purchase proxies from specified provider.\n \n **Request\
|
|
2774
|
-
\ Body:**\n - `provider`: Proxy provider (proxy6, oxylabs, etc.)\n -\
|
|
2775
|
-
\ `count`: Number of proxies to purchase\n - `duration_days`: Proxy duration\
|
|
2776
|
-
\ in days\n - `country`: Target country code\n - `description`: Purchase\
|
|
2777
|
-
\ description (optional)\n \n **Response:**\n - Purchase result with\
|
|
2778
|
-
\ cost and proxy details\n - List of purchased proxies\n - Provider\
|
|
2779
|
-
\ transaction information"
|
|
2780
|
-
operationId: purchase_proxies_api_v1_proxies_procurement_purchase_post
|
|
2781
|
-
parameters:
|
|
2782
|
-
- in: header
|
|
2783
|
-
name: authorization
|
|
2784
|
-
required: false
|
|
2785
|
-
schema:
|
|
2786
|
-
anyOf:
|
|
2787
|
-
- type: string
|
|
2788
|
-
- type: null
|
|
2789
|
-
title: Authorization
|
|
2790
|
-
requestBody:
|
|
2791
|
-
content:
|
|
2792
|
-
application/json:
|
|
2793
|
-
schema:
|
|
2794
|
-
$ref: '#/components/schemas/ProxyPurchaseRequest'
|
|
2795
|
-
required: true
|
|
2796
|
-
responses:
|
|
2797
|
-
'200':
|
|
2798
|
-
content:
|
|
2799
|
-
application/json:
|
|
2800
|
-
schema:
|
|
2801
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2802
|
-
description: Proxies purchased successfully
|
|
2803
|
-
'400':
|
|
2804
|
-
content:
|
|
2805
|
-
application/json:
|
|
2806
|
-
schema:
|
|
2807
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2808
|
-
description: Invalid purchase request
|
|
2809
|
-
'401':
|
|
2810
|
-
content:
|
|
2811
|
-
application/json:
|
|
2812
|
-
schema:
|
|
2813
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2814
|
-
description: Invalid or missing API key
|
|
2815
|
-
'402':
|
|
2816
|
-
content:
|
|
2817
|
-
application/json:
|
|
2818
|
-
schema:
|
|
2819
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2820
|
-
description: Insufficient balance
|
|
2821
|
-
'422':
|
|
2822
|
-
content:
|
|
2823
|
-
application/json:
|
|
2824
|
-
schema:
|
|
2825
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2826
|
-
description: Validation Error
|
|
2827
|
-
summary: Purchase Proxies
|
|
2828
|
-
tags:
|
|
2829
|
-
- Proxy Management
|
|
2830
|
-
/api/v1/proxies/rotation/block:
|
|
2831
|
-
post:
|
|
2832
|
-
description: "Report a proxy as blocked and trigger automatic rotation.\n \
|
|
2833
|
-
\ \n **Request Body:**\n - `parser_id`: Parser reporting the block\n\
|
|
2834
|
-
\ - `proxy_id`: Blocked proxy identifier\n - `reason`: Reason for blocking\
|
|
2835
|
-
\ (optional)\n \n **Actions:**\n - Marks proxy as blocked in statistics\n\
|
|
2836
|
-
\ - Clears current allocation for parser\n - Triggers automatic rotation\
|
|
2837
|
-
\ on next request"
|
|
2838
|
-
operationId: report_blocked_proxy_api_v1_proxies_rotation_block_post
|
|
2839
|
-
parameters:
|
|
2840
|
-
- in: header
|
|
2841
|
-
name: authorization
|
|
2842
|
-
required: false
|
|
2843
|
-
schema:
|
|
2844
|
-
anyOf:
|
|
2845
|
-
- type: string
|
|
2846
|
-
- type: null
|
|
2847
|
-
title: Authorization
|
|
2848
|
-
requestBody:
|
|
2849
|
-
content:
|
|
2850
|
-
application/json:
|
|
2851
|
-
schema:
|
|
2852
|
-
$ref: '#/components/schemas/ProxyBlockRequest'
|
|
2853
|
-
required: true
|
|
2854
|
-
responses:
|
|
2855
|
-
'200':
|
|
2856
|
-
content:
|
|
2857
|
-
application/json:
|
|
2858
|
-
schema:
|
|
2859
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2860
|
-
description: Blocked proxy reported successfully
|
|
2861
|
-
'401':
|
|
2862
|
-
content:
|
|
2863
|
-
application/json:
|
|
2864
|
-
schema:
|
|
2865
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2866
|
-
description: Invalid or missing API key
|
|
2867
|
-
'404':
|
|
2868
|
-
content:
|
|
2869
|
-
application/json:
|
|
2870
|
-
schema:
|
|
2871
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2872
|
-
description: Proxy not found
|
|
2873
|
-
'422':
|
|
2874
|
-
content:
|
|
2875
|
-
application/json:
|
|
2876
|
-
schema:
|
|
2877
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2878
|
-
description: Validation Error
|
|
2879
|
-
summary: Report Blocked Proxy
|
|
2880
|
-
tags:
|
|
2881
|
-
- Proxy Management
|
|
2882
|
-
/api/v1/proxies/rotation/request:
|
|
2883
|
-
post:
|
|
2884
|
-
description: "Request a proxy for a parser using intelligent rotation strategies.\n\
|
|
2885
|
-
\ \n **Rotation Strategies:**\n - `success_rate`: Select proxy with\
|
|
2886
|
-
\ highest success rate\n - `round_robin`: Equal distribution across all\
|
|
2887
|
-
\ proxies\n - `weighted_random`: Random selection weighted by performance\n\
|
|
2888
|
-
\ - `least_failures`: Select proxy with fewest consecutive failures\n \
|
|
2889
|
-
\ - `least_used`: Select least used proxy\n \n **Request Body:**\n\
|
|
2890
|
-
\ - `parser_id`: Parser requesting the proxy\n - `strategy`: Rotation\
|
|
2891
|
-
\ strategy to use\n - `country`: Preferred country (optional)\n - `exclude_proxy_ids`:\
|
|
2892
|
-
\ Proxy IDs to exclude (optional)\n - `force_rotation`: Force new proxy\
|
|
2893
|
-
\ selection (optional)"
|
|
2894
|
-
operationId: request_proxy_rotation_api_v1_proxies_rotation_request_post
|
|
2895
|
-
parameters:
|
|
2896
|
-
- in: header
|
|
2897
|
-
name: authorization
|
|
2898
|
-
required: false
|
|
2899
|
-
schema:
|
|
2900
|
-
anyOf:
|
|
2901
|
-
- type: string
|
|
2902
|
-
- type: null
|
|
2903
|
-
title: Authorization
|
|
2904
|
-
requestBody:
|
|
2905
|
-
content:
|
|
2906
|
-
application/json:
|
|
2907
|
-
schema:
|
|
2908
|
-
$ref: '#/components/schemas/ProxyRotationRequest'
|
|
2909
|
-
required: true
|
|
2910
|
-
responses:
|
|
2911
|
-
'200':
|
|
2912
|
-
content:
|
|
2913
|
-
application/json:
|
|
2914
|
-
schema:
|
|
2915
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
2916
|
-
description: Proxy allocated successfully
|
|
2917
|
-
'400':
|
|
2918
|
-
content:
|
|
2919
|
-
application/json:
|
|
2920
|
-
schema:
|
|
2921
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2922
|
-
description: Invalid rotation request
|
|
2923
|
-
'401':
|
|
2924
|
-
content:
|
|
2925
|
-
application/json:
|
|
2926
|
-
schema:
|
|
2927
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2928
|
-
description: Invalid or missing API key
|
|
2929
|
-
'404':
|
|
2930
|
-
content:
|
|
2931
|
-
application/json:
|
|
2932
|
-
schema:
|
|
2933
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2934
|
-
description: No suitable proxies found
|
|
2935
|
-
'422':
|
|
2936
|
-
content:
|
|
2937
|
-
application/json:
|
|
2938
|
-
schema:
|
|
2939
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2940
|
-
description: Validation Error
|
|
2941
|
-
summary: Request Proxy Rotation
|
|
2942
|
-
tags:
|
|
2943
|
-
- Proxy Management
|
|
2944
|
-
/api/v1/proxies/statistics:
|
|
2945
|
-
get:
|
|
2946
|
-
description: "Get comprehensive proxy statistics and analytics.\n \n **Statistics\
|
|
2947
|
-
\ Include:**\n - Total proxy counts by status and provider\n - Performance\
|
|
2948
|
-
\ metrics and success rates\n - Rotation statistics and allocation data\n\
|
|
2949
|
-
\ - Procurement history and costs\n - Health and usage analytics"
|
|
2950
|
-
operationId: get_proxy_statistics_api_v1_proxies_statistics_get
|
|
2951
|
-
parameters:
|
|
2952
|
-
- in: header
|
|
2953
|
-
name: authorization
|
|
2954
|
-
required: false
|
|
2955
|
-
schema:
|
|
2956
|
-
anyOf:
|
|
2957
|
-
- type: string
|
|
2958
|
-
- type: null
|
|
2959
|
-
title: Authorization
|
|
2960
|
-
responses:
|
|
2961
|
-
'200':
|
|
2962
|
-
content:
|
|
2963
|
-
application/json:
|
|
2964
|
-
schema:
|
|
2965
|
-
additionalProperties: true
|
|
2966
|
-
title: Response Get Proxy Statistics Api V1 Proxies Statistics Get
|
|
2967
|
-
type: object
|
|
2968
|
-
description: Statistics retrieved successfully
|
|
2969
|
-
'401':
|
|
2970
|
-
content:
|
|
2971
|
-
application/json:
|
|
2972
|
-
schema:
|
|
2973
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
2974
|
-
description: Invalid or missing API key
|
|
2975
|
-
'422':
|
|
2976
|
-
content:
|
|
2977
|
-
application/json:
|
|
2978
|
-
schema:
|
|
2979
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
2980
|
-
description: Validation Error
|
|
2981
|
-
summary: Get Proxy Statistics
|
|
2982
|
-
tags:
|
|
2983
|
-
- Proxy Management
|
|
2984
|
-
/api/v1/proxies/{proxy_id}:
|
|
2985
|
-
get:
|
|
2986
|
-
description: "Get detailed information about a specific proxy.\n \n **Returns:**\n\
|
|
2987
|
-
\ - Complete proxy information including usage statistics\n - Connection\
|
|
2988
|
-
\ details (without sensitive credentials)\n - Performance metrics and health\
|
|
2989
|
-
\ status\n - Historical usage data"
|
|
2990
|
-
operationId: get_proxy_details_api_v1_proxies__proxy_id__get
|
|
2991
|
-
parameters:
|
|
2992
|
-
- description: Proxy identifier
|
|
2993
|
-
in: path
|
|
2994
|
-
name: proxy_id
|
|
2995
|
-
required: true
|
|
2996
|
-
schema:
|
|
2997
|
-
description: Proxy identifier
|
|
2998
|
-
title: Proxy Id
|
|
2999
|
-
type: string
|
|
3000
|
-
- in: header
|
|
3001
|
-
name: authorization
|
|
3002
|
-
required: false
|
|
3003
|
-
schema:
|
|
3004
|
-
anyOf:
|
|
3005
|
-
- type: string
|
|
3006
|
-
- type: null
|
|
3007
|
-
title: Authorization
|
|
3008
|
-
responses:
|
|
3009
|
-
'200':
|
|
3010
|
-
content:
|
|
3011
|
-
application/json:
|
|
3012
|
-
schema:
|
|
3013
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
3014
|
-
description: Proxy details retrieved successfully
|
|
3015
|
-
'401':
|
|
3016
|
-
content:
|
|
3017
|
-
application/json:
|
|
3018
|
-
schema:
|
|
3019
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
3020
|
-
description: Invalid or missing API key
|
|
3021
|
-
'404':
|
|
3022
|
-
content:
|
|
3023
|
-
application/json:
|
|
3024
|
-
schema:
|
|
3025
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
3026
|
-
description: Proxy not found
|
|
3027
|
-
'422':
|
|
3028
|
-
content:
|
|
3029
|
-
application/json:
|
|
3030
|
-
schema:
|
|
3031
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3032
|
-
description: Validation Error
|
|
3033
|
-
summary: Get Proxy Details
|
|
3034
|
-
tags:
|
|
3035
|
-
- Proxy Management
|
|
3036
|
-
/api/v1/proxies/{proxy_id}/usage:
|
|
3037
|
-
post:
|
|
3038
|
-
description: "Record proxy usage statistics for performance tracking.\n \n\
|
|
3039
|
-
\ **Request Body:**\n - `success`: Whether the request was successful\n\
|
|
3040
|
-
\ - `response_time_ms`: Response time in milliseconds (optional)\n -\
|
|
3041
|
-
\ `error_reason`: Reason for failure if not successful (optional)\n \n\
|
|
3042
|
-
\ **Usage:**\n This endpoint should be called by parsers after each\
|
|
3043
|
-
\ proxy usage\n to maintain accurate performance statistics for rotation\
|
|
3044
|
-
\ algorithms."
|
|
3045
|
-
operationId: record_proxy_usage_api_v1_proxies__proxy_id__usage_post
|
|
3046
|
-
parameters:
|
|
3047
|
-
- description: Proxy identifier
|
|
3048
|
-
in: path
|
|
3049
|
-
name: proxy_id
|
|
3050
|
-
required: true
|
|
3051
|
-
schema:
|
|
3052
|
-
description: Proxy identifier
|
|
3053
|
-
title: Proxy Id
|
|
3054
|
-
type: string
|
|
3055
|
-
- in: header
|
|
3056
|
-
name: authorization
|
|
3057
|
-
required: false
|
|
3058
|
-
schema:
|
|
3059
|
-
anyOf:
|
|
3060
|
-
- type: string
|
|
3061
|
-
- type: null
|
|
3062
|
-
title: Authorization
|
|
3063
|
-
requestBody:
|
|
3064
|
-
content:
|
|
3065
|
-
application/json:
|
|
3066
|
-
schema:
|
|
3067
|
-
$ref: '#/components/schemas/ProxyUsageRequest'
|
|
3068
|
-
required: true
|
|
3069
|
-
responses:
|
|
3070
|
-
'200':
|
|
3071
|
-
content:
|
|
3072
|
-
application/json:
|
|
3073
|
-
schema:
|
|
3074
|
-
$ref: '#/components/schemas/SuccessResponse'
|
|
3075
|
-
description: Usage recorded successfully
|
|
3076
|
-
'401':
|
|
3077
|
-
content:
|
|
3078
|
-
application/json:
|
|
3079
|
-
schema:
|
|
3080
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
3081
|
-
description: Invalid or missing API key
|
|
3082
|
-
'404':
|
|
3083
|
-
content:
|
|
3084
|
-
application/json:
|
|
3085
|
-
schema:
|
|
3086
|
-
$ref: '#/components/schemas/ErrorResponse'
|
|
3087
|
-
description: Proxy not found
|
|
3088
|
-
'422':
|
|
3089
|
-
content:
|
|
3090
|
-
application/json:
|
|
3091
|
-
schema:
|
|
3092
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3093
|
-
description: Validation Error
|
|
3094
|
-
summary: Record Proxy Usage
|
|
3095
|
-
tags:
|
|
3096
|
-
- Proxy Management
|
|
3097
|
-
/api/v1/ws/broadcast/{room}:
|
|
3098
|
-
post:
|
|
3099
|
-
description: "Broadcast message to a specific room via Socket.IO.\n\n**Room\
|
|
3100
|
-
\ Examples:**\n- `global` - All connected clients\n- `parser:{parser_id}`\
|
|
3101
|
-
\ - Specific parser\n- `developer:{developer_id}` - Specific developer\n-\
|
|
3102
|
-
\ `admins` - Admin users only\n\n**Use Cases:**\n- System notifications\n\
|
|
3103
|
-
- Parser status updates \n- Emergency announcements\n- Real-time data updates"
|
|
3104
|
-
operationId: broadcast_to_room_api_v1_ws_broadcast__room__post
|
|
3105
|
-
parameters:
|
|
3106
|
-
- in: path
|
|
3107
|
-
name: room
|
|
3108
|
-
required: true
|
|
3109
|
-
schema:
|
|
3110
|
-
title: Room
|
|
3111
|
-
type: string
|
|
3112
|
-
requestBody:
|
|
3113
|
-
content:
|
|
3114
|
-
application/json:
|
|
3115
|
-
schema:
|
|
3116
|
-
$ref: '#/components/schemas/BroadcastMessage'
|
|
3117
|
-
required: true
|
|
3118
|
-
responses:
|
|
3119
|
-
'200':
|
|
3120
|
-
content:
|
|
3121
|
-
application/json:
|
|
3122
|
-
schema:
|
|
3123
|
-
$ref: '#/components/schemas/BroadcastResponse'
|
|
3124
|
-
description: Successful Response
|
|
3125
|
-
'422':
|
|
3126
|
-
content:
|
|
3127
|
-
application/json:
|
|
3128
|
-
schema:
|
|
3129
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3130
|
-
description: Validation Error
|
|
3131
|
-
summary: Broadcast To Room
|
|
3132
|
-
tags:
|
|
3133
|
-
- WebSocket API
|
|
3134
|
-
/api/v1/ws/connections:
|
|
3135
|
-
get:
|
|
3136
|
-
description: "Get detailed connection information.\n\nReturns:\n Lists of\
|
|
3137
|
-
\ connected parsers, developers, and active rooms"
|
|
3138
|
-
operationId: get_connections_api_v1_ws_connections_get
|
|
3139
|
-
responses:
|
|
3140
|
-
'200':
|
|
3141
|
-
content:
|
|
3142
|
-
application/json:
|
|
3143
|
-
schema:
|
|
3144
|
-
$ref: '#/components/schemas/ConnectionsResponse'
|
|
3145
|
-
description: Successful Response
|
|
3146
|
-
summary: Get Connections
|
|
3147
|
-
tags:
|
|
3148
|
-
- WebSocket API
|
|
3149
|
-
/api/v1/ws/health:
|
|
3150
|
-
get:
|
|
3151
|
-
description: "Health check endpoint for WebSocket service.\n\nReturns:\n \
|
|
3152
|
-
\ WebSocket manager health status and connection statistics"
|
|
3153
|
-
operationId: websocket_health_check_api_v1_ws_health_get
|
|
3154
|
-
responses:
|
|
3155
|
-
'200':
|
|
3156
|
-
content:
|
|
3157
|
-
application/json:
|
|
3158
|
-
schema:
|
|
3159
|
-
$ref: '#/components/schemas/HealthStatus'
|
|
3160
|
-
description: Successful Response
|
|
3161
|
-
summary: Websocket Health Check
|
|
3162
|
-
tags:
|
|
3163
|
-
- WebSocket API
|
|
3164
|
-
/api/v1/ws/notification/system:
|
|
3165
|
-
post:
|
|
3166
|
-
description: 'Broadcast system notification to all connected clients.
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
**Priority Levels:**
|
|
3170
|
-
|
|
3171
|
-
- `low` - Informational messages
|
|
3172
|
-
|
|
3173
|
-
- `normal` - Standard notifications (default)
|
|
3174
|
-
|
|
3175
|
-
- `high` - Important updates
|
|
3176
|
-
|
|
3177
|
-
- `urgent` - Critical alerts
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
**Use Cases:**
|
|
3181
|
-
|
|
3182
|
-
- System maintenance announcements
|
|
3183
|
-
|
|
3184
|
-
- Service updates
|
|
3185
|
-
|
|
3186
|
-
- Emergency alerts'
|
|
3187
|
-
operationId: broadcast_system_notification_api_v1_ws_notification_system_post
|
|
3188
|
-
parameters:
|
|
3189
|
-
- in: query
|
|
3190
|
-
name: title
|
|
3191
|
-
required: true
|
|
3192
|
-
schema:
|
|
3193
|
-
title: Title
|
|
3194
|
-
type: string
|
|
3195
|
-
- in: query
|
|
3196
|
-
name: content
|
|
3197
|
-
required: true
|
|
3198
|
-
schema:
|
|
3199
|
-
title: Content
|
|
3200
|
-
type: string
|
|
3201
|
-
- in: query
|
|
3202
|
-
name: priority
|
|
3203
|
-
required: false
|
|
3204
|
-
schema:
|
|
3205
|
-
default: normal
|
|
3206
|
-
title: Priority
|
|
3207
|
-
type: string
|
|
3208
|
-
responses:
|
|
3209
|
-
'200':
|
|
3210
|
-
content:
|
|
3211
|
-
application/json:
|
|
3212
|
-
schema:
|
|
3213
|
-
$ref: '#/components/schemas/SystemNotificationResponse'
|
|
3214
|
-
description: Successful Response
|
|
3215
|
-
'422':
|
|
3216
|
-
content:
|
|
3217
|
-
application/json:
|
|
3218
|
-
schema:
|
|
3219
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3220
|
-
description: Validation Error
|
|
3221
|
-
summary: Broadcast System Notification
|
|
3222
|
-
tags:
|
|
3223
|
-
- WebSocket API
|
|
3224
|
-
/api/v1/ws/send/developer/{developer_id}:
|
|
3225
|
-
post:
|
|
3226
|
-
description: 'Send message directly to a specific developer.
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
**Use Cases:**
|
|
3230
|
-
|
|
3231
|
-
- Personal notifications
|
|
3232
|
-
|
|
3233
|
-
- Dashboard updates
|
|
3234
|
-
|
|
3235
|
-
- Direct developer communication'
|
|
3236
|
-
operationId: send_to_developer_api_v1_ws_send_developer__developer_id__post
|
|
3237
|
-
parameters:
|
|
3238
|
-
- in: path
|
|
3239
|
-
name: developer_id
|
|
3240
|
-
required: true
|
|
3241
|
-
schema:
|
|
3242
|
-
title: Developer Id
|
|
3243
|
-
type: string
|
|
3244
|
-
requestBody:
|
|
3245
|
-
content:
|
|
3246
|
-
application/json:
|
|
3247
|
-
schema:
|
|
3248
|
-
$ref: '#/components/schemas/BroadcastMessage'
|
|
3249
|
-
required: true
|
|
3250
|
-
responses:
|
|
3251
|
-
'200':
|
|
3252
|
-
content:
|
|
3253
|
-
application/json:
|
|
3254
|
-
schema:
|
|
3255
|
-
$ref: '#/components/schemas/DeveloperMessageResponse'
|
|
3256
|
-
description: Successful Response
|
|
3257
|
-
'422':
|
|
3258
|
-
content:
|
|
3259
|
-
application/json:
|
|
3260
|
-
schema:
|
|
3261
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3262
|
-
description: Validation Error
|
|
3263
|
-
summary: Send To Developer
|
|
3264
|
-
tags:
|
|
3265
|
-
- WebSocket API
|
|
3266
|
-
/api/v1/ws/send/parser/{parser_id}:
|
|
3267
|
-
post:
|
|
3268
|
-
description: 'Send message directly to a specific parser.
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
**Use Cases:**
|
|
3272
|
-
|
|
3273
|
-
- Command execution
|
|
3274
|
-
|
|
3275
|
-
- Configuration updates
|
|
3276
|
-
|
|
3277
|
-
- Direct parser communication'
|
|
3278
|
-
operationId: send_to_parser_api_v1_ws_send_parser__parser_id__post
|
|
3279
|
-
parameters:
|
|
3280
|
-
- in: path
|
|
3281
|
-
name: parser_id
|
|
3282
|
-
required: true
|
|
3283
|
-
schema:
|
|
3284
|
-
title: Parser Id
|
|
3285
|
-
type: string
|
|
3286
|
-
requestBody:
|
|
3287
|
-
content:
|
|
3288
|
-
application/json:
|
|
3289
|
-
schema:
|
|
3290
|
-
$ref: '#/components/schemas/BroadcastMessage'
|
|
3291
|
-
required: true
|
|
3292
|
-
responses:
|
|
3293
|
-
'200':
|
|
3294
|
-
content:
|
|
3295
|
-
application/json:
|
|
3296
|
-
schema:
|
|
3297
|
-
$ref: '#/components/schemas/ParserMessageResponse'
|
|
3298
|
-
description: Successful Response
|
|
3299
|
-
'422':
|
|
3300
|
-
content:
|
|
3301
|
-
application/json:
|
|
3302
|
-
schema:
|
|
3303
|
-
$ref: '#/components/schemas/HTTPValidationError'
|
|
3304
|
-
description: Validation Error
|
|
3305
|
-
summary: Send To Parser
|
|
3306
|
-
tags:
|
|
3307
|
-
- WebSocket API
|
|
3308
|
-
/api/v1/ws/stats:
|
|
3309
|
-
get:
|
|
3310
|
-
description: "Get WebSocket connection statistics.\n\nReturns:\n Current\
|
|
3311
|
-
\ connection counts, room information, and performance metrics"
|
|
3312
|
-
operationId: websocket_stats_api_v1_ws_stats_get
|
|
3313
|
-
responses:
|
|
3314
|
-
'200':
|
|
3315
|
-
content:
|
|
3316
|
-
application/json:
|
|
3317
|
-
schema:
|
|
3318
|
-
$ref: '#/components/schemas/ConnectionStats'
|
|
3319
|
-
description: Successful Response
|
|
3320
|
-
summary: Websocket Stats
|
|
3321
|
-
tags:
|
|
3322
|
-
- WebSocket API
|
|
3323
|
-
/health:
|
|
3324
|
-
get:
|
|
3325
|
-
description: "Legacy health check endpoint for backwards compatibility.\n \
|
|
3326
|
-
\ \n **Note:** This endpoint is deprecated. Please use `/api/v1/health/`\
|
|
3327
|
-
\ for comprehensive health checks.\n \n This simple endpoint\
|
|
3328
|
-
\ returns basic service status for legacy monitoring systems."
|
|
3329
|
-
operationId: legacy_health_check_health_get
|
|
3330
|
-
responses:
|
|
3331
|
-
'200':
|
|
3332
|
-
content:
|
|
3333
|
-
application/json:
|
|
3334
|
-
schema: {}
|
|
3335
|
-
description: Service is running
|
|
3336
|
-
'503':
|
|
3337
|
-
description: Service unavailable
|
|
3338
|
-
summary: Legacy Health Check
|
|
3339
|
-
tags:
|
|
3340
|
-
- System Health
|
|
3341
|
-
servers:
|
|
3342
|
-
- description: Production server
|
|
3343
|
-
url: https://api.unrealon.com
|
|
3344
|
-
- description: Staging server
|
|
3345
|
-
url: https://staging-api.unrealon.com
|
|
3346
|
-
- description: Local development server
|
|
3347
|
-
url: http://localhost:8000
|