mirror of
https://github.com/EZ-Api/ez-api.git
synced 2026-01-13 17:47:51 +00:00
Regenerate OpenAPI documentation to reflect the architectural split of Provider into ProviderGroup and APIKey models: - Replace /admin/providers endpoints with /admin/provider-groups - Add new /admin/api-keys CRUD and batch endpoints - Update BindingDTO to use group_id instead of route_group - Remove provider-specific DTOs (ProviderCustomCreateDTO, ProviderPresetCreateDTO, ProviderGoogleCreateDTO) - Add APIKeyDTO and ProviderGroupDTO definitions - Update model definitions for APIKey, Binding, and ProviderGroup
3038 lines
73 KiB
YAML
3038 lines
73 KiB
YAML
basePath: /
|
|
definitions:
|
|
gin.H:
|
|
additionalProperties: {}
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_dto.APIKeyDTO:
|
|
properties:
|
|
api_key:
|
|
type: string
|
|
auto_ban:
|
|
type: boolean
|
|
ban_reason:
|
|
type: string
|
|
ban_until:
|
|
type: string
|
|
group_id:
|
|
type: integer
|
|
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
|
|
models:
|
|
items:
|
|
type: string
|
|
type: array
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_model.APIKey:
|
|
properties:
|
|
api_key:
|
|
type: string
|
|
auto_ban:
|
|
type: boolean
|
|
ban_reason:
|
|
type: string
|
|
ban_until:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
deletedAt:
|
|
$ref: '#/definitions/gorm.DeletedAt'
|
|
group_id:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
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
|
|
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'
|
|
google_location:
|
|
type: string
|
|
google_project:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
models:
|
|
description: comma-separated list of supported models
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type:
|
|
description: openai, anthropic, gemini
|
|
type: string
|
|
updatedAt:
|
|
type: string
|
|
type: object
|
|
github_com_ez-api_ez-api_internal_service.HealthStatus:
|
|
properties:
|
|
database:
|
|
type: string
|
|
redis:
|
|
type: string
|
|
status:
|
|
type: string
|
|
uptime:
|
|
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.AccessResponse:
|
|
properties:
|
|
default_namespace:
|
|
type: string
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
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.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.CreateMasterRequest:
|
|
properties:
|
|
global_qps:
|
|
type: integer
|
|
group:
|
|
type: string
|
|
max_child_keys:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
required:
|
|
- group
|
|
- name
|
|
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.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.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.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.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.ProviderUsageAgg:
|
|
properties:
|
|
provider_id:
|
|
type: integer
|
|
provider_name:
|
|
type: string
|
|
provider_type:
|
|
type: string
|
|
requests:
|
|
type: integer
|
|
tokens:
|
|
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.UpdateAccessRequest:
|
|
properties:
|
|
default_namespace:
|
|
type: string
|
|
namespaces:
|
|
items:
|
|
type: string
|
|
type: array
|
|
propagate_to_keys:
|
|
type: boolean
|
|
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.refreshModelRegistryRequest:
|
|
properties:
|
|
ref:
|
|
type: string
|
|
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:
|
|
/admin/api-keys:
|
|
get:
|
|
description: List API keys
|
|
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
|
|
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/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/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
|
|
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.ListMasterLogsResponse'
|
|
"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
|
|
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'
|
|
"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/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
|
|
/api/status/test:
|
|
get:
|
|
description: Checks Redis/PostgreSQL connections and reports status
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.HealthStatus'
|
|
"503":
|
|
description: Service Unavailable
|
|
schema:
|
|
$ref: '#/definitions/github_com_ez-api_ez-api_internal_service.HealthStatus'
|
|
summary: Test dependency connectivity
|
|
tags:
|
|
- system
|
|
/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
|
|
/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:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
MasterAuth:
|
|
in: header
|
|
name: Authorization
|
|
type: apiKey
|
|
swagger: "2.0"
|