{"openapi":"3.1.0","info":{"title":"TaaS Portal","version":"0.1.0"},"paths":{"/login":{"get":{"summary":"Login Page","operationId":"login_page_login_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/signup":{"get":{"summary":"Signup Page","operationId":"signup_page_signup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/forgot-password":{"get":{"summary":"Forgot Password Page","operationId":"forgot_password_page_forgot_password_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/reset-password":{"get":{"summary":"Reset Password Page","operationId":"reset_password_page_reset_password_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/verify-email":{"get":{"summary":"Verify Email Page","operationId":"verify_email_page_verify_email_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/auth/register":{"post":{"summary":"Auth Register","description":"Email/password registration.","operationId":"auth_register_auth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/login":{"post":{"summary":"Auth Login","description":"Email/password login.","operationId":"auth_login_auth_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/forgot-password":{"post":{"summary":"Auth Forgot Password","description":"Request a password reset email.","operationId":"auth_forgot_password_auth_forgot_password_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/reset-password":{"post":{"summary":"Auth Reset Password","description":"Reset password with token.","operationId":"auth_reset_password_auth_reset_password_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/set-language":{"post":{"summary":"Set Language","description":"Set preferred language via cookie and optionally persist to user profile.","operationId":"set_language_set_language_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/resend-verification":{"post":{"summary":"Auth Resend Verification","description":"Resend email verification.","operationId":"auth_resend_verification_auth_resend_verification_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/accept-tos":{"post":{"summary":"Auth Accept Tos","description":"Accept ToS for an SSO user being redirected through signup.\nThis sets a temporary cookie so the OAuth callback knows ToS was accepted.","operationId":"auth_accept_tos_auth_accept_tos_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/google":{"get":{"summary":"Auth Google","operationId":"auth_google_auth_google_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/google/login/callback/":{"get":{"summary":"Auth Callback","operationId":"auth_callback_oauth_google_login_callback__get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/sso/complete":{"get":{"summary":"Sso Handoff Complete","description":"Complete an SSO login on a reseller portal domain via a one-time handoff token.","operationId":"sso_handoff_complete_auth_sso_complete_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/github":{"get":{"summary":"Auth Github","operationId":"auth_github_auth_github_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/github/login/callback/":{"get":{"summary":"Auth Github Callback","operationId":"auth_github_callback_oauth_github_login_callback__get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"get":{"summary":"Logout","operationId":"logout_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/toggle-admin-mode":{"post":{"summary":"Toggle Admin Mode","description":"Toggle admin/user view mode. Only available to admin users.","operationId":"toggle_admin_mode_dashboard_toggle_admin_mode_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/set-admin-org":{"post":{"summary":"Set Admin Org Id","description":"Set the organisation filter for TaaS admin view. Only for TaaS admins.\n\nAccepts `org_id` from the current UI and `domain` as a legacy fallback.","operationId":"set_admin_org_id_dashboard_set_admin_org_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/set-admin-domain":{"post":{"summary":"Set Admin Org Id","description":"Set the organisation filter for TaaS admin view. Only for TaaS admins.\n\nAccepts `org_id` from the current UI and `domain` as a legacy fallback.","operationId":"set_admin_org_id_dashboard_set_admin_domain_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/legal/terms":{"get":{"summary":"Legal Terms","operationId":"legal_terms_legal_terms_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/aup":{"get":{"summary":"Legal Aup","operationId":"legal_aup_legal_aup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/privacy":{"get":{"summary":"Legal Privacy","operationId":"legal_privacy_legal_privacy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/cookies":{"get":{"summary":"Legal Cookies","operationId":"legal_cookies_legal_cookies_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/dpa":{"get":{"summary":"Legal Dpa","operationId":"legal_dpa_legal_dpa_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/refund":{"get":{"summary":"Legal Refund","operationId":"legal_refund_legal_refund_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/billing":{"get":{"summary":"Legal Billing Page","operationId":"legal_billing_page_legal_billing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/legal/security":{"get":{"summary":"Legal Security","operationId":"legal_security_legal_security_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/legal/accept":{"post":{"summary":"Legal Accept","description":"Record legal acceptance for the current user. Called from acceptance modal.","operationId":"legal_accept_api_legal_accept_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/legal/status":{"get":{"summary":"Legal Status","description":"Check if current user has accepted the current legal version.","operationId":"legal_status_api_legal_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/pricing":{"get":{"summary":"Pricing Page","operationId":"pricing_page_pricing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/features":{"get":{"summary":"Features Page Duplicate","operationId":"features_page_duplicate_features_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api-docs":{"get":{"summary":"Api Docs Page","operationId":"api_docs_page_api_docs_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/guide":{"get":{"summary":"User Guide Page","operationId":"user_guide_page_guide_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/guide":{"get":{"summary":"Dashboard Guide Page","operationId":"dashboard_guide_page_dashboard_guide_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/security":{"get":{"summary":"Security Page","operationId":"security_page_security_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/models-public":{"get":{"summary":"Models Public Page","operationId":"models_public_page_models_public_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/controls":{"get":{"summary":"Controls Page","operationId":"controls_page_controls_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/certifications":{"get":{"summary":"Certifications Page","operationId":"certifications_page_certifications_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/developers":{"get":{"summary":"Developers Page","operationId":"developers_page_developers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard":{"get":{"summary":"Dashboard","operationId":"dashboard_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/keys":{"get":{"summary":"Keys List","operationId":"keys_list_dashboard_keys_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/api/key-rate-limit-state":{"get":{"summary":"Admin Api Key Rate Limit State","description":"AJAX JSON endpoint: exact Redis limiter state for one customer API key.\n\nProxies the cluster-internal taas-api debug endpoint, but keeps it behind\nthe normal dashboard admin session and org scoping.","operationId":"admin_api_key_rate_limit_state_dashboard_admin_api_key_rate_limit_state_get","parameters":[{"name":"key_id","in":"query","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"}}}}}}},"/api/admin/token-logs":{"get":{"summary":"Api Admin Token Logs","description":"Proxy to taas-api /internal/token-logs for admin ‘Logs’ tab.\n\nAdmin-only: requires an active admin session. This is *infrastructure* token\nevent logs (OpenAI/Anthropic OAuth + corporate), not customer API keys.","operationId":"api_admin_token_logs_api_admin_token_logs_get","parameters":[{"name":"provider","in":"query","required":false,"schema":{"type":"string","default":"","title":"Provider"}},{"name":"key_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Key Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"kinds","in":"query","required":false,"schema":{"type":"string","default":"","title":"Kinds"}},{"name":"since_ms","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Since Ms"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Window Hours"}},{"name":"source","in":"query","required":false,"schema":{"type":"string","default":"","title":"Source"}},{"name":"error_kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/keys/new":{"get":{"summary":"Key Create Form","operationId":"key_create_form_dashboard_keys_new_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Key Create","operationId":"key_create_dashboard_keys_new_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/keys/{key_id}":{"get":{"summary":"Key Detail","operationId":"key_detail_dashboard_keys__key_id__get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Key Update","operationId":"key_update_dashboard_keys__key_id__post","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"}}}}}}},"/dashboard/autorouter":{"get":{"summary":"Autorouter Management Page","operationId":"autorouter_management_page_dashboard_autorouter_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/autorouter":{"get":{"summary":"Autorouter Management Data","operationId":"autorouter_management_data_dashboard_api_autorouter_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/autorouter/help":{"post":{"summary":"Autorouter Help Update","operationId":"autorouter_help_update_dashboard_autorouter_help_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/projects/help":{"post":{"summary":"Projects Help Update","operationId":"projects_help_update_dashboard_projects_help_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/qualitative/help":{"post":{"summary":"Qualitative Help Update","operationId":"qualitative_help_update_dashboard_qualitative_help_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/autorouter/user":{"post":{"summary":"Autorouter User Update","operationId":"autorouter_user_update_dashboard_autorouter_user_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/autorouter/api-key":{"post":{"summary":"Autorouter Api Key Update","operationId":"autorouter_api_key_update_dashboard_autorouter_api_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/autorouter/api-key":{"post":{"summary":"Autorouter Admin Api Key Update","operationId":"autorouter_admin_api_key_update_dashboard_admin_autorouter_api_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/autorouter/org":{"post":{"summary":"Autorouter Admin Org Update","operationId":"autorouter_admin_org_update_dashboard_admin_autorouter_org_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/models":{"get":{"summary":"Models Page","operationId":"models_page_dashboard_models_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/api/proxy-health":{"get":{"summary":"Proxy Health","description":"Return token pool health for proxied providers (HTTP endpoint).\n\nDelegates to _get_full_proxy_health() which is also used by the WS hub.","operationId":"proxy_health_dashboard_admin_api_proxy_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/dashboard":{"get":{"summary":"Admin Dashboard Api","description":"AJAX JSON endpoint: return admin dashboard chart/incident data without full page reload.","operationId":"admin_dashboard_api_dashboard_admin_api_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/api/usage":{"get":{"summary":"User Usage Api","description":"AJAX JSON endpoint: return user-scoped usage bucketed data for in-page timeframe/view updates.","operationId":"user_usage_api_dashboard_api_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/usage":{"get":{"summary":"Admin Usage Api","description":"AJAX JSON endpoint: return filtered usage data for a specific user.","operationId":"admin_usage_api_dashboard_admin_api_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/qualitative":{"get":{"summary":"Qualitative Page","description":"Qualitative model-fit and autorouter reporting page.","operationId":"qualitative_page_dashboard_qualitative_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/qualitative/settings":{"get":{"summary":"Qualitative Settings Page","description":"Admin controls for qualitative availability and autorouter policy.","operationId":"qualitative_settings_page_dashboard_qualitative_settings_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Qualitative Settings Update","operationId":"qualitative_settings_update_dashboard_qualitative_settings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/qualitative/detail/{request_id}":{"get":{"summary":"Qualitative Detail Api","description":"Scoped JSON detail for one qualitative score row.","operationId":"qualitative_detail_api_dashboard_qualitative_detail__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"}}}}}}},"/dashboard/qualitative/export":{"get":{"summary":"Qualitative Export","description":"CSV export for scoped qualitative score rows.","operationId":"qualitative_export_dashboard_qualitative_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/usage":{"get":{"summary":"Usage Page","operationId":"usage_page_dashboard_usage_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/request-log":{"get":{"summary":"Request Log Page","operationId":"request_log_page_dashboard_request_log_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/request-log/export":{"get":{"summary":"Request Log Export","description":"Export filtered request log as CSV.","operationId":"request_log_export_dashboard_request_log_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/activity":{"get":{"summary":"Activity Page","operationId":"activity_page_dashboard_activity_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/billing":{"get":{"summary":"Billing Page","operationId":"billing_page_dashboard_billing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/billing/add-funds":{"post":{"summary":"Add Funds Api","description":"Legacy stub kept for backward compat. New flow uses /api/billing/checkout.","operationId":"add_funds_api_api_billing_add_funds_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/checkout":{"post":{"summary":"Billing Checkout","description":"Create a Stripe Checkout session for a wallet top-up.\n\nBody: {\"amount\": 50.00}  (USD — NET wallet credit; Stripe charges amount/(1-0.05))\nReturns: {\"ok\": true, \"url\": \"https://checkout.stripe.com/...\"}","operationId":"billing_checkout_api_billing_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/stripe-config":{"get":{"summary":"Billing Stripe Config","description":"Return Stripe publishable key + config for the frontend.","operationId":"billing_stripe_config_api_billing_stripe_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/payment-methods":{"get":{"summary":"Billing Payment Methods","description":"List saved payment methods for the current user.","operationId":"billing_payment_methods_api_billing_payment_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/payment-methods/{pm_id}":{"delete":{"summary":"Billing Delete Payment Method","description":"Delete a saved payment method.","operationId":"billing_delete_payment_method_api_billing_payment_methods__pm_id__delete","parameters":[{"name":"pm_id","in":"path","required":true,"schema":{"type":"string","title":"Pm Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/billing/payment-methods/{pm_id}/default":{"post":{"summary":"Billing Set Default Payment Method","description":"Set a payment method as default.","operationId":"billing_set_default_payment_method_api_billing_payment_methods__pm_id__default_post","parameters":[{"name":"pm_id","in":"path","required":true,"schema":{"type":"string","title":"Pm Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/billing/payments":{"get":{"summary":"Billing Payment History","description":"List Stripe payment history for the current user with pagination.","operationId":"billing_payment_history_api_billing_payments_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/stripe/webhook":{"post":{"summary":"Stripe Webhook","description":"Stripe webhook endpoint. Must be registered in Stripe dashboard.\n\nURL to register: https://taas.cloudsigma.com/api/billing/stripe/webhook\nEvents to enable: checkout.session.completed, charge.refunded, payment_intent.payment_failed","operationId":"stripe_webhook_api_billing_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/auto-topup":{"post":{"summary":"Update Auto Topup Api","operationId":"update_auto_topup_api_api_billing_auto_topup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/payment-method":{"post":{"summary":"Add Payment Method Api","description":"Add a payment method (stub — in production, this would integrate with Stripe/payment processor).","operationId":"add_payment_method_api_api_billing_payment_method_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/payment-method/{pm_id}":{"delete":{"summary":"Remove Payment Method Api","operationId":"remove_payment_method_api_api_billing_payment_method__pm_id__delete","parameters":[{"name":"pm_id","in":"path","required":true,"schema":{"type":"integer","title":"Pm Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/billing/payment-method/{pm_id}/default":{"post":{"summary":"Set Default Pm Api","operationId":"set_default_pm_api_api_billing_payment_method__pm_id__default_post","parameters":[{"name":"pm_id","in":"path","required":true,"schema":{"type":"integer","title":"Pm Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/billing/link-cloudsigma":{"post":{"summary":"Link Cs Api","description":"Link billing to a CloudSigma account (stub — future integration).","operationId":"link_cs_api_api_billing_link_cloudsigma_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/unlink-cloudsigma":{"post":{"summary":"Unlink Cs Api","operationId":"unlink_cs_api_api_billing_unlink_cloudsigma_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/settings":{"get":{"summary":"Settings Page","operationId":"settings_page_dashboard_settings_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Settings Save","operationId":"settings_save_dashboard_settings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/archived":{"get":{"summary":"Account Archived Page","operationId":"account_archived_page_account_archived_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/account/suspended":{"get":{"summary":"Account Suspended Page","operationId":"account_suspended_page_account_suspended_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/settings/display-name":{"post":{"summary":"Settings Display Name Save","operationId":"settings_display_name_save_dashboard_settings_display_name_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/projects":{"get":{"summary":"Admin Projects","description":"Admin projects overview. RBAC-scoped: taas admins see all orgs (with an\norg dropdown); org/domain admins see their own org's projects; dept admins\nsee (least-privilege) projects they created or are a member of; below admin\ngets 403. Read-only; additive; flag-gated.","operationId":"admin_projects_dashboard_admin_projects_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/users":{"get":{"summary":"Admin Users","operationId":"admin_users_dashboard_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/users/{user_id}/role":{"post":{"summary":"Admin Set User Role","operationId":"admin_set_user_role_dashboard_admin_users__user_id__role_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/billing-exempt":{"post":{"summary":"Admin Set Billing Exempt","description":"Toggle billing_exempt for a user. Owner/taas_admin only.","operationId":"admin_set_billing_exempt_dashboard_admin_users__user_id__billing_exempt_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/credit-limit":{"post":{"summary":"Admin Set Credit Limit","description":"Set credit limit for a user. Owner/taas_admin/org_admin+ can set this.","operationId":"admin_set_credit_limit_dashboard_admin_users__user_id__credit_limit_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/monthly-budget":{"post":{"summary":"Admin Set Monthly Budget","description":"Set monthly budget for a user. Owner/taas_admin only.","operationId":"admin_set_monthly_budget_dashboard_admin_users__user_id__monthly_budget_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/billing-config":{"post":{"summary":"Admin Set Billing Config","description":"Set billing config (type + budget + period) for a billed user. Admin only.","operationId":"admin_set_billing_config_dashboard_admin_users__user_id__billing_config_post","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"}}}}}}},"/dashboard/admin/promotions/create":{"post":{"summary":"Admin Create Promo Grant","operationId":"admin_create_promo_grant_dashboard_admin_promotions_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/promotions/{grant_id}/update":{"post":{"summary":"Admin Update Promo Grant","operationId":"admin_update_promo_grant_dashboard_admin_promotions__grant_id__update_post","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"integer","title":"Grant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/promotions":{"get":{"summary":"Admin Promotions","operationId":"admin_promotions_dashboard_admin_promotions_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/users/{user_id}/status":{"post":{"summary":"Admin Set User Status","operationId":"admin_set_user_status_dashboard_admin_users__user_id__status_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/hard-delete":{"post":{"summary":"Admin Hard Delete User","operationId":"admin_hard_delete_user_dashboard_admin_users__user_id__hard_delete_post","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"}}}}}}},"/dashboard/admin/users/invite":{"get":{"summary":"Admin Invite Form","description":"Show invite form.","operationId":"admin_invite_form_dashboard_admin_users_invite_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Admin Send Invite","description":"Create an invite.","operationId":"admin_send_invite_dashboard_admin_users_invite_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/users/invite/{invite_id}/revoke":{"post":{"summary":"Admin Revoke Invite","description":"Revoke a pending invite.","operationId":"admin_revoke_invite_dashboard_admin_users_invite__invite_id__revoke_post","parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"integer","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/invite/{token}":{"get":{"summary":"Invite Landing","description":"Public invite landing page — shows invite info and login button.","operationId":"invite_landing_invite__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/users/{user_id}":{"get":{"summary":"Admin User Detail","operationId":"admin_user_detail_dashboard_admin_users__user_id__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/users/{user_id}/org":{"post":{"summary":"Admin Set User Org","description":"Assign a user to an organisation. TaaS admin only.","operationId":"admin_set_user_org_dashboard_admin_users__user_id__org_post","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"}}}}}}},"/dashboard/admin/users/{user_id}/department":{"post":{"summary":"Admin Set User Department","description":"Assign a user to a department. TaaS/org admin only.","operationId":"admin_set_user_department_dashboard_admin_users__user_id__department_post","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"}}}}}}},"/dashboard/admin/organisations":{"get":{"summary":"Admin Organisations","description":"List all organisations with stats. TaaS admin only.","operationId":"admin_organisations_dashboard_admin_organisations_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Admin Create Organisation","description":"Create a new organisation. TaaS admin only.","operationId":"admin_create_organisation_dashboard_admin_organisations_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/organisations/merge":{"post":{"summary":"Admin Merge Organisations","description":"Merge two or more organisations into one. TaaS admin only.\n\nForm fields:\n    target_org_id:   org to merge INTO\n    source_org_ids:  comma-separated org ids to merge FROM\n    billing_user_id: designated billing user in merged org\n    role_{user_id}:  role override for each owner/admin","operationId":"admin_merge_organisations_dashboard_admin_organisations_merge_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/organisations/{org_id}":{"post":{"summary":"Admin Update Organisation","description":"Update an organisation (name, slug, billing_exempt, monthly_budget). TaaS admin only.","operationId":"admin_update_organisation_dashboard_admin_organisations__org_id__post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Admin Delete Organisation","description":"Delete an organisation. TaaS admin only. Fails if org has users.","operationId":"admin_delete_organisation_dashboard_admin_organisations__org_id__delete","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/organisations/{org_id}/merge-data":{"get":{"summary":"Admin Org Merge Data","description":"Return JSON with members + billing_user_id for the merge modal. TaaS admin only.","operationId":"admin_org_merge_data_dashboard_admin_organisations__org_id__merge_data_get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/conversations":{"get":{"summary":"Admin Conversations","operationId":"admin_conversations_dashboard_admin_conversations_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/conversations/{conv_id}":{"get":{"summary":"Admin Conversation Detail","operationId":"admin_conversation_detail_dashboard_admin_conversations__conv_id__get","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/conversations/{conv_id}":{"delete":{"summary":"Admin Delete Conversation","operationId":"admin_delete_conversation_api_admin_conversations__conv_id__delete","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/prices":{"get":{"summary":"Admin Prices","description":"Backward-compat redirect to the new /dashboard/admin/models page.","operationId":"admin_prices_dashboard_admin_prices_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Admin Update Price","operationId":"admin_update_price_dashboard_admin_prices_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/models":{"get":{"summary":"Admin Models Page","description":"Main admin models/providers page with tabs.","operationId":"admin_models_page_dashboard_admin_models_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/providers":{"post":{"summary":"Admin Create Provider","description":"AJAX: create a new provider.","operationId":"admin_create_provider_dashboard_admin_providers_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/providers/{provider_id}/update":{"post":{"summary":"Admin Update Provider","description":"AJAX: update an existing provider.","operationId":"admin_update_provider_dashboard_admin_providers__provider_id__update_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/providers/{provider_id}/delete":{"post":{"summary":"Admin Delete Provider","description":"AJAX: delete a provider (only if no models assigned).","operationId":"admin_delete_provider_dashboard_admin_providers__provider_id__delete_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/providers/{provider_id}/visibility-info":{"get":{"summary":"Admin Provider Visibility Info","description":"AJAX: get affected model counts for provider visibility changes.","operationId":"admin_provider_visibility_info_dashboard_admin_providers__provider_id__visibility_info_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/providers/{provider_id}/visibility":{"post":{"summary":"Admin Provider Visibility","description":"AJAX: hide/unhide provider (cascades to promote backups).","operationId":"admin_provider_visibility_dashboard_admin_providers__provider_id__visibility_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/providers/test":{"post":{"summary":"Admin Test Provider","description":"AJAX: test connectivity to a provider before saving.","operationId":"admin_test_provider_dashboard_admin_providers_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/models/update":{"post":{"summary":"Admin Models Update","description":"AJAX: update a model's pricing, metadata, and provider assignments.","operationId":"admin_models_update_dashboard_admin_models_update_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/models/reorder":{"post":{"summary":"Admin Models Reorder","description":"AJAX: batch update display_order for drag-drop reordering.","operationId":"admin_models_reorder_dashboard_admin_models_reorder_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/models/domain-toggle":{"post":{"summary":"Admin Models Domain Toggle","description":"Org admin: enable/disable a model for their organisation.","operationId":"admin_models_domain_toggle_dashboard_admin_models_domain_toggle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/departments/{dept_id}/model-access":{"get":{"summary":"Admin Department Model Access Get","operationId":"admin_department_model_access_get_dashboard_admin_api_departments__dept_id__model_access_get","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Department Model Access Post","operationId":"admin_department_model_access_post_dashboard_admin_api_departments__dept_id__model_access_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/models/add-alias":{"post":{"summary":"Admin Models Add Alias","description":"AJAX: add an alias for a model. Validates no conflicts.","operationId":"admin_models_add_alias_dashboard_admin_models_add_alias_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/models/remove-alias":{"post":{"summary":"Admin Models Remove Alias","description":"AJAX: remove an alias from a model.","operationId":"admin_models_remove_alias_dashboard_admin_models_remove_alias_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/playground":{"get":{"summary":"Playground Redirect","operationId":"playground_redirect_dashboard_playground_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/playground/{conv_id}":{"get":{"summary":"Playground Conv Redirect","operationId":"playground_conv_redirect_dashboard_playground__conv_id__get","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/webchat":{"get":{"summary":"Webchat","operationId":"webchat_dashboard_webchat_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/webchat/{conv_id}":{"get":{"summary":"Webchat Conversation","operationId":"webchat_conversation_dashboard_webchat__conv_id__get","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webchat-key":{"post":{"summary":"Create Webchat Key","description":"Create a webchat-scoped API key for the logged-in user.","operationId":"create_webchat_key_api_webchat_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/conversations":{"post":{"summary":"Create Conv","operationId":"create_conv_api_conversations_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/conversations/{conv_id}":{"delete":{"summary":"Delete Conv","operationId":"delete_conv_api_conversations__conv_id__delete","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/conversations/{conv_id}/model":{"post":{"summary":"Update Model","operationId":"update_model_api_conversations__conv_id__model_post","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/{conv_id}":{"post":{"summary":"Chat","operationId":"chat_api_chat__conv_id__post","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/model-prices/update":{"post":{"summary":"Admin Model Prices Update","description":"AJAX endpoint: update input/output/ppm prices for a model.","operationId":"admin_model_prices_update_dashboard_admin_model_prices_update_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/model-prices/state":{"post":{"summary":"Admin Model Prices State","description":"AJAX endpoint: set model state (active / paused / hidden / deleted).","operationId":"admin_model_prices_state_dashboard_admin_model_prices_state_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/model-prices/redirect":{"post":{"summary":"Admin Model Prices Redirect","description":"AJAX endpoint: set or clear model redirect_to.","operationId":"admin_model_prices_redirect_dashboard_admin_model_prices_redirect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/model-prices/delete":{"post":{"summary":"Admin Model Prices Delete","description":"AJAX endpoint: soft-delete a model (state → 'deleted').","operationId":"admin_model_prices_delete_dashboard_admin_model_prices_delete_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/audit":{"get":{"summary":"Admin Audit Log","description":"Audit log viewer.\n- org_owner/org_admin: see their org's entries only\n- taas_admin/taas_owner: see all entries including own actions","operationId":"admin_audit_log_dashboard_admin_audit_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/api/model-policy":{"get":{"summary":"Admin Model Policy Get","operationId":"admin_model_policy_get_dashboard_admin_api_model_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Model Policy Post","operationId":"admin_model_policy_post_dashboard_admin_api_model_policy_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/model-org-access":{"post":{"summary":"Admin Model Org Access Add","operationId":"admin_model_org_access_add_dashboard_admin_api_model_org_access_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Admin Model Org Access Delete","operationId":"admin_model_org_access_delete_dashboard_admin_api_model_org_access_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/streaming-overrides":{"get":{"summary":"Admin Streaming Overrides Get","operationId":"admin_streaming_overrides_get_dashboard_admin_api_streaming_overrides_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Streaming Overrides Post","operationId":"admin_streaming_overrides_post_dashboard_admin_api_streaming_overrides_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/routing-stages":{"get":{"summary":"Admin Routing Stages Get","operationId":"admin_routing_stages_get_dashboard_admin_api_routing_stages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Routing Stages Post","operationId":"admin_routing_stages_post_dashboard_admin_api_routing_stages_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Admin Routing Stages Delete","operationId":"admin_routing_stages_delete_dashboard_admin_api_routing_stages_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/price-tiers":{"get":{"summary":"Admin Price Tiers Get","operationId":"admin_price_tiers_get_dashboard_admin_api_price_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Admin Price Tiers Post","operationId":"admin_price_tiers_post_dashboard_admin_api_price_tiers_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Admin Price Tiers Delete","operationId":"admin_price_tiers_delete_dashboard_admin_api_price_tiers_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/price-tiers/preview":{"get":{"summary":"Admin Price Tiers Preview","operationId":"admin_price_tiers_preview_dashboard_admin_api_price_tiers_preview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/route-preview":{"post":{"summary":"Admin Route Preview","operationId":"admin_route_preview_dashboard_admin_api_route_preview_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/dry-run":{"get":{"summary":"Admin Dry Run Page","operationId":"admin_dry_run_page_dashboard_admin_dry_run_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin/observability":{"get":{"summary":"Admin Observability","description":"Embedded Grafana dashboards for admin users.","operationId":"admin_observability_dashboard_admin_observability_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/claude-code-node-summary":{"get":{"summary":"Admin Claude Code Node Summary Api","description":"AJAX JSON endpoint: compact Claude Code node observability summary.","operationId":"admin_claude_code_node_summary_api_dashboard_admin_api_claude_code_node_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/api/request-observability":{"get":{"summary":"Admin Request Observability Api","description":"AJAX JSON endpoint: request observability + session affinity summary.","operationId":"admin_request_observability_api_dashboard_admin_api_request_observability_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/keys/revoke":{"post":{"summary":"Admin Keys Revoke","description":"AJAX endpoint: revoke any API key by ID (admin only).","operationId":"admin_keys_revoke_dashboard_admin_keys_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/models-for-policy":{"get":{"summary":"Models For Policy","description":"Return model IDs available for a given routing policy and optional country.\nReads live from DB so admin provider/country changes take effect immediately.","operationId":"models_for_policy_api_models_for_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/settings/country":{"post":{"summary":"Save Country","description":"Save the user's country preference.","operationId":"save_country_dashboard_settings_country_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/resellers":{"get":{"summary":"Admin Resellers","operationId":"admin_resellers_dashboard_admin_resellers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Admin Resellers Create","description":"Create a new reseller. Form fields: name, slug, portal_domain.","operationId":"admin_resellers_create_dashboard_admin_resellers_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/resellers/{reseller_id}":{"get":{"summary":"Admin Reseller Detail","operationId":"admin_reseller_detail_dashboard_admin_resellers__reseller_id__get","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Reseller Update","description":"Handle all POST actions for reseller detail page. Actions: update, set_domain,\nverify_domain, regenerate_domain_txt, set_email_domain, verify_email_domain, assign_org, remove_org,\nassign_admin, remove_admin, invite_admin, revoke_admin_invite, toggle_active.","operationId":"admin_reseller_update_dashboard_admin_resellers__reseller_id__post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/reseller/{reseller_id}/filters/supplier":{"post":{"summary":"Admin Reseller Supplier Filter Post","operationId":"admin_reseller_supplier_filter_post_dashboard_admin_api_reseller__reseller_id__filters_supplier_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/reseller/{reseller_id}/filters/model":{"post":{"summary":"Admin Reseller Model Filter Post","operationId":"admin_reseller_model_filter_post_dashboard_admin_api_reseller__reseller_id__filters_model_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/reseller/{reseller_id}/filters/reset":{"post":{"summary":"Admin Reseller Filter Reset Post","operationId":"admin_reseller_filter_reset_post_dashboard_admin_api_reseller__reseller_id__filters_reset_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/reseller/{reseller_id}/filters/routing/reorder":{"post":{"summary":"Admin Reseller Routing Reorder Post","operationId":"admin_reseller_routing_reorder_post_dashboard_admin_api_reseller__reseller_id__filters_routing_reorder_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/reseller/{reseller_id}/filters/routing/reset":{"post":{"summary":"Admin Reseller Routing Reset Post","operationId":"admin_reseller_routing_reset_post_dashboard_admin_api_reseller__reseller_id__filters_routing_reset_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/org/{org_id}/filters/supplier":{"post":{"summary":"Admin Org Supplier Filter Post","operationId":"admin_org_supplier_filter_post_dashboard_admin_api_org__org_id__filters_supplier_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/org/{org_id}/filters/model":{"post":{"summary":"Admin Org Model Filter Post","operationId":"admin_org_model_filter_post_dashboard_admin_api_org__org_id__filters_model_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/org/{org_id}/filters/reset":{"post":{"summary":"Admin Org Filter Reset Post","operationId":"admin_org_filter_reset_post_dashboard_admin_api_org__org_id__filters_reset_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/org/{org_id}/filters/routing/reorder":{"post":{"summary":"Admin Org Routing Reorder Post","operationId":"admin_org_routing_reorder_post_dashboard_admin_api_org__org_id__filters_routing_reorder_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/org/{org_id}/filters/routing/reset":{"post":{"summary":"Admin Org Routing Reset Post","operationId":"admin_org_routing_reset_post_dashboard_admin_api_org__org_id__filters_routing_reset_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/department/{dept_id}/filters/supplier":{"post":{"summary":"Admin Department Supplier Filter Post","operationId":"admin_department_supplier_filter_post_dashboard_admin_api_department__dept_id__filters_supplier_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/department/{dept_id}/filters/model":{"post":{"summary":"Admin Department Model Filter Post","operationId":"admin_department_model_filter_post_dashboard_admin_api_department__dept_id__filters_model_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/department/{dept_id}/filters/reset":{"post":{"summary":"Admin Department Filter Reset Post","operationId":"admin_department_filter_reset_post_dashboard_admin_api_department__dept_id__filters_reset_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/department/{dept_id}/filters/routing/reorder":{"post":{"summary":"Admin Department Routing Reorder Post","operationId":"admin_department_routing_reorder_post_dashboard_admin_api_department__dept_id__filters_routing_reorder_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/api/department/{dept_id}/filters/routing/reset":{"post":{"summary":"Admin Department Routing Reset Post","operationId":"admin_department_routing_reset_post_dashboard_admin_api_department__dept_id__filters_routing_reset_post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/resellers/{reseller_id}/domain-claims/{claim_id}/reconcile":{"post":{"summary":"Admin Reseller Domain Claim Reconcile","description":"TaaS-admin manual reconciliation hook for reseller domain Cloudflare state.","operationId":"admin_reseller_domain_claim_reconcile_dashboard_admin_resellers__reseller_id__domain_claims__claim_id__reconcile_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}},{"name":"claim_id","in":"path","required":true,"schema":{"type":"integer","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/resellers/{reseller_id}/branding":{"get":{"summary":"Admin Reseller Branding","description":"TaaS admin: edit branding for any reseller.","operationId":"admin_reseller_branding_dashboard_admin_resellers__reseller_id__branding_get","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Reseller Branding Save","description":"TaaS admin: save branding for any reseller.","operationId":"admin_reseller_branding_save_dashboard_admin_resellers__reseller_id__branding_post","parameters":[{"name":"reseller_id","in":"path","required":true,"schema":{"type":"integer","title":"Reseller Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/departments":{"get":{"summary":"Admin Departments","operationId":"admin_departments_dashboard_admin_departments_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Admin Departments Create","operationId":"admin_departments_create_dashboard_admin_departments_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/departments/{dept_id}":{"get":{"summary":"Admin Department Detail","operationId":"admin_department_detail_dashboard_admin_departments__dept_id__get","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Department Detail Post","operationId":"admin_department_detail_post_dashboard_admin_departments__dept_id__post","parameters":[{"name":"dept_id","in":"path","required":true,"schema":{"type":"integer","title":"Dept Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/reseller":{"get":{"summary":"Reseller Portfolio","operationId":"reseller_portfolio_dashboard_reseller_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/reseller/financial":{"get":{"summary":"Reseller Financial Report","operationId":"reseller_financial_report_dashboard_reseller_financial_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/reseller/financial.csv":{"get":{"summary":"Reseller Financial Report Csv","operationId":"reseller_financial_report_csv_dashboard_reseller_financial_csv_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/api/financial":{"get":{"summary":"Reseller Financial Report Api","operationId":"reseller_financial_report_api_dashboard_reseller_api_financial_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/orgs/{org_id}":{"get":{"summary":"Reseller Org Detail","operationId":"reseller_org_detail_dashboard_reseller_orgs__org_id__get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/reseller/branding":{"get":{"summary":"Reseller Branding","operationId":"reseller_branding_dashboard_reseller_branding_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Reseller Branding Save","operationId":"reseller_branding_save_dashboard_reseller_branding_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/domain":{"get":{"summary":"Reseller Domain","operationId":"reseller_domain_dashboard_reseller_domain_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Reseller Domain Set","operationId":"reseller_domain_set_dashboard_reseller_domain_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/domain/verify":{"post":{"summary":"Reseller Domain Verify","operationId":"reseller_domain_verify_dashboard_reseller_domain_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/models":{"get":{"summary":"Reseller Models","operationId":"reseller_models_dashboard_reseller_models_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/reseller/models/toggle":{"post":{"summary":"Reseller Models Toggle","operationId":"reseller_models_toggle_dashboard_reseller_models_toggle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/department":{"get":{"summary":"Department Dashboard","operationId":"department_dashboard_dashboard_department_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/settings/delete-account":{"post":{"summary":"Delete Account","description":"Soft-delete the current user's account. Deactivates all keys.","operationId":"delete_account_settings_delete_account_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provider-changes":{"get":{"summary":"List Provider Changes","description":"List provider change events with optional filtering and pagination.\n\nQuery params:\n  status       - pending (default), approved, rejected, applied, all\n  change_type  - PRICE_CHANGE, NEW_MODEL, REMOVED_MODEL, etc.\n  severity     - INFO, WARNING, BREAKING\n  provider     - deepinfra, static, anthropic, …\n  page         - page number (default 1)\n  per_page     - items per page, max 100 (default 25)","operationId":"list_provider_changes_api_provider_changes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provider-changes/scan":{"get":{"summary":"Get Scan Runs","description":"List recent scan runs.","operationId":"get_scan_runs_api_provider_changes_scan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Trigger Provider Scan","description":"Trigger a manual provider change scan (taas admin only).\n\nBody (JSON, all optional):\n  {\n    \"provider\": \"deepinfra\" | \"static\" | \"all\",  // default: \"all\"\n    \"dry_run\": false\n  }\n\nCalls taas-api internal endpoint to run scan_provider_changes in background.\nReturns immediately; scan runs asynchronously.","operationId":"trigger_provider_scan_api_provider_changes_scan_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provider-changes/{change_id}":{"get":{"summary":"Get Provider Change","description":"Get full detail of a single provider change event, including scan run context.","operationId":"get_provider_change_api_provider_changes__change_id__get","parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"integer","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provider-changes/{change_id}/approve":{"post":{"summary":"Approve Provider Change","operationId":"approve_provider_change_api_provider_changes__change_id__approve_post","parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"integer","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provider-changes/{change_id}/reject":{"post":{"summary":"Reject Provider Change","operationId":"reject_provider_change_api_provider_changes__change_id__reject_post","parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"integer","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provider-changes/history":{"get":{"summary":"Provider Change History","operationId":"provider_change_history_api_provider_changes_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/provider-changes/{change_id}/apply":{"post":{"summary":"Apply Provider Change","operationId":"apply_provider_change_api_provider_changes__change_id__apply_post","parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"integer","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/user-status/{user_id}":{"get":{"summary":"Internal User Status","operationId":"internal_user_status_internal_user_status__user_id__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"}}}}}}},"/dashboard/projects":{"get":{"summary":"Projects Ui List","operationId":"projects_ui_list_dashboard_projects_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/projects/create":{"post":{"summary":"Projects Ui Create","operationId":"projects_ui_create_dashboard_projects_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/projects/{project_id}":{"get":{"summary":"Projects Ui Detail","operationId":"projects_ui_detail_dashboard_projects__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/projects/{project_id}/budget":{"post":{"summary":"Projects Ui Set Budget","operationId":"projects_ui_set_budget_dashboard_projects__project_id__budget_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/projects/{project_id}/keys/create":{"post":{"summary":"Projects Ui Mint Key","operationId":"projects_ui_mint_key_dashboard_projects__project_id__keys_create_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/invite/{token}":{"get":{"summary":"Projects Ui Invite Landing","operationId":"projects_ui_invite_landing_projects_invite__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/preflight":{"get":{"summary":"Projects Preflight Api","description":"Phase 9 — rollout self-check that the Projects schema is present.\nFlag-gated (404 when disabled); requires an authenticated session; returns\nno project data, only schema readiness.","operationId":"projects_preflight_api_dashboard_api_projects_preflight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/reseller/email-domain":{"get":{"summary":"Reseller Email Domain Page","description":"Reseller email-sending domain setup and verification UI.","operationId":"reseller_email_domain_page_dashboard_reseller_email_domain_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/api/projects":{"get":{"summary":"Projects List Api","description":"My-projects list (active memberships) for the signed-in user.","operationId":"projects_list_api_dashboard_api_projects_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/api/projects/{project_id}/usage":{"get":{"summary":"Project Usage Api","description":"Project usage summary. Admin/billing see all members; a regular member\nsees project totals + only their own member row.","operationId":"project_usage_api_dashboard_api_projects__project_id__usage_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/{project_id}/members/usage":{"get":{"summary":"Project Member Usage Api","description":"Per-member usage breakdown — admin/billing only.","operationId":"project_member_usage_api_dashboard_api_projects__project_id__members_usage_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/{project_id}/audit":{"get":{"summary":"Project Audit Api","description":"Recent project audit log — admin only.","operationId":"project_audit_api_dashboard_api_projects__project_id__audit_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/{project_id}/status":{"post":{"summary":"Project Set Status Api","description":"Phase 5 — admin-only project lifecycle transition (pause/resume/archive).\n\nBody: {\"status\": \"active|paused|archived|deleted\", \"reason\": \"<optional>\"}.\nFlag-gated (404 when disabled); admin-only (403 otherwise). Every transition\nis audited by projects_service.set_project_status.","operationId":"project_set_status_api_dashboard_api_projects__project_id__status_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/{project_id}/invites":{"post":{"summary":"Project Create Invite Api","description":"Admin-only: create a project invite. Body {\"email\",\"role\",\"ttl_days\"?}.\nReturns the one-time invite token (only its hash is stored).","operationId":"project_create_invite_api_dashboard_api_projects__project_id__invites_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Project List Invites Api","description":"Admin-only: list project invites (token hashes never returned).","operationId":"project_list_invites_api_dashboard_api_projects__project_id__invites_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/{project_id}/invites/{invite_id}/revoke":{"post":{"summary":"Project Revoke Invite Api","description":"Admin-only: revoke a pending invite (idempotent).","operationId":"project_revoke_invite_api_dashboard_api_projects__project_id__invites__invite_id__revoke_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"invite_id","in":"path","required":true,"schema":{"type":"integer","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/projects/{project_id}/billing/invite":{"post":{"summary":"Project Billing Invite Api","description":"Admin-only: invite a member to become the project billing user (48h expiry).","operationId":"project_billing_invite_api_dashboard_projects__project_id__billing_invite_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/projects/billing/accept":{"post":{"summary":"Project Billing Accept Api","description":"Accept a billing-transfer invite by token; only the invited target may accept.","operationId":"project_billing_accept_api_dashboard_api_projects_billing_accept_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/api/projects/invites/accept":{"post":{"summary":"Project Accept Invite Api","description":"Accept a project invite by token; join as the role-bounded member.","operationId":"project_accept_invite_api_dashboard_api_projects_invites_accept_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/api/projects/invites/{invite_id}/accept-pending":{"post":{"summary":"Project Accept Pending Invite Api","description":"In-console accept of a pending membership invite addressed to the signed-in user.","operationId":"project_accept_pending_invite_api_dashboard_api_projects_invites__invite_id__accept_pending_post","parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"integer","title":"Invite Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/byok":{"get":{"summary":"Org Byok List","operationId":"org_byok_list_dashboard_api_org__org_id__byok_get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/byok/{provider_slug}":{"post":{"summary":"Org Byok Set","operationId":"org_byok_set_dashboard_api_org__org_id__byok__provider_slug__post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}},{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Org Byok Delete","operationId":"org_byok_delete_dashboard_api_org__org_id__byok__provider_slug__delete","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}},{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/identity":{"get":{"summary":"Org Identity Get","operationId":"org_identity_get_dashboard_api_org__org_id__identity_get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Org Identity Set","operationId":"org_identity_set_dashboard_api_org__org_id__identity_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/identity/scim-token":{"post":{"summary":"Org Identity Rotate Token","description":"Generate a new SCIM bearer token; shown once, only the hash is stored.","operationId":"org_identity_rotate_token_dashboard_api_org__org_id__identity_scim_token_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/identity/role-mappings":{"get":{"summary":"Org Identity Mappings Get","operationId":"org_identity_mappings_get_dashboard_api_org__org_id__identity_role_mappings_get","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Org Identity Mappings Set","operationId":"org_identity_mappings_set_dashboard_api_org__org_id__identity_role_mappings_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api/org/{org_id}/identity/role-mappings/delete":{"post":{"summary":"Org Identity Mappings Delete","operationId":"org_identity_mappings_delete_dashboard_api_org__org_id__identity_role_mappings_delete_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"integer","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/org/integrations":{"get":{"summary":"Org Integrations","operationId":"org_integrations_dashboard_org_integrations_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/org/integrations/lane-settings":{"post":{"summary":"Org Integrations Lane Settings","description":"Update private runtime lane policy for the selected organisation.\n\nAuthorisation is enforced server-side by ``_require_org_owner``:\nplatform owners / taas_admins may target any org via ``?org_id``;\nan org_owner is always pinned to their own org and therefore cannot\ntoggle another organisation. org_admins/members are denied (403).","operationId":"org_integrations_lane_settings_dashboard_org_integrations_lane_settings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/byok":{"post":{"summary":"Org Integrations Byok","operationId":"org_integrations_byok_dashboard_org_integrations_byok_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/identity":{"post":{"summary":"Org Integrations Identity","operationId":"org_integrations_identity_dashboard_org_integrations_identity_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/identity/token":{"post":{"summary":"Org Integrations Identity Token","operationId":"org_integrations_identity_token_dashboard_org_integrations_identity_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/mappings":{"post":{"summary":"Org Integrations Add Mapping","operationId":"org_integrations_add_mapping_dashboard_org_integrations_mappings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/mappings/{mapping_id}/delete":{"post":{"summary":"Org Integrations Delete Mapping","operationId":"org_integrations_delete_mapping_dashboard_org_integrations_mappings__mapping_id__delete_post","parameters":[{"name":"mapping_id","in":"path","required":true,"schema":{"type":"integer","title":"Mapping Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/keys/byok/set":{"post":{"summary":"Keys Byok Set","operationId":"keys_byok_set_dashboard_keys_byok_set_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/keys/byok/remove":{"post":{"summary":"Keys Byok Remove","operationId":"keys_byok_remove_dashboard_keys_byok_remove_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/org/integrations/identity/test":{"post":{"summary":"Org Identity Test","description":"IM setup workflow step 3: test the connection and record status.","operationId":"org_identity_test_dashboard_org_integrations_identity_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/management-fee/default":{"post":{"summary":"Admin Set Management Fee Default","operationId":"admin_set_management_fee_default_dashboard_admin_management_fee_default_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/admin/management-fee/org":{"post":{"summary":"Admin Set Management Fee Org","operationId":"admin_set_management_fee_org_dashboard_admin_management_fee_org_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}