{"openapi":"3.1.0","info":{"title":"AI API Center","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/users":{"get":{"summary":"List Users","operationId":"list_users_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create User","operationId":"create_user_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/users/{user_id}":{"patch":{"summary":"Update User","operationId":"update_user_admin_users__user_id__patch","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/users/{user_id}/keys":{"get":{"summary":"List Keys","operationId":"list_keys_admin_users__user_id__keys_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Key","operationId":"create_key_admin_users__user_id__keys_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/keys/{key_id}":{"patch":{"summary":"Update Key Quota","operationId":"update_key_quota_admin_keys__key_id__patch","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyQuotaUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Revoke Key","operationId":"revoke_key_admin_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/channels":{"get":{"summary":"Channels","operationId":"channels_admin_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Channel","operationId":"create_channel_admin_channels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/channels/{channel_id}":{"put":{"summary":"Update Channel","operationId":"update_channel_admin_channels__channel_id__put","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/models":{"get":{"summary":"Models","operationId":"models_admin_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Save Model","operationId":"save_model_admin_models_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/models/{model}/routes":{"put":{"summary":"Save Route","operationId":"save_route_admin_models__model__routes_put","parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string","title":"Model"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/routes/{route_id}":{"delete":{"summary":"Delete Route","operationId":"delete_route_admin_routes__route_id__delete","parameters":[{"name":"route_id","in":"path","required":true,"schema":{"type":"integer","title":"Route Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage":{"get":{"summary":"Admin Usage","operationId":"admin_usage_admin_usage_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Key Id"}},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/analytics":{"get":{"summary":"Admin Analytics","operationId":"admin_analytics_admin_analytics_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"User Id"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":0},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":1},{"type":"null"}],"title":"Until"}},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Model"}},{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"title":"Key Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"title":"Channel Id"}},{"name":"api_path","in":"query","required":false,"schema":{"anyOf":[{"enum":["/v1/chat/completions","/v1/messages","unknown"],"type":"string"},{"type":"null"}],"title":"Api Path"}},{"name":"provider_kind","in":"query","required":false,"schema":{"anyOf":[{"enum":["openai","azure","anthropic","copilot","mock","unknown"],"type":"string"},{"type":"null"}],"title":"Provider Kind"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"enum":["upstream","mock","reservation","manual","none"],"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"enum":["stream","nonstream","unknown"],"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"rank_by","in":"query","required":false,"schema":{"enum":["charged_tokens","requests"],"type":"string","default":"charged_tokens","title":"Rank By"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/logs":{"get":{"summary":"Admin Logs","operationId":"admin_logs_admin_logs_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"User Id"}},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"enum":["system","user"],"type":"string"},{"type":"null"}],"title":"Scope"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":0},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":1},{"type":"null"}],"title":"Until"}},{"name":"request_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Request Id"}},{"name":"error_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Error Code"}},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"enum":["error","warning"],"type":"string"},{"type":"null"}],"title":"Level"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"enum":["stream","nonstream","unknown"],"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/usage/{request_id}/reconcile":{"post":{"summary":"Reconcile","operationId":"reconcile_admin_usage__request_id__reconcile_post","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reconcile"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/audit":{"get":{"summary":"Audit","operationId":"audit_admin_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/billing/events":{"get":{"summary":"Billing Events","operationId":"billing_events_admin_billing_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/billing/events/{event_id}/ack":{"post":{"summary":"Acknowledge Billing Event","operationId":"acknowledge_billing_event_admin_billing_events__event_id__ack_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me":{"get":{"summary":"Me","operationId":"me_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/me/usage":{"get":{"summary":"My Usage","operationId":"my_usage_me_usage_get","parameters":[{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Key Id"}},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/analytics":{"get":{"summary":"My Analytics","operationId":"my_analytics_me_analytics_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":0},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":1},{"type":"null"}],"title":"Until"}},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Model"}},{"name":"key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"title":"Key Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"title":"Channel Id"}},{"name":"api_path","in":"query","required":false,"schema":{"anyOf":[{"enum":["/v1/chat/completions","/v1/messages","unknown"],"type":"string"},{"type":"null"}],"title":"Api Path"}},{"name":"provider_kind","in":"query","required":false,"schema":{"anyOf":[{"enum":["openai","azure","anthropic","copilot","mock","unknown"],"type":"string"},{"type":"null"}],"title":"Provider Kind"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"enum":["upstream","mock","reservation","manual","none"],"type":"string"},{"type":"null"}],"title":"Source"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"enum":["stream","nonstream","unknown"],"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"rank_by","in":"query","required":false,"schema":{"enum":["charged_tokens","requests"],"type":"string","default":"charged_tokens","title":"Rank By"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/logs":{"get":{"summary":"My Logs","operationId":"my_logs_me_logs_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":0},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4102444800,"minimum":1},{"type":"null"}],"title":"Until"}},{"name":"request_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Request Id"}},{"name":"error_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Error Code"}},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"enum":["error","warning"],"type":"string"},{"type":"null"}],"title":"Level"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"enum":["stream","nonstream","unknown"],"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/usage/{request_id}":{"get":{"summary":"My Usage Record","operationId":"my_usage_record_me_usage__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models":{"get":{"summary":"Public Models","operationId":"public_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/chat/completions":{"post":{"summary":"Chat Completions","operationId":"chat_completions_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/messages":{"post":{"summary":"Messages","operationId":"messages_v1_messages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnthropicRequest":{"properties":{"model":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Model"},"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":256,"minItems":1,"title":"Messages"},"max_tokens":{"type":"integer","maximum":128000.0,"minimum":1.0,"title":"Max Tokens"},"system":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"System"},"tools":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tools"},"tool_choice":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Choice"},"temperature":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Top P"},"stop_sequences":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop Sequences"},"stream":{"type":"boolean","title":"Stream","default":false}},"additionalProperties":false,"type":"object","required":["model","messages","max_tokens"],"title":"AnthropicRequest"},"ChannelCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"kind":{"type":"string","enum":["openai","azure","anthropic","copilot","mock"],"title":"Kind"},"base_url":{"type":"string","maxLength":500,"title":"Base Url","default":""},"api_key_env":{"type":"string","maxLength":100,"title":"Api Key Env","default":""},"api_version":{"type":"string","pattern":"^[a-zA-Z0-9-]+$","title":"Api Version","default":"2024-10-21"},"active":{"type":"boolean","title":"Active","default":true},"routing_groups":{"items":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"},"type":"array","maxItems":50,"minItems":1,"title":"Routing Groups"}},"additionalProperties":false,"type":"object","required":["name","kind"],"title":"ChannelCreate"},"ChatRequest":{"properties":{"model":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Model"},"messages":{"items":{"$ref":"#/components/schemas/Message"},"type":"array","maxItems":256,"minItems":1,"title":"Messages"},"max_tokens":{"anyOf":[{"type":"integer","maximum":128000.0,"minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"max_completion_tokens":{"anyOf":[{"type":"integer","maximum":128000.0,"minimum":1.0},{"type":"null"}],"title":"Max Completion Tokens"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Top P"},"stop":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop"},"tools":{"anyOf":[{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","maxItems":64},{"type":"null"}],"title":"Tools"},"tool_choice":{"anyOf":[{"type":"string","enum":["auto","none","required"]},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Choice"},"stream":{"type":"boolean","title":"Stream","default":false},"stream_options":{"anyOf":[{"$ref":"#/components/schemas/StreamOptions"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["model","messages"],"title":"ChatRequest"},"FunctionCall":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"arguments":{"type":"string","title":"Arguments"}},"additionalProperties":false,"type":"object","required":["name","arguments"],"title":"FunctionCall"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KeyCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"allowed_models":{"items":{"anyOf":[{"type":"string","const":"*"},{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"}]},"type":"array","maxItems":200,"title":"Allowed Models"},"expires_at":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Expires At"},"quota_tokens":{"anyOf":[{"type":"integer","maximum":1000000000000.0,"minimum":0.0},{"type":"null"}],"title":"Quota Tokens"}},"additionalProperties":false,"type":"object","required":["name"],"title":"KeyCreate"},"KeyQuotaUpdate":{"properties":{"quota_tokens":{"anyOf":[{"type":"integer","maximum":1000000000000.0,"minimum":0.0},{"type":"null"}],"title":"Quota Tokens"}},"additionalProperties":false,"type":"object","required":["quota_tokens"],"title":"KeyQuotaUpdate"},"Message":{"properties":{"role":{"type":"string","enum":["system","developer","user","assistant","tool"],"title":"Role"},"content":{"anyOf":[{"type":"string","maxLength":250000},{"type":"null"}],"title":"Content"},"tool_calls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array"},{"type":"null"}],"title":"Tool Calls"},"tool_call_id":{"anyOf":[{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Tool Call Id"}},"additionalProperties":false,"type":"object","required":["role"],"title":"Message"},"ModelCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"max_input_tokens":{"type":"integer","maximum":1000000.0,"minimum":32.0,"title":"Max Input Tokens","default":32000},"max_output_tokens":{"type":"integer","maximum":128000.0,"minimum":1.0,"title":"Max Output Tokens","default":4096},"routing_strategy":{"type":"string","enum":["priority","weighted"],"title":"Routing Strategy","default":"priority"}},"additionalProperties":false,"type":"object","required":["name"],"title":"ModelCreate"},"Reconcile":{"properties":{"charged_tokens":{"type":"integer","maximum":1000000000000.0,"minimum":0.0,"title":"Charged Tokens"},"note":{"type":"string","maxLength":500,"minLength":8,"title":"Note"}},"additionalProperties":false,"type":"object","required":["charged_tokens","note"],"title":"Reconcile"},"RouteCreate":{"properties":{"channel_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Channel Id"},"upstream_model":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Upstream Model"},"priority":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Priority","default":0},"weight":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Weight","default":1}},"additionalProperties":false,"type":"object","required":["channel_id","upstream_model"],"title":"RouteCreate"},"StreamOptions":{"properties":{"include_usage":{"type":"boolean","title":"Include Usage","default":true}},"additionalProperties":false,"type":"object","title":"StreamOptions"},"Tool":{"properties":{"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/ToolFunction"}},"additionalProperties":false,"type":"object","required":["function"],"title":"Tool"},"ToolCall":{"properties":{"id":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Id"},"type":{"type":"string","const":"function","title":"Type","default":"function"},"function":{"$ref":"#/components/schemas/FunctionCall"}},"additionalProperties":false,"type":"object","required":["id","function"],"title":"ToolCall"},"ToolFunction":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"}},"additionalProperties":false,"type":"object","required":["name"],"title":"ToolFunction"},"UserCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Name"},"quota_tokens":{"type":"integer","maximum":1000000000000.0,"minimum":0.0,"title":"Quota Tokens"},"allowed_models":{"items":{"anyOf":[{"type":"string","const":"*"},{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"}]},"type":"array","maxItems":200,"title":"Allowed Models"},"routing_group":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$","title":"Routing Group","default":"default"}},"additionalProperties":false,"type":"object","required":["name","quota_tokens"],"title":"UserCreate"},"UserUpdate":{"properties":{"quota_tokens":{"anyOf":[{"type":"integer","maximum":1000000000000.0,"minimum":0.0},{"type":"null"}],"title":"Quota Tokens"},"allowed_models":{"anyOf":[{"items":{"anyOf":[{"type":"string","const":"*"},{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"}]},"type":"array","maxItems":200},{"type":"null"}],"title":"Allowed Models"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"routing_group":{"anyOf":[{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-zA-Z0-9_.:/-]+$"},{"type":"null"}],"title":"Routing Group"}},"additionalProperties":false,"type":"object","title":"UserUpdate"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}