mirror of
https://github.com/EZ-Api/ez-api.git
synced 2026-01-13 17:47:51 +00:00
Add auto-generated Swagger/OpenAPI documentation files for the EZ-API Control Plane. These files are generated by swaggo/swag and provide comprehensive API documentation including: - All admin endpoints (alerts, API keys, bindings, masters, etc.) - Master/tenant endpoints for token management and stats - Internal endpoints for DP-CP communication - Authentication schemes (AdminAuth, MasterAuth) - Request/response schema definitions
4032 lines
97 KiB
YAML
4032 lines
97 KiB
YAML
basePath: /
|
|
definitions:
|
|
gin.H:
|
|
additionalProperties: {}
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_dto.APIKeyDTO:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
account_id:
|
|
type: string
|
|
api_key:
|
|
type: string
|
|
auto_ban:
|
|
type: boolean
|
|
ban_reason:
|
|
type: string
|
|
ban_until:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
group_id:
|
|
type: integer
|
|
project_id:
|
|
type: string
|
|
refresh_token:
|
|
type: string
|
|
status:
|
|
type: string
|
|
weight:
|
|
type: integer
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_dto.BindingDTO:
|
|
properties:
|
|
group_id:
|
|
type: integer
|
|
namespace:
|
|
type: string
|
|
public_model:
|
|
type: string
|
|
selector_type:
|
|
type: string
|
|
selector_value:
|
|
type: string
|
|
status:
|
|
type: string
|
|
weight:
|
|
type: integer
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_dto.ModelDTO:
|
|
properties:
|
|
context_window:
|
|
type: integer
|
|
cost_per_token:
|
|
type: number
|
|
kind:
|
|
type: string
|
|
max_output_tokens:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
supports_fim:
|
|
type: boolean
|
|
supports_functions:
|
|
type: boolean
|
|
supports_tool_choice:
|
|
type: boolean
|
|
supports_vision:
|
|
type: boolean
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_dto.ProviderGroupDTO:
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
google_location:
|
|
type: string
|
|
google_project:
|
|
type: string
|
|
headers_profile:
|
|
type: string
|
|
models:
|
|
items:
|
|
type: string
|
|
type: array
|
|
name:
|
|
type: string
|
|
static_headers:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.APIKey:
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
account_id:
|
|
type: string
|
|
api_key:
|
|
type: string
|
|
auto_ban:
|
|
type: boolean
|
|
ban_reason:
|
|
type: string
|
|
ban_until:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
expires_at:
|
|
type: string
|
|
failure_rate:
|
|
type: number
|
|
failure_requests:
|
|
type: integer
|
|
group_id:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
project_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
success_rate:
|
|
type: number
|
|
success_requests:
|
|
type: integer
|
|
total_requests:
|
|
type: integer
|
|
updatedAt:
|
|
type: string
|
|
weight:
|
|
type: integer
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.Binding:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
group_id:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
namespace:
|
|
type: string
|
|
public_model:
|
|
type: string
|
|
selector_type:
|
|
type: string
|
|
selector_value:
|
|
type: string
|
|
status:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
weight:
|
|
type: integer
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.LogRecord:
|
|
properties:
|
|
audit_reason:
|
|
type: string
|
|
client_ip:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
error_message:
|
|
type: string
|
|
group:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
key_id:
|
|
type: integer
|
|
latency_ms:
|
|
type: integer
|
|
master_id:
|
|
type: integer
|
|
model:
|
|
type: string
|
|
provider_id:
|
|
type: integer
|
|
provider_name:
|
|
type: string
|
|
provider_type:
|
|
type: string
|
|
request_body:
|
|
description: optional, only when audit triggered
|
|
type: string
|
|
request_size:
|
|
type: integer
|
|
response_body:
|
|
description: optional, only when audit triggered
|
|
type: string
|
|
response_size:
|
|
type: integer
|
|
status_code:
|
|
type: integer
|
|
tokens_in:
|
|
type: integer
|
|
tokens_out:
|
|
type: integer
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.Model:
|
|
properties:
|
|
context_window:
|
|
type: integer
|
|
cost_per_token:
|
|
type: number
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
id:
|
|
type: integer
|
|
kind:
|
|
type: string
|
|
max_output_tokens:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
supports_fim:
|
|
type: boolean
|
|
supports_functions:
|
|
type: boolean
|
|
supports_tool_choice:
|
|
type: boolean
|
|
supports_vision:
|
|
type: boolean
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.Namespace:
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
description:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.ProviderGroup:
|
|
properties:
|
|
base_url:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
failure_rate:
|
|
type: number
|
|
failure_requests:
|
|
type: integer
|
|
google_location:
|
|
type: string
|
|
google_project:
|
|
type: string
|
|
headers_profile:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
models:
|
|
description: comma-separated list of supported models
|
|
type: string
|
|
name:
|
|
type: string
|
|
static_headers:
|
|
type: string
|
|
status:
|
|
type: string
|
|
success_rate:
|
|
type: number
|
|
success_requests:
|
|
type: integer
|
|
total_requests:
|
|
type: integer
|
|
type:
|
|
description: openai, anthropic, gemini
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_service.LogWebhookConfig:
|
|
properties:
|
|
cooldown_seconds:
|
|
type: integer
|
|
enabled:
|
|
type: boolean
|
|
secret:
|
|
type: string
|
|
status_code_threshold:
|
|
type: integer
|
|
threshold:
|
|
type: integer
|
|
url:
|
|
type: string
|
|
window_seconds:
|
|
type: integer
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_service.ModelRegistryCheckResult:
|
|
properties:
|
|
current_upstream_ref:
|
|
type: string
|
|
current_version:
|
|
type: string
|
|
enabled:
|
|
type: boolean
|
|
latest_version:
|
|
type: string
|
|
needs_refresh:
|
|
type: boolean
|
|
upstream_ref:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_service.ModelRegistryStatus:
|
|
properties:
|
|
cache_current:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.modelRegistryFile'
|
|
cache_prev:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.modelRegistryFile'
|
|
enabled:
|
|
type: boolean
|
|
last_error:
|
|
type: string
|
|
last_refresh_at:
|
|
type: integer
|
|
models_dev_ref:
|
|
type: string
|
|
models_dev_url:
|
|
type: string
|
|
redis_meta:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_service.modelRegistryFile:
|
|
properties:
|
|
meta:
|
|
$ref: '#/definitions/modelcap.Meta'
|
|
models:
|
|
additionalProperties:
|
|
$ref: '#/definitions/modelcap.Model'
|
|
type: object
|
|
type: object
|
|
gorm.DeletedAt:
|
|
properties:
|
|
time:
|
|
type: string
|
|
valid:
|
|
description: Valid is true if Time is not NULL
|
|
type: boolean
|
|
type: object
|
|
internal_api.APIKeyStatsSummaryResponse:
|
|
properties:
|
|
failure_rate:
|
|
type: number
|
|
failure_requests:
|
|
type: integer
|
|
success_rate:
|
|
type: number
|
|
success_requests:
|
|
type: integer
|
|
total_requests:
|
|
type: integer
|
|
type: object
|
|
internal_api.AboutResponse:
|
|
properties:
|
|
description:
|
|
example: High-performance LLM API gateway
|
|
type: string
|
|
name:
|
|
example: EZ-API Gateway
|
|
type: string
|
|
repository:
|
|
example: https://github.com/ez-api/ez-api
|
|
type: string
|
|
version:
|
|
example: 0.1.0
|
|
type: string
|
|
type: object
|
|
internal_api.AccessResponse:
|
|
properties:
|
|
default_namespace:
|
|
type: string
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
internal_api.AckAlertRequest:
|
|
properties:
|
|
acked_by:
|
|
type: string
|
|
type: object
|
|
internal_api.AdminUsageStatsResponse:
|
|
properties:
|
|
active_masters:
|
|
type: integer
|
|
by_master:
|
|
items:
|
|
$ref: '#/definitions/internal_api.MasterUsageAgg'
|
|
type: array
|
|
by_provider:
|
|
items:
|
|
$ref: '#/definitions/internal_api.ProviderUsageAgg'
|
|
type: array
|
|
period:
|
|
type: string
|
|
total_masters:
|
|
type: integer
|
|
total_requests:
|
|
type: integer
|
|
total_tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.AlertStats:
|
|
properties:
|
|
acknowledged:
|
|
type: integer
|
|
active:
|
|
type: integer
|
|
critical:
|
|
type: integer
|
|
info:
|
|
type: integer
|
|
resolved:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
warning:
|
|
type: integer
|
|
type: object
|
|
internal_api.AlertThresholdView:
|
|
properties:
|
|
global_qps:
|
|
type: integer
|
|
master_rpd:
|
|
type: integer
|
|
master_rpm:
|
|
type: integer
|
|
master_tpd:
|
|
type: integer
|
|
master_tpm:
|
|
type: integer
|
|
min_rpm_requests_1m:
|
|
type: integer
|
|
min_tpm_tokens_1m:
|
|
type: integer
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.AlertView:
|
|
properties:
|
|
acked_at:
|
|
type: integer
|
|
acked_by:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
expires_at:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
metadata:
|
|
type: string
|
|
related_id:
|
|
type: integer
|
|
related_name:
|
|
type: string
|
|
related_type:
|
|
type: string
|
|
resolved_at:
|
|
type: integer
|
|
severity:
|
|
type: string
|
|
status:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.BatchActionRequest:
|
|
properties:
|
|
action:
|
|
type: string
|
|
ids:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
status:
|
|
type: string
|
|
type: object
|
|
internal_api.BatchResponse:
|
|
properties:
|
|
action:
|
|
type: string
|
|
failed:
|
|
items:
|
|
$ref: '#/definitions/internal_api.BatchResult'
|
|
type: array
|
|
success:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
internal_api.BatchResult:
|
|
properties:
|
|
error:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
type: object
|
|
internal_api.CountStats:
|
|
properties:
|
|
active:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.CreateAlertRequest:
|
|
properties:
|
|
expires_at:
|
|
type: integer
|
|
message:
|
|
type: string
|
|
metadata:
|
|
type: string
|
|
related_id:
|
|
type: integer
|
|
related_name:
|
|
type: string
|
|
related_type:
|
|
type: string
|
|
severity:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- severity
|
|
- title
|
|
- type
|
|
type: object
|
|
internal_api.CreateMasterRequest:
|
|
properties:
|
|
global_qps:
|
|
type: integer
|
|
group:
|
|
type: string
|
|
max_child_keys:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
required:
|
|
- group
|
|
- name
|
|
type: object
|
|
internal_api.DashboardSummaryResponse:
|
|
properties:
|
|
keys:
|
|
$ref: '#/definitions/internal_api.CountStats'
|
|
latency:
|
|
$ref: '#/definitions/internal_api.LatencyStats'
|
|
masters:
|
|
$ref: '#/definitions/internal_api.CountStats'
|
|
period:
|
|
type: string
|
|
provider_keys:
|
|
$ref: '#/definitions/internal_api.ProviderKeyStats'
|
|
requests:
|
|
$ref: '#/definitions/internal_api.RequestStats'
|
|
tokens:
|
|
$ref: '#/definitions/internal_api.TokenStats'
|
|
top_models:
|
|
items:
|
|
$ref: '#/definitions/internal_api.TopModelStat'
|
|
type: array
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.DeleteLogsRequest:
|
|
properties:
|
|
before:
|
|
type: string
|
|
key_id:
|
|
type: integer
|
|
model:
|
|
type: string
|
|
type: object
|
|
internal_api.DeleteLogsResponse:
|
|
properties:
|
|
deleted_count:
|
|
type: integer
|
|
type: object
|
|
internal_api.GroupedStatsItem:
|
|
properties:
|
|
avg_latency_ms:
|
|
type: number
|
|
count:
|
|
type: integer
|
|
date:
|
|
description: For group_by=day
|
|
type: string
|
|
hour:
|
|
description: For group_by=hour
|
|
type: string
|
|
minute:
|
|
description: For group_by=minute
|
|
type: string
|
|
model:
|
|
description: For group_by=model
|
|
type: string
|
|
month:
|
|
description: For group_by=month
|
|
type: string
|
|
tokens_in:
|
|
type: integer
|
|
tokens_out:
|
|
type: integer
|
|
type: object
|
|
internal_api.GroupedStatsResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/internal_api.GroupedStatsItem'
|
|
type: array
|
|
type: object
|
|
internal_api.IssueChildKeyRequest:
|
|
properties:
|
|
allow_ips:
|
|
type: string
|
|
deny_ips:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
group:
|
|
type: string
|
|
model_limits:
|
|
type: string
|
|
model_limits_enabled:
|
|
type: boolean
|
|
scopes:
|
|
type: string
|
|
type: object
|
|
internal_api.KeyUsageStat:
|
|
properties:
|
|
key_id:
|
|
type: integer
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.LatencyStats:
|
|
properties:
|
|
avg_ms:
|
|
type: number
|
|
type: object
|
|
internal_api.ListAlertsResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/internal_api.AlertView'
|
|
type: array
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.ListLogsResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/internal_api.LogView'
|
|
type: array
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.ListMasterLogsResponse:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/definitions/internal_api.MasterLogView'
|
|
type: array
|
|
limit:
|
|
type: integer
|
|
offset:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.LogStatsResponse:
|
|
properties:
|
|
avg_latency_ms:
|
|
type: number
|
|
by_status:
|
|
additionalProperties:
|
|
format: int64
|
|
type: integer
|
|
type: object
|
|
tokens_in:
|
|
type: integer
|
|
tokens_out:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.LogView:
|
|
properties:
|
|
audit_reason:
|
|
type: string
|
|
client_ip:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
error_message:
|
|
type: string
|
|
group:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
key_id:
|
|
type: integer
|
|
latency_ms:
|
|
type: integer
|
|
model:
|
|
type: string
|
|
provider_id:
|
|
type: integer
|
|
provider_name:
|
|
type: string
|
|
provider_type:
|
|
type: string
|
|
request_body:
|
|
type: string
|
|
request_size:
|
|
type: integer
|
|
response_size:
|
|
type: integer
|
|
status_code:
|
|
type: integer
|
|
tokens_in:
|
|
type: integer
|
|
tokens_out:
|
|
type: integer
|
|
type: object
|
|
internal_api.ManageMasterRequest:
|
|
properties:
|
|
action:
|
|
description: freeze/unfreeze
|
|
type: string
|
|
required:
|
|
- action
|
|
type: object
|
|
internal_api.MasterLogView:
|
|
properties:
|
|
created_at:
|
|
type: integer
|
|
error_message:
|
|
type: string
|
|
group:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
key_id:
|
|
type: integer
|
|
latency_ms:
|
|
type: integer
|
|
model:
|
|
type: string
|
|
request_size:
|
|
type: integer
|
|
response_size:
|
|
type: integer
|
|
status_code:
|
|
type: integer
|
|
tokens_in:
|
|
type: integer
|
|
tokens_out:
|
|
type: integer
|
|
type: object
|
|
internal_api.MasterRealtimeSummaryView:
|
|
properties:
|
|
master_id:
|
|
type: integer
|
|
qps:
|
|
type: integer
|
|
rate_limited:
|
|
type: boolean
|
|
type: object
|
|
internal_api.MasterRealtimeView:
|
|
properties:
|
|
qps:
|
|
type: integer
|
|
qps_limit:
|
|
type: integer
|
|
rate_limited:
|
|
type: boolean
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.MasterUsageAgg:
|
|
properties:
|
|
master_id:
|
|
type: integer
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.MasterUsageStatsResponse:
|
|
properties:
|
|
by_key:
|
|
items:
|
|
$ref: '#/definitions/internal_api.KeyUsageStat'
|
|
type: array
|
|
by_model:
|
|
items:
|
|
$ref: '#/definitions/internal_api.ModelUsageStat'
|
|
type: array
|
|
period:
|
|
type: string
|
|
total_requests:
|
|
type: integer
|
|
total_tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.MasterView:
|
|
properties:
|
|
created_at:
|
|
type: integer
|
|
default_namespace:
|
|
type: string
|
|
epoch:
|
|
type: integer
|
|
global_qps:
|
|
type: integer
|
|
group:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
max_child_keys:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
namespaces:
|
|
type: string
|
|
realtime:
|
|
$ref: '#/definitions/internal_api.MasterRealtimeView'
|
|
status:
|
|
type: string
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.ModelUsageStat:
|
|
properties:
|
|
model:
|
|
type: string
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.NamespaceRequest:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type: object
|
|
internal_api.OperationLogView:
|
|
properties:
|
|
actor:
|
|
type: string
|
|
client_ip:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
error_message:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
latency_ms:
|
|
type: integer
|
|
method:
|
|
type: string
|
|
path:
|
|
type: string
|
|
query:
|
|
type: string
|
|
request_id:
|
|
type: string
|
|
status_code:
|
|
type: integer
|
|
user_agent:
|
|
type: string
|
|
type: object
|
|
internal_api.ProviderKeyStats:
|
|
properties:
|
|
active:
|
|
type: integer
|
|
auto_disabled:
|
|
type: integer
|
|
suspended:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.ProviderUsageAgg:
|
|
properties:
|
|
provider_id:
|
|
type: integer
|
|
provider_name:
|
|
type: string
|
|
provider_type:
|
|
type: string
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.RequestStats:
|
|
properties:
|
|
error_rate:
|
|
type: number
|
|
failed:
|
|
type: integer
|
|
success:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.StatusResponse:
|
|
properties:
|
|
status:
|
|
example: ok
|
|
type: string
|
|
uptime:
|
|
example: 72h30m15s
|
|
type: string
|
|
version:
|
|
example: 0.1.0
|
|
type: string
|
|
type: object
|
|
internal_api.SystemRealtimeView:
|
|
properties:
|
|
by_master:
|
|
items:
|
|
$ref: '#/definitions/internal_api.MasterRealtimeSummaryView'
|
|
type: array
|
|
qps:
|
|
type: integer
|
|
rate_limited_count:
|
|
type: integer
|
|
rpm:
|
|
type: integer
|
|
updated_at:
|
|
type: integer
|
|
type: object
|
|
internal_api.TokenStats:
|
|
properties:
|
|
input:
|
|
type: integer
|
|
output:
|
|
type: integer
|
|
total:
|
|
type: integer
|
|
type: object
|
|
internal_api.TokenView:
|
|
properties:
|
|
allow_ips:
|
|
type: string
|
|
created_at:
|
|
type: integer
|
|
default_namespace:
|
|
type: string
|
|
deny_ips:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
group:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
issued_at_epoch:
|
|
type: integer
|
|
issued_by:
|
|
type: string
|
|
last_accessed_at:
|
|
type: string
|
|
model_limits:
|
|
type: string
|
|
model_limits_enabled:
|
|
type: boolean
|
|
namespaces:
|
|
type: string
|
|
quota_limit:
|
|
type: integer
|
|
quota_reset_at:
|
|
type: string
|
|
quota_reset_type:
|
|
type: string
|
|
quota_used:
|
|
type: integer
|
|
request_count:
|
|
type: integer
|
|
scopes:
|
|
type: string
|
|
status:
|
|
type: string
|
|
updated_at:
|
|
type: integer
|
|
used_tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.TopModelStat:
|
|
properties:
|
|
model:
|
|
type: string
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.UpdateAccessRequest:
|
|
properties:
|
|
default_namespace:
|
|
type: string
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
propagate_to_keys:
|
|
type: boolean
|
|
type: object
|
|
internal_api.UpdateAlertThresholdsRequest:
|
|
properties:
|
|
global_qps:
|
|
type: integer
|
|
master_rpd:
|
|
type: integer
|
|
master_rpm:
|
|
type: integer
|
|
master_tpd:
|
|
type: integer
|
|
master_tpm:
|
|
type: integer
|
|
min_rpm_requests_1m:
|
|
type: integer
|
|
min_tpm_tokens_1m:
|
|
type: integer
|
|
type: object
|
|
internal_api.UpdateMasterRequest:
|
|
properties:
|
|
global_qps:
|
|
type: integer
|
|
group:
|
|
type: string
|
|
max_child_keys:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
propagate_to_keys:
|
|
type: boolean
|
|
type: object
|
|
internal_api.UpdateNamespaceRequest:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type: object
|
|
internal_api.UpdateTokenRequest:
|
|
properties:
|
|
allow_ips:
|
|
type: string
|
|
deny_ips:
|
|
type: string
|
|
expires_at:
|
|
type: string
|
|
model_limits:
|
|
type: string
|
|
model_limits_enabled:
|
|
type: boolean
|
|
scopes:
|
|
type: string
|
|
status:
|
|
description: active/suspended
|
|
type: string
|
|
type: object
|
|
internal_api.WhoamiResponse:
|
|
properties:
|
|
created_at:
|
|
example: 1703505600
|
|
type: integer
|
|
default_namespace:
|
|
example: default
|
|
type: string
|
|
epoch:
|
|
example: 1
|
|
type: integer
|
|
global_qps:
|
|
example: 100
|
|
type: integer
|
|
group:
|
|
example: default
|
|
type: string
|
|
id:
|
|
description: Master fields (only present when type is "master")
|
|
example: 1
|
|
type: integer
|
|
issued_at_epoch:
|
|
example: 1
|
|
type: integer
|
|
issued_by:
|
|
example: master
|
|
type: string
|
|
master_id:
|
|
description: Key fields (only present when type is "key")
|
|
example: 1
|
|
type: integer
|
|
max_child_keys:
|
|
example: 5
|
|
type: integer
|
|
name:
|
|
example: tenant-a
|
|
type: string
|
|
namespaces:
|
|
example: default,ns1
|
|
type: string
|
|
role:
|
|
description: Admin fields (only present when type is "admin")
|
|
example: admin
|
|
type: string
|
|
scopes:
|
|
example: chat:write
|
|
type: string
|
|
status:
|
|
example: active
|
|
type: string
|
|
type:
|
|
description: 'Type of the authenticated identity: "admin", "master", or "key"'
|
|
example: master
|
|
type: string
|
|
updated_at:
|
|
example: 1703505600
|
|
type: integer
|
|
type: object
|
|
internal_api.apiKeyStatsFlushEntry:
|
|
properties:
|
|
api_key_id:
|
|
type: integer
|
|
requests:
|
|
type: integer
|
|
success_requests:
|
|
type: integer
|
|
type: object
|
|
internal_api.apiKeyStatsFlushRequest:
|
|
properties:
|
|
keys:
|
|
items:
|
|
$ref: '#/definitions/internal_api.apiKeyStatsFlushEntry'
|
|
type: array
|
|
type: object
|
|
internal_api.refreshModelRegistryRequest:
|
|
properties:
|
|
ref:
|
|
type: string
|
|
type: object
|
|
internal_api.reportAlertEntry:
|
|
properties:
|
|
fingerprint:
|
|
type: string
|
|
message:
|
|
type: string
|
|
metadata:
|
|
type: string
|
|
related_id:
|
|
type: integer
|
|
related_name:
|
|
type: string
|
|
related_type:
|
|
type: string
|
|
severity:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- severity
|
|
- title
|
|
- type
|
|
type: object
|
|
internal_api.reportAlertsRequest:
|
|
properties:
|
|
alerts:
|
|
items:
|
|
$ref: '#/definitions/internal_api.reportAlertEntry'
|
|
type: array
|
|
required:
|
|
- alerts
|
|
type: object
|
|
internal_api.reportAlertsResponse:
|
|
properties:
|
|
accepted:
|
|
type: integer
|
|
deduplicated:
|
|
type: integer
|
|
errors:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
internal_api.statsFlushEntry:
|
|
properties:
|
|
last_accessed_at:
|
|
type: integer
|
|
requests:
|
|
type: integer
|
|
token_hash:
|
|
type: string
|
|
tokens:
|
|
type: integer
|
|
type: object
|
|
internal_api.statsFlushRequest:
|
|
properties:
|
|
keys:
|
|
items:
|
|
$ref: '#/definitions/internal_api.statsFlushEntry'
|
|
type: array
|
|
type: object
|
|
modelcap.Meta:
|
|
properties:
|
|
checksum:
|
|
type: string
|
|
source:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
upstream_ref:
|
|
type: string
|
|
upstream_url:
|
|
type: string
|
|
version:
|
|
type: string
|
|
type: object
|
|
modelcap.Model:
|
|
properties:
|
|
context_window:
|
|
type: integer
|
|
cost_per_token:
|
|
type: number
|
|
kind:
|
|
type: string
|
|
max_output_tokens:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
supports_fim:
|
|
type: boolean
|
|
supports_functions:
|
|
type: boolean
|
|
supports_stream:
|
|
type: boolean
|
|
supports_tool_choice:
|
|
type: boolean
|
|
supports_vision:
|
|
type: boolean
|
|
type: object
|
|
host: localhost:8080
|
|
info:
|
|
contact:
|
|
email: support@swagger.io
|
|
name: API Support
|
|
url: http://www.swagger.io/support
|
|
description: Management API for EZ-API Gateway system.
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
termsOfService: http://swagger.io/terms/
|
|
title: EZ-API Control Plane
|
|
version: 0.0.1
|
|
paths:
|
|
/about:
|
|
get:
|
|
description: Returns system metadata for display on an about page
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AboutResponse'
|
|
summary: Get system information
|
|
tags:
|
|
- Public
|
|
/admin/alerts:
|
|
get:
|
|
description: List system alerts with optional filters
|
|
parameters:
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
- description: filter by status (active, acknowledged, resolved, dismissed)
|
|
in: query
|
|
name: status
|
|
type: string
|
|
- description: filter by severity (info, warning, critical)
|
|
in: query
|
|
name: severity
|
|
type: string
|
|
- description: filter by type (rate_limit, error_spike, quota_exceeded, key_disabled,
|
|
key_expired, provider_down, traffic_spike)
|
|
in: query
|
|
name: type
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.ListAlertsResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List alerts
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new system alert
|
|
parameters:
|
|
- description: Alert data
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.CreateAlertRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create alert
|
|
tags:
|
|
- admin
|
|
/admin/alerts/{id}:
|
|
delete:
|
|
description: Dismiss an alert (soft delete)
|
|
parameters:
|
|
- description: Alert ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Dismiss alert
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get a single alert by ID
|
|
parameters:
|
|
- description: Alert ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get alert
|
|
tags:
|
|
- admin
|
|
/admin/alerts/{id}/ack:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Mark an alert as acknowledged
|
|
parameters:
|
|
- description: Alert ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Ack data
|
|
in: body
|
|
name: request
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AckAlertRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Acknowledge alert
|
|
tags:
|
|
- admin
|
|
/admin/alerts/{id}/resolve:
|
|
post:
|
|
description: Mark an alert as resolved
|
|
parameters:
|
|
- description: Alert ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Resolve alert
|
|
tags:
|
|
- admin
|
|
/admin/alerts/stats:
|
|
get:
|
|
description: Get alert count statistics by status and severity
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertStats'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Alert statistics
|
|
tags:
|
|
- admin
|
|
/admin/alerts/thresholds:
|
|
get:
|
|
description: Get current alert threshold configuration for traffic spike detection
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertThresholdView'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get alert thresholds
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update alert threshold configuration for traffic spike detection
|
|
parameters:
|
|
- description: Threshold configuration
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateAlertThresholdsRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AlertThresholdView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update alert thresholds
|
|
tags:
|
|
- admin
|
|
/admin/api-keys:
|
|
get:
|
|
description: List API keys with optional filters
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: filter by group_id
|
|
in: query
|
|
name: group_id
|
|
type: integer
|
|
- description: filter by status (active, suspended, auto_disabled, manual_disabled)
|
|
in: query
|
|
name: status
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.APIKey'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List API keys
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create an API key for a provider group
|
|
parameters:
|
|
- description: API key payload
|
|
in: body
|
|
name: key
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.APIKeyDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.APIKey'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create an API key
|
|
tags:
|
|
- admin
|
|
/admin/api-keys/{id}:
|
|
delete:
|
|
description: Delete an API key
|
|
parameters:
|
|
- description: APIKey ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete API key
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get an API key by id
|
|
parameters:
|
|
- description: APIKey ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.APIKey'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get API key
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update an API key
|
|
parameters:
|
|
- description: APIKey ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: API key payload
|
|
in: body
|
|
name: key
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.APIKeyDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.APIKey'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update API key
|
|
tags:
|
|
- admin
|
|
/admin/api-keys/batch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Batch delete or status update for api keys
|
|
parameters:
|
|
- description: Batch payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchActionRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Batch api keys
|
|
tags:
|
|
- admin
|
|
/admin/apikey-stats/summary:
|
|
get:
|
|
description: Aggregate APIKey success/failure stats across all provider groups
|
|
parameters:
|
|
- description: Start time (unix seconds)
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: End time (unix seconds)
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.APIKeyStatsSummaryResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: APIKey stats summary (admin)
|
|
tags:
|
|
- admin
|
|
/admin/bindings:
|
|
get:
|
|
description: List all configured bindings
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by namespace/public_model
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Binding'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List bindings
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new (namespace, public_model) binding to a provider group
|
|
and selector
|
|
parameters:
|
|
- description: Binding Info
|
|
in: body
|
|
name: binding
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.BindingDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Binding'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create a new binding
|
|
tags:
|
|
- admin
|
|
/admin/bindings/{id}:
|
|
delete:
|
|
description: Delete a binding by id and rebuild bindings snapshot
|
|
parameters:
|
|
- description: Binding ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete a binding
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get a binding by id
|
|
parameters:
|
|
- description: Binding ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Binding'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get a binding
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update an existing binding
|
|
parameters:
|
|
- description: Binding ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Binding Info
|
|
in: body
|
|
name: binding
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.BindingDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Binding'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update a binding
|
|
tags:
|
|
- admin
|
|
/admin/bindings/batch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Batch delete or status update for bindings
|
|
parameters:
|
|
- description: Batch payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchActionRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Batch bindings
|
|
tags:
|
|
- admin
|
|
/admin/dashboard/summary:
|
|
get:
|
|
description: Returns aggregated metrics for dashboard display including requests,
|
|
tokens, latency, masters, keys, and provider keys statistics
|
|
parameters:
|
|
- description: 'time period: today, week, month, all'
|
|
in: query
|
|
name: period
|
|
type: string
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.DashboardSummaryResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Dashboard summary
|
|
tags:
|
|
- admin
|
|
/admin/features:
|
|
get:
|
|
description: Returns all feature flags stored in Redis (meta:features)
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List feature flags
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates selected feature flags (meta:features). Values are stored
|
|
as strings.
|
|
parameters:
|
|
- description: Feature map
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
type: object
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update feature flags
|
|
tags:
|
|
- admin
|
|
/admin/keys/{id}/access:
|
|
get:
|
|
description: Returns key default_namespace and namespaces
|
|
parameters:
|
|
- description: Key ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get key access settings
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates key default_namespace and namespaces and syncs to Redis
|
|
parameters:
|
|
- description: Key ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Access settings
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateAccessRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update key access settings
|
|
tags:
|
|
- admin
|
|
/admin/logs:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Delete logs before a given timestamp with optional filters
|
|
parameters:
|
|
- description: Delete filters
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.DeleteLogsRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.DeleteLogsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete logs (admin)
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: List request logs with basic filtering/pagination. Returns full
|
|
log records including request_body.
|
|
parameters:
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
- description: key id
|
|
in: query
|
|
name: key_id
|
|
type: integer
|
|
- description: route group
|
|
in: query
|
|
name: group
|
|
type: string
|
|
- description: model
|
|
in: query
|
|
name: model
|
|
type: string
|
|
- description: status code
|
|
in: query
|
|
name: status_code
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.ListLogsResponse'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List logs (admin)
|
|
tags:
|
|
- admin
|
|
/admin/logs/stats:
|
|
get:
|
|
description: 'Aggregate log stats with basic filtering. Use group_by param for
|
|
grouped statistics (model/day/month/hour/minute). Without group_by returns
|
|
LogStatsResponse; with group_by returns GroupedStatsResponse. Note: minute-level
|
|
aggregation is limited to 6-hour time ranges.'
|
|
parameters:
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
- description: 'group by dimension: model, day, month, hour, minute. Returns
|
|
GroupedStatsResponse when specified.'
|
|
enum:
|
|
- model
|
|
- day
|
|
- month
|
|
- hour
|
|
- minute
|
|
in: query
|
|
name: group_by
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Grouped stats (when group_by is specified)
|
|
schema:
|
|
$ref: '#/definitions/internal_api.GroupedStatsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Log stats (admin)
|
|
tags:
|
|
- admin
|
|
/admin/logs/webhook:
|
|
get:
|
|
description: Returns current webhook notification config
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.LogWebhookConfig'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get log webhook config
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates webhook notification config
|
|
parameters:
|
|
- description: Webhook config
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.LogWebhookConfig'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.LogWebhookConfig'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update log webhook config
|
|
tags:
|
|
- admin
|
|
/admin/masters:
|
|
get:
|
|
description: List all master tenants
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by name/group
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/internal_api.MasterView'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List masters
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a new master account (tenant)
|
|
parameters:
|
|
- description: Master Info
|
|
in: body
|
|
name: master
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.CreateMasterRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create a new master tenant
|
|
tags:
|
|
- admin
|
|
/admin/masters/{id}:
|
|
delete:
|
|
description: Suspends a master and revokes all existing keys by bumping epoch
|
|
and syncing to Redis
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete (revoke) master
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get a master tenant by id
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get master
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update master fields; optionally propagate group to existing keys
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateMasterRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update master
|
|
tags:
|
|
- admin
|
|
/admin/masters/{id}/access:
|
|
get:
|
|
description: Returns master default_namespace and namespaces
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get master access settings
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Updates master default_namespace and namespaces; optionally propagate
|
|
to existing keys
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Access settings
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateAccessRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AccessResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update master access settings
|
|
tags:
|
|
- admin
|
|
/admin/masters/{id}/keys:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Issue a new access token (child key) for a specified master. The
|
|
key still belongs to the master; issuer is recorded as admin for audit.
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Key Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.IssueChildKeyRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Issue a child key on behalf of a master
|
|
tags:
|
|
- admin
|
|
/admin/masters/{id}/manage:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Freeze or unfreeze a master tenant
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Action
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.ManageMasterRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Manage master status
|
|
tags:
|
|
- admin
|
|
/admin/masters/{id}/realtime:
|
|
get:
|
|
description: Return realtime counters for the specified master
|
|
parameters:
|
|
- description: Master ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterRealtimeView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Master realtime stats (admin)
|
|
tags:
|
|
- admin
|
|
/admin/masters/batch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Batch delete or status update for masters
|
|
parameters:
|
|
- description: Batch payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchActionRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Batch masters
|
|
tags:
|
|
- admin
|
|
/admin/model-registry/check:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Checks models.dev commit SHA for a ref and indicates whether refresh
|
|
is needed (does not apply changes)
|
|
parameters:
|
|
- description: optional override ref
|
|
in: body
|
|
name: body
|
|
schema:
|
|
$ref: '#/definitions/internal_api.refreshModelRegistryRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.ModelRegistryCheckResult'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Check model registry upstream version
|
|
tags:
|
|
- admin
|
|
/admin/model-registry/refresh:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Fetches models.dev, computes per-binding capabilities, and updates
|
|
Redis meta:models
|
|
parameters:
|
|
- description: optional override ref
|
|
in: body
|
|
name: body
|
|
schema:
|
|
$ref: '#/definitions/internal_api.refreshModelRegistryRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Refresh model registry from models.dev
|
|
tags:
|
|
- admin
|
|
/admin/model-registry/rollback:
|
|
post:
|
|
description: Rollback meta:models to previous cached last-good version
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Rollback model registry
|
|
tags:
|
|
- admin
|
|
/admin/model-registry/status:
|
|
get:
|
|
description: Returns Redis meta and local last-good cache info for model capability
|
|
registry
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.ModelRegistryStatus'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get model registry status
|
|
tags:
|
|
- admin
|
|
/admin/models:
|
|
get:
|
|
description: Get a list of all registered models
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by name/kind
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Model'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List all models
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Register a supported model with its capabilities
|
|
parameters:
|
|
- description: Model Info
|
|
in: body
|
|
name: model
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.ModelDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Model'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Register a new model
|
|
tags:
|
|
- admin
|
|
/admin/models/{id}:
|
|
delete:
|
|
description: Delete a model by id
|
|
parameters:
|
|
- description: Model ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete a model
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update an existing model's configuration
|
|
parameters:
|
|
- description: Model ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Model Info
|
|
in: body
|
|
name: model
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.ModelDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Model'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update a model
|
|
tags:
|
|
- admin
|
|
/admin/models/batch:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Batch delete for models
|
|
parameters:
|
|
- description: Batch payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchActionRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.BatchResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Batch models
|
|
tags:
|
|
- admin
|
|
/admin/namespaces:
|
|
get:
|
|
description: List all namespaces
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by name/description
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Namespace'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List namespaces
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a namespace for bindings
|
|
parameters:
|
|
- description: Namespace payload
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.NamespaceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Namespace'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create namespace
|
|
tags:
|
|
- admin
|
|
/admin/namespaces/{id}:
|
|
delete:
|
|
description: Delete a namespace and its bindings
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete namespace
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get a namespace by id
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Namespace'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get namespace
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update a namespace
|
|
parameters:
|
|
- description: Namespace ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update payload
|
|
in: body
|
|
name: namespace
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateNamespaceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.Namespace'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update namespace
|
|
tags:
|
|
- admin
|
|
/admin/operation-logs:
|
|
get:
|
|
description: List admin operation logs
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by actor/method/path
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/internal_api.OperationLogView'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List operation logs
|
|
tags:
|
|
- admin
|
|
/admin/provider-groups:
|
|
get:
|
|
description: List all provider groups
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by name/type
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.ProviderGroup'
|
|
type: array
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: List provider groups
|
|
tags:
|
|
- admin
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a provider group definition
|
|
parameters:
|
|
- description: Provider group payload
|
|
in: body
|
|
name: group
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.ProviderGroupDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.ProviderGroup'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Create a provider group
|
|
tags:
|
|
- admin
|
|
/admin/provider-groups/{id}:
|
|
delete:
|
|
description: Delete a provider group and its api keys/bindings
|
|
parameters:
|
|
- description: ProviderGroup ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Delete provider group
|
|
tags:
|
|
- admin
|
|
get:
|
|
description: Get a provider group by id
|
|
parameters:
|
|
- description: ProviderGroup ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.ProviderGroup'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Get provider group
|
|
tags:
|
|
- admin
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update a provider group
|
|
parameters:
|
|
- description: ProviderGroup ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Provider group payload
|
|
in: body
|
|
name: group
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_dto.ProviderGroupDTO'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.ProviderGroup'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Update provider group
|
|
tags:
|
|
- admin
|
|
/admin/realtime:
|
|
get:
|
|
description: Return aggregated realtime counters across all masters
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.SystemRealtimeView'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: System-level realtime stats (admin)
|
|
tags:
|
|
- admin
|
|
/admin/stats:
|
|
get:
|
|
description: Aggregate request stats across all masters
|
|
parameters:
|
|
- description: today|week|month|all
|
|
in: query
|
|
name: period
|
|
type: string
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.AdminUsageStatsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Usage stats (admin)
|
|
tags:
|
|
- admin
|
|
/admin/sync/snapshot:
|
|
post:
|
|
description: Force full synchronization of DB state to Redis
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
summary: Force sync snapshot
|
|
tags:
|
|
- admin
|
|
/auth/whoami:
|
|
get:
|
|
description: |-
|
|
Returns the identity of the authenticated user based on the Authorization header.
|
|
Supports Admin Token, Master Key, and Child Key (API Key) authentication.
|
|
|
|
Response varies by token type:
|
|
- Admin Token: {"type": "admin", "role": "admin"}
|
|
- Master Key: {"type": "master", "id": 1, "name": "...", ...}
|
|
- Child Key: {"type": "key", "id": 5, "master_id": 1, "issued_by": "master", ...}
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.WhoamiResponse'
|
|
"401":
|
|
description: Invalid or missing token
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- AdminAuth: []
|
|
- MasterAuth: []
|
|
summary: Get current identity
|
|
tags:
|
|
- auth
|
|
/internal/alerts/report:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Internal endpoint for Data Plane to report alerts to Control Plane
|
|
parameters:
|
|
- description: Alerts to report
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.reportAlertsRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.reportAlertsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
summary: Report alerts from DP
|
|
tags:
|
|
- internal
|
|
/internal/apikey-stats/flush:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Internal endpoint for flushing accumulated APIKey stats from DP
|
|
to CP database
|
|
parameters:
|
|
- description: Stats to flush
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.apiKeyStatsFlushRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
summary: Flush API key stats
|
|
tags:
|
|
- internal
|
|
/internal/stats/flush:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Internal endpoint for flushing accumulated key usage stats from
|
|
DP to CP database
|
|
parameters:
|
|
- description: Stats to flush
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.statsFlushRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
summary: Flush key stats
|
|
tags:
|
|
- internal
|
|
/logs:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Internal endpoint for ingesting logs from Balancer
|
|
parameters:
|
|
- description: Log Record
|
|
in: body
|
|
name: log
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_model.LogRecord'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"202":
|
|
description: Accepted
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
summary: Ingest logs
|
|
tags:
|
|
- system
|
|
/status:
|
|
get:
|
|
description: Returns public runtime status information without sensitive data
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.StatusResponse'
|
|
summary: Get system status
|
|
tags:
|
|
- Public
|
|
/v1/logs:
|
|
get:
|
|
description: List request logs for the authenticated master
|
|
parameters:
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
- description: model
|
|
in: query
|
|
name: model
|
|
type: string
|
|
- description: status code
|
|
in: query
|
|
name: status_code
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.ListMasterLogsResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: List logs (master)
|
|
tags:
|
|
- master
|
|
/v1/logs/stats:
|
|
get:
|
|
description: Aggregate request log stats for the authenticated master
|
|
parameters:
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.LogStatsResponse'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Log stats (master)
|
|
tags:
|
|
- master
|
|
/v1/realtime:
|
|
get:
|
|
description: Return realtime counters for the authenticated master
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterRealtimeView'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Master realtime stats
|
|
tags:
|
|
- master
|
|
/v1/self:
|
|
get:
|
|
description: Returns master metadata for the authenticated master key
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterView'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Get current master info
|
|
tags:
|
|
- master
|
|
/v1/stats:
|
|
get:
|
|
description: Aggregate request stats for the authenticated master
|
|
parameters:
|
|
- description: today|week|month|all
|
|
in: query
|
|
name: period
|
|
type: string
|
|
- description: unix seconds
|
|
in: query
|
|
name: since
|
|
type: integer
|
|
- description: unix seconds
|
|
in: query
|
|
name: until
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.MasterUsageStatsResponse'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Usage stats (master)
|
|
tags:
|
|
- master
|
|
/v1/tokens:
|
|
get:
|
|
description: List child keys issued under the authenticated master
|
|
parameters:
|
|
- description: page (1-based)
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: limit (default 50, max 200)
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: search by group/scopes/namespaces/status
|
|
in: query
|
|
name: search
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/internal_api.TokenView'
|
|
type: array
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: List child keys
|
|
tags:
|
|
- master
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Issue a new access token (child key) for the authenticated master
|
|
parameters:
|
|
- description: Key Request
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.IssueChildKeyRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Created
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"403":
|
|
description: Forbidden
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Issue a child key
|
|
tags:
|
|
- master
|
|
/v1/tokens/{id}:
|
|
delete:
|
|
description: Suspends a child key under the authenticated master
|
|
parameters:
|
|
- description: Token ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Delete (revoke) child key
|
|
tags:
|
|
- master
|
|
get:
|
|
description: Get a child key by id under the authenticated master
|
|
parameters:
|
|
- description: Token ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.TokenView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Get child key
|
|
tags:
|
|
- master
|
|
put:
|
|
consumes:
|
|
- application/json
|
|
description: Update token scopes/status under the authenticated master
|
|
parameters:
|
|
- description: Token ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
- description: Update payload
|
|
in: body
|
|
name: request
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/internal_api.UpdateTokenRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/internal_api.TokenView'
|
|
"400":
|
|
description: Bad Request
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"401":
|
|
description: Unauthorized
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"404":
|
|
description: Not Found
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
"500":
|
|
description: Internal Server Error
|
|
schema:
|
|
$ref: '#/definitions/gin.H'
|
|
security:
|
|
- MasterAuth: []
|
|
summary: Update child key
|
|
tags:
|
|
- master
|
|
securityDefinitions:
|
|
AdminAuth:
|
|
description: 'Type "Bearer" followed by a space and the admin token. Example:
|
|
Bearer admin123'
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
MasterAuth:
|
|
description: 'Type "Bearer" followed by a space and the master key. Example: Bearer
|
|
sk-xxx'
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|